Knobs that crossfade between multiple things

I know that I have seen examples somewhere but can’t recall where – or maybe it is covered in one of the tutorials/videos.

I have a couple of cases where I’d like to use a single knob to do one of the following:

  • crossfade between succeeding options (for instance, between four different sources A, B, C and D where at 0 you get A only as you turn up the knob, you start xfading to B and from B to C then from C to D). I have a kludgy way of doing it, but I think there is a more elegant way than what I am doing.
  • turning up the knob cascades the input. So, at 0 you have A only and as you turn up you start mixing in B and once B is at full level, C starts being add, etc.

I have a suspicion that these techniques might be able to be used as part of a waveshaper/folder to get a little closer to the sort of harmonic cascading one gets with the Buchla and 0-Toast wavefolder that most others don’t quite have.

multiple input X-fading (Garbler PLL).audulus (4.9 KB)
This is how @robertsyrett did it in his Garbler PLL module (whitch is a realy awesome module in my opinion :slight_smile:)


Thanks. And thanks for the garble link. Looks cool!

1 Like

Here’s a 4 way crossfade that fades between input 1 and 2 then 2 and 3 then 3 and 4. It uses a smoothstep() function to create a smooth transition between sources.
4-way Xfade.audulus (9.0 KB)


I put together this 10-channel cross fader to smoothly crossfade between multiple signals/channels from the Infinite xFade module (unable to find currently) that I believe was originally made by @biminiroad

10-channel xFader.audulus (238.0 KB)


That’s a cool one but the method @stschoen came up with is much more CPU light. I think @MacroMachines made that original one - the nice thing about that is it’s modular and expandable. I tried and failed ot make one like it with smoothstep(x,a,b) expression but it’s probably possible.

1 Like

Just a quick description of the smoothstep function. The smoothstep(a, b, x) function generates a smooth “s” curve. The output changes smoothly from 0 to 1 as the input x changes from a to b. Input values below a and above b are essentially clamped. Here’s a quick example:
smoothstep demo.audulus (1.3 KB)
In this case the input is from 0 to 1. Note how the input is a ramp and the output is curved, starting and ending gradually.
The 4 way crossfade uses a set of these expressions to generate 4 smooth ramps as the input knob goes from 0 to 1. You could easily modify the module to crossfade between any number of inputs.


Oh yeah, just took a look at the guts of that one. Super efficient solution!

1 Like

What about the non-xfade case I mentioned where you want turning up the knob to add in additional sources as the knob turns up?

1 Like

You could certainly change the ranges of the smooth step statements so that they added rather than cross-faded. You would need to be careful that the signals you added together didn’t exceed any limits. For example audio should be between -1 snd 1 and modulation signals should be between 0 and 1. You could lower the gain of the unit as you added more sources but that might not give you the results you want.

1 Like

Thought I’d just throw in my trigonometry method X-fade. Got the idea from the pan module.
AC Equal power Xfade.audulus (6.9 KB)


waveshaping with smoothstep.audulus (659.1 KB)

I quite like the smoothstep function for crossfading between many different waveforms. Here is a demo patch to show I patch it with crossfade nodes and how you can add a “width” to the crossfades to create little plateaus of one source or another. That can come in handy when you are designing a knob that you want to have a sweet spot for a particular value, for example making an attenuverter have a sweet spot for 0 (which is normally the middle of the knob).

The Kaleidoscopic Operator is a multidimensional array of crossfaders between banks of spline nodes and an extreme example of smoothstep crossfading.

The Voyager Osc is a faithful recreation of the Moog Voyager oscillator, which had a variable waveform and is an example of how you can change not only the source of the waveform but other elements as well with the sweep of one knob. Sometimes the knob is crossfading and sometimes the knob is changing the pulse width.


Wow :open_mouth:
The Kaleidoscopic Operator is awesome!


So cool!

1 Like