surge-synthesizer / surge

Synthesizer plug-in (previously released as Vember Audio Surge)
https://surge-synthesizer.github.io/
GNU General Public License v3.0
3.11k stars 397 forks source link

Oscillator Pulse width mudulation from other oscillator #7794

Open jlgrenik opened 3 weeks ago

jlgrenik commented 3 weeks ago

The idea is to emulate the cross-pulse width modulation of Elka Syntex.

From the original manual of Elka Syntex:

  1. Pulse Width Cross-Modulation Select Button This button selects Pulse Wave. The width is controlled by the waveform of the other oscillator (at whichever audio frequency is selected) This results in a very rapid change in harmonics which produces an effect similar to the Ring Modulator but with greater control (by use of Octave Select and Transpose of the other oscillator)

====

So, the idea would be to take the output of the selected oscillator and to use it to modulate the pulse width of the current osccilator.

In the menu, it would be needed to add an option in the "Add modulation from" > Oscilator > Oscillator {1, 2, 3}

baconpaul commented 3 weeks ago

Interesting idea

in the current iteration of the synth it’s super hard to do inter osc routing and the modulation rate is way below audio rate. We could perhaps do this by abusing fm and having modern have an fm mode which did pwm rather than fm but it would be pretty hacky similar to #7009

I like the idea though so I want to keep this issue open for when we revisit the fm and inter oscillator routing structure in a future iteration

mkruselj commented 3 weeks ago

I don't think this feature is a good fit for Surge. Because not every oscillator has pulse width facility. I would leave this feature to proper Synthex emulators.