Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Promote waveshaper to voice insert FX block #6015

Open
mkruselj opened this issue Apr 5, 2022 · 3 comments
Open

Promote waveshaper to voice insert FX block #6015

mkruselj opened this issue Apr 5, 2022 · 3 comments
Labels
Design Required We need to design a solution to this issue DSP Issues and feature requests related to sound generation in the synth Feature Request New feature request Requires Param List Change To accomplish this issue we need to be able to modify the DAW params in all our hosts
Milestone

Comments

@mkruselj
Copy link
Collaborator

mkruselj commented Apr 5, 2022

This issue is closely related to #4355 and #3257.

In order to make Surge's voicing even more flexible, after upgrading the waveshaper with more parameters (#4847), it makes a lot of sense to actually be able to swap the waveshaper with a different effect that would be polyphonic and modulatable just like the waveshaper. This will also enable the nodal routing to reproduce existing filter configs (for example RING). There's a number of candidates we can add here:

  • Digital ring modulator (just a multiply, as used in current RING filter config) - mix, LP, HP
  • Analog ring modulator (the one from the FX section, without the carrier part) - forward bias, linear region, LP, HP, mix
  • Treemonster - threshold, speed, LP, HP, pitch, ring mod, mix
  • Frequency shifter - left shift, right shift, time, feedback, mix
  • Simple delay (delay time up to 250 ms) - dry/wet, time, LP, HP
  • Sample & Hold - rate, mix
  • Bitcrusher - amount, mix
  • Parametric EQ (switchable between low shelf/high shelf/peak) - frequency, gain, Q, mix
  • Simple filter (design and parameters TBD)
@mkruselj mkruselj added Feature Request New feature request Design Required We need to design a solution to this issue DSP Issues and feature requests related to sound generation in the synth Requires Param List Change To accomplish this issue we need to be able to modify the DAW params in all our hosts labels Apr 5, 2022
@mkruselj mkruselj added this to the Surge XT 2.0 milestone Apr 5, 2022
@PopeKehoeIII
Copy link

I'd love a grungy XOR logic gate option for the ring mod - many vintage synths (especially lower end ones) just used an XOR gate on the pulse waveforms to "fake" ring mod including the MG-1, oddy, and MS-20. With arbitrary signal inputs rather than tapping dedicated pulse wave outputs of oscillators I guess you'd have to just treat anything above 0 as 1, anything below zero as 0, then shift the output of the XOR to be -1 to +1 in order to not add a DC offset.
here's a discussion about it -
https://gearspace.com/board/electronic-music-instruments-and-electronic-music-production/812474-ms-20-ring-mod.html

@mkruselj
Copy link
Collaborator Author

mkruselj commented Apr 5, 2022

That sounds like a great mode to add to digital ring mod!

@morganholly
Copy link
Contributor

morganholly commented Apr 10, 2023

talked about it on discord (here), i'd like to add 5 continuous logic functions to the list of two input processor modes

cxor: min(max(a, b), -min(a, b))
and 4 modifications of it i don't have good names for:

1/2:
v1 = max(e, f)
cx = min(v1, -min(e, f)
v2 = -min(cx, v1)
out1 = min(v1, v2)
out2 = min(e, v2)

3/4:
cx = min(max(g, h), -min(g, h))
v1 = max(-cx, -h) # or -min(cx, h), original was better for the analog circuit, -min(cx, h) would be better for digital
v2 = max(-h, g)
v3 = max(g, -cx)
out3 = min(v1, v2)
out4 = min(v1, v3)

reaktor implementation

cxor, all following images have the 2 inputs as horizontal position, and the vertical position is the output value

1

2

3

4

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Design Required We need to design a solution to this issue DSP Issues and feature requests related to sound generation in the synth Feature Request New feature request Requires Param List Change To accomplish this issue we need to be able to modify the DAW params in all our hosts
Projects
None yet
Development

No branches or pull requests

3 participants