Thursday, May 14, 2009

Shultz's Triple-X Fader

Last month on the Propellerhead Users Forum, Shultz (aka E-Note) posted an innovative device that allows a crossfade between four different audio sources. Essentially, as the mod-wheel is moved through its range, the output audio fades between each adjacent input. I would like to try to explain how this device works for the benefit of everyone else.

Figure 1 - Shultz's Triple-X Fader

The key behind this amazing device is Shultz's clever use of the Thor Shaper. According to the Reason manual, the shaper distorts incoming audio in various ways, and also suggests a certain random element for some algorithms. One of the shaping algorithms is the Rectify function. This is a very simple function that resembles a diode or 'absolute value' function - the output signal follows the input, except when the input is below zero. In this situation, the output signal is inverted. This means it never falls below zero. Figure 2 shows this relationship.

Figure 2 - rectification function

The fading is performed by the Level CV inputs on the back of the Mixer. Each of four channels are driven by a CV signal that consists of a single peak. Each peak is distributed evenly across the mod-wheel domain, so that each channel will be at minimum attenuation (i.e. maximum volume) at a distinct point of the mod-wheel. When one channel is at maximum volume, the other three will be somewhere below.

Figure 3 - Thor programming

The Triple-X Fader consists of two Thor devices, each handling one half of the mod-wheel range. Each Thor performs almost the same function except that different DC signals are combined with the shaper input signal to offset the domain to either the upper or lower half.

Figure 4 - first peak

Figure 4 shows how the first peak is created. On Thor1, CV Out1 is a direct inversion of the mod-wheel added to a constant DC level. This results in a signal that starts at 41 with the mod-wheel input at zero, and falls linearly as the input increases. It crosses zero at an input value of 41. This results in mixer channel 1 at maximum amplitude when the mod-wheel is at zero, and falls away to silence as the mod-wheel increases.

Figure 5 - second peak

Figure 5 shows how the second peak is created. In this case, the mod-wheel input is inverted and fed into the shaper via Filter1. Note that the Thor sequencer is set to run constantly, which keeps a voice "open" and therefore holds the filter & shaper open. A positive DC offset is also added so that the signal into the shaper starts at 41 when the input is zero. This signal also falls to zero as the input increases to 41 and proceeds to go negative for greater values (black line). The shaper rectifies this signal (makes it positive, if negative), so that for input above 41, the signal now increases away from zero (blue line). The return signal is then inverted (turned upside-down) and a positive DC offset is added to raise the peak (red line) up to the same level (41) as the first peak. Clever huh?

The other two peaks are created in the same manner by the second Thor device. However the DC offsets used are different, which positions the peaks in the top half of the input domain. Also, the last peak is an increasing function of the input signal - it increases as the mod-wheel increases.

Each peak signal drives a separate mixer channel, but figure 6 might help you understand how they fit together.

Figure 6 - combined mixer control signals

One major shortfall of Reason is the lack of CV computation. It is very difficult to create even basic CV functions. Thor provides a way to implement addition and subtraction, and now it also provides an absolute value function. Shultz has demonstrated a very clever use of this in his 4-channel fader.

He has kindly granted me permission to provide a link to his Triple-X Fader here.


  1. I am deeply impressed for this patch!
    Thanks to this great patch,I can make the sound like KORG Wavestation :)

  2. As I've said before, this patch is incredibly brilliant. And big thanks to you meowsqueak for posting the article here, really helps explain the science behind it.

  3. Very nice work. I really like the way this is set up. It's light-weight so it won't hog your resources and uses a very innovative approach. Thanks for explaining it further!