surge-synthesizer / surge

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

Voice unison #3895

Open baconpaul opened 3 years ago

baconpaul commented 3 years ago

Right now unison in surge happens through one of two mechanisms

  1. Oscillators implement it internally, but it is only at the oscillator stage, not down the entire voice or
  2. You can run two scenes in parallel with DUAL mode with identical scenes and get each voice sounding twice

Over on KVR, folks suggested a more robust unison mode where each keypress triggers N voices. Clever.

but then tomx2188 also had this super good idea if we do that.

Simply provide an additional modulation source, where each voice playing for a note is distributed evenly across the [-1,1] range (eg. when setting voice unison level to 5, you'd get -1, -0.5, 0, +0.5, +1).

so basically you could have N voices per keypress which had an option to 'know their voice' and modulate accordingly. Super smart.

Hardest part is: Where do we hang the voice doubling parameter. So pushing this into XT or beyond.

mkruselj commented 3 years ago

This voice level unison+detune should be in the play mode/bend range section. And obviously then we need a new modulator, so we definitely need that #2678 so that we can consolidate monophonic keytracks and some other modulators to give us a bit more room for more modulators. (We will need to do that for modmappers/modmixers anyways!)

mkruselj commented 3 years ago

Bonus thought: we could extend this voice unison to Chord Memory feature request (#1737). This is what Massive X is doing with its voice unison - you can just do regular detuning, or detuning that blends into a whole chord, and you have sets of chords for each of the 12 keys of an octave that you can play, various scales that chords fit into... it's pretty wild.

baconpaul commented 3 years ago

Oh yeah it’s all the same thing you are correct

mkruselj commented 3 years ago

Food for thought:

image image image image

The way we could do this is to have a Unison modulator, that has a down arrow just like LFOs. Then put these extra parameters down there. This would actually be better, because it's not a feature that needs to be front-and-center necessarily. So yeah, this doesn't necessarily have to be in the play mode/bend range area!

quirkylemon commented 4 months ago

So is the plan to make voice detune and chord memory a scene modulator? if that is the case I have a few questions

  1. does this actually play more notes? EG make the note counter at the top go up
  2. Does enabling chord mode ignore the amount of voices and just use the amount of voices necessary for the chord?
  3. Do we need to remove or move any of the current modulators?
  4. what else needs to be done before work can start on this?
mkruselj commented 4 months ago
  1. Yes.
  2. No, you could play a chord yourself and every note would get its own chord generated. This would be governed by Play Mode parameter (poly/mono/legato/latch).
  3. and 4. Since this feature is too big to be shoved into XT 1.x cycle, there is a complete UI redesign that was done for XT 2 which allows for more modbuttons in the modulation section. Also there is a lot of deep infrastructure work that needs to happen to enable all this. We don't actually plan to work on any XT 2 issues in 2024, since we are shifting our ocus to finish Shortcircuit XT 1.0 instead. You are welcome to check out any issues in 1.x milestone, though!