If in doubt, ask.
 
This page describes the current firmware version, which is 4.3
 
Many of the videos on this page show the disting mk1 or mk3.
The mk4 includes all of the previous algorithms, with the same inputs, outputs and controls.

Quick Reference

A 'quick reference guide' is available, to assist in remembering the disting's many functions. Formatted for A6 paper, it can be conveniently printed out 4-up on A4 and folded into a compact booklet.

Download the version appropriate to your firmware here.

Algorithm Overview

1 2 3 4 5 6 7 8
A Precision Adder Four Quadrant Multiplier Full-wave Rectifier Minimum/ maximum Linear/ Exponential Converter Quantizer Comparator Dual Waveshaper
B Sample and Hold Slew Rate Limiter Pitch and Envelope Tracker Clockable Delay/Echo LFO Clockable LFO VCO with linear FM VCO with waveshaping
C Precision Adder
(fractional offsets)
Voltage Controlled Delay Line Clockable Ping Pong
(Z feedback)
Clockable Ping Pong
(Z input pan)
Resonator Vocoder Phaser Bit Crusher
D Tape Delay Waveform Animator State Variable Filter LP/HP Filter LP/BP Filter BP/HP Filter BP/Notch Filter
E AR Envelope AR Envelope
(with push)
AR Envelope & VCA AR Envelope & VCA
(with push)
Dual AR Envelope Dual AR Envelope
(with push)
Euro to Buchla Converter Buchla to Euro Converter
F Clockable AD Envelope
(with mute)
Clockable AD Envelope
(with gate)
Clockable AD Envelope
(with trigger)
Clockable AD Envelope & VCA Shift Register Random CVs Shift Register Random Quantized CVs Shift Register Random Triggers Shift Register Random Dual Triggers
G ES-1 Emulation ES-2 Emulation Pitch Reference Frequency Reference Tuner MIDI Clock MIDI/CV CV/MIDI
H Crossfade/Pan Dual Sample and Hold Dual Quantizer (Z scale) Dual Quantizer Dual Euclidean Patterns Dual Delayed Pulse Generator Noise
I Audio Playback Clocked Audio Playback Audio Playback with V/Oct Audio Playback with Z Speed
J MIDI File Playback
(Clocked)
MIDI File Playback
(Free Running)
Audio Playback with End CV Audio Recorder
K Wavetable VCO
L Stereo Reverb Mono-to-Stereo Reverb Dual Reverb Stereo Chorus Mono Chorus

MicroSD algorithms

Algorithms based on sample & MIDI file playback from a MicroSD card have their own page here.

The Algorithms

A-1 Precision Adder

A = X + Y + offset
B = X - Y - offset
offset = ±10V in 1V steps derived from Z
ParameterMinMaxDefaultDescription
0010When 1, the offset is not restricted to 1V steps, and changes smoothly with Z.

Output A is the sum of inputs X & Y; output B is the difference between inputs X & Y. With nothing plugged into input X, B is therefore simply an inverted copy of Y.

The Z knob/CV sets an offset which is applied to both A and B. The offset is a whole number of Volts. If X/Y are 1V/Octave pitch CVs, Z is therefore an octave shift control. The maximum shift is 10V, positive or negative.

When Z changes, the offset is shown on the display. After a short while the display reverts to showing the current algorithm.

C-1 Precision Adder (fractional offsets)

A = X + Y + offset
B = X - Y - offset
offset in steps derived from Z
ParameterMinMaxDefaultDescription
011212Sets the offset divisor.

This algorithm is basically the same as 1-a Precision Adder, except that where the other algorithm has offsets in steps of 1V, this algorithm allows you to set a divisor for the offset. This defaults to 12, so when used to offset a 1V/octave pitch CV the offsets correspond to semitones.

A-2 Four Quadrant Multiplier

A = X * Y * scale
B = -X * Y * scale
scale = 1/10 to 10x in steps derived from Z
ParameterMinMaxDefaultDescription
0010When 1, the scale is not restricted to integer steps, and changes smoothly with Z.

Output A is the result of multiplying inputs X & Y. Output B is the inverse of output A.

If for example X is a signal and Y is an envelope, then this algorithm is a VCA. If both inputs are signals, then this is a ring modulator.

The Z knob/CV sets a scale factor which is applied to both outputs. The scale is an integer (whole number) which either multiplies or divides the result, and ranges in value from 1-10.

When Z changes, the scale is shown on the display. If the value shown is negative, it is a divisor rather than a multipler. Note that there is no value of "-1" since dividing by 1 and multiplying by 1 are the same. After a short while the display reverts to showing the current algorithm.

A-3 Full-wave Rectifier

A = abs( X + Y ) or abs( X )
B = abs( X - Y ) or abs( Y )
Z selects mode

This algorithm provides a full-wave rectifier or absolute value function. The Z knob/CV select between one of two modes. In 'independent' mode, A and B are the absolute values of X and Y, respectively. In 'combined' mode, A is the absolute value of the sum of X & Y; B is the absolute value of the difference of X & Y.

When Z changes, the mode is displayed. 'Independent' mode is shown as "-0"; 'combined' mode as "0". After a short while the display reverts to showing the current algorithm.

A-4 Minimum/maximum

A = min( X, Y )
B = max( X, Y )
Z is gate

Output A is the minimum of inputs X & Y; output B is the maximum of the two inputs. If one input is zero (or disconnected), this is a half-wave rectifier.

The Z knob/CV provides a gate function. When Z goes higher than approximately 2.5V, the gate goes high and the outputs follow the inputs according to the min/max relationship. When Z goes below approximately -1.5V, the gate goes low and the outputs are frozen.

When the gate changes state, "LO" or "HI" is displayed to indicate the gate status. After a short while the display reverts to showing the current algorithm.

A-5 Linear/Exponential Converter

A = ( 2 ^ X ) * scale
B = log2( Y / scale )
Z is Hz/V scale, centred on 1kHz

This algorithm provides a linear-to-exponential converter and an exponential-to-linear converter. You might use this to interface 1V/octave modules (Eurorack standard) with Hz/V synths (e.g. old Korg or Yamaha synths), but it could also be useful within Eurorack e.g. to convert an LFO (commonly with Hz/V pitch control) to a V/octave oscillator, or to convert an exponential FM input on a VCO into a linear FM input.

Input X is the exponential input; its corresponding linear output is A. Y is the linear input, whose exponential output is B.

Z sets the scale factor which is common to both conversions. It sets the number of Hz per Volt, with arrange from near zero to about 2kHz. The Yamaha CS-15, for example, uses about 1100Hz/V, which is about half way on the Z knob here.

The zero Volt point on the exponential scale used is C3 (approximately 130.81Hz).

A-6 Quantizer

A = quantized( X )
B = trigger on note change
Z chooses scale & function of Y
Y = transpose (Z positive) or trigger (Z negative)
ParameterMinMaxDefaultDescription
0-13131Input X attenuation.
1010Transpose mode.
2-31310Key.

Output A is a quantized version of input X; the closest whole-semitone value to the unquantized V/octave pitch CV X. Output B is a trigger signal which fires whenever output A changes - a 5V pulse approximately 10ms long.

As well as providing a chromatic scale, this algorithm can also constrain the quantized values to a musical scale or chord. This is controlled by the Z knob/CV.

When Z changes, the scale is displayed on the LEDs. The scale's number in the following table is show, and after a short pause, the scale's name. After the name has scrolled across, the display reverts to showing the current algorithm.

NumberScaleDisplayed name
0chromaticChromatic
1major scaleMajor
2minor scaleMinor
3major triadTriad
4minor triad3b+5
5root+5thFifth
6major triad+6thTriad+6
7minor triad+6th3b+5+6
8major triad+7thTriad+7
9minor triad+7th3b+5+7
10root+5th+6th5+6
11root+5th+7th5+7
12pentatonic majorPent
13pentatonic minorMinor Pent
14natural minor scaleNat Minor
15harmonic minor scaleHarm Minor

A further option is controlled by Z being positive or negative. When Z is negative, the scale number is shown as a negative value.

When Z is positive input Y is a transpose control. The CV on input Y is quantized (to a chromatic scale) and added to the quantized result in one of two ways, controlled by parameter 1. If parameter 1 is zero, the transposition is applied to output A, after input X has been quantized to the chosen scale. If parameter 1 is one, the transposition is applied to input X before it is forced into the chosen scale. So, in mode zero the overall key of the quantization is transposed, whereas in mode one the transposition moves the notes around within the same key.

When Z is negative input Y is a trigger. In this mode, input X is only sampled and converted to a new quantized value when input Y rises over approximately 1V. (In non-triggered mode, X is constantly sampled and a new note is output as soon as X moves into the next semitone range.)

Parameter 2 sets the root key of the chosen scale. At zero, the first note of the scale (e.g. C in the key of C) corresponds to 0V. If the parameter is set for example to 2, the first note of the scale is at 2/12 = 0.1667V - or to look at it another way, if your VCO is tuned so that 0V gives you a C, the quantizer is now working in the key of D (D major, minor, triad etc. depending on the scale setting).

MIDI Output: each new note (i.e. when the Output B trigger fires) is output as a MIDI note message on MIDI channel 1.

MIDI Input: MIDI note messages received on MIDI channel 1 set parameter 2 (root key).

A-7 Comparator

A = gate from X > Y
B = inverted gate
Z is hysteresis

Output A is a gate signal (zero or +5V), high when input X has a higher voltage than input Y. Output B is an inverted copy of A (i.e. +5V when A is 0V and vice versa.)

The Z knob/CV input sets the hysteresis (for an explanation of hysteresis see here). Inputs of approximately 0-4V correspond to hysteresis values of approximately 0-10V. Negative values are clamped at zero.

A-8 Dual Waveshaper

A = folded X
B = triangle-to-sine Y
Z is gain

This algorithm provides two independent waveshaping functions. The Z knob/CV is a gain control, with a range of approximately 30x. Negative values of Z invert the signal.

Input X/output A provide what is usually termed a wavefolder. This increases the harmonic content of the sound in interesting ways, especially as the gain changes.

Input Y/output B provide a triangle-to-sine waveshaper. Used on most audio this is a relatively gentle form of overdrive/saturation. However, when fed with the right level of triangle wave, the output is exactly a sine wave, which is useful when you have a triangle wave VCO handy but really want a pure sine wave instead.

B-1 Sample and Hold

A = X when Y exceeds 1V
B = noise ±8V
Z is slew rate

ParameterMinMaxDefaultDescription
0010Mode.

If parameter 0 is 0 (the default):
Output A is a sample of input X, taken when the trigger input Y goes over 1V. (Sample and Hold)
If parameter 0 is 1:
Output A follows input X while input Y is over 1V. When Y falls below 0.5V, output A is held until Y goes over 1V again. (Track and Hold)

Output B is a white noise signal, with range ±8V. A noise signal is commonly fed into the input of a sample and hold device to generate clocked random voltages.

The Z knob/CV controls the slew rate of output A. At the minimum value of Z, changes in A are instantaneous. As Z increases, changes in A take place more slowly.

Pressing the Z knob triggers a sample manually.

B-2 Slew Rate Limiter

A = linear slew rate limited ( X + Y )
B = log slew rate limited ( X + Y )
Z is slew rate

Outputs A & B are both slew rate limited copies of the sum of X & Y. Output A uses linear slew rate limiting; a step change in the input will typically result in a ramp output, until the output reaches its desired value, at which point it will be constant. Output B uses logarithmic slew rate limiting; a step change in input results in a smooth curve that gradually approaches the desired value.

The Z knob/CV controls the slew rate for both outputs. At the minimum value of Z, changes are very rapid. As Z increases, changes take place more slowly.

B-3 Pitch and Envelope Tracker

A = V/octave pitch derived from X, plus Y
B = envelope dervied from X
Z is slew rate for envelope

This algorithm provides pitch and envelope tracking of an incoming audio signal. It will track frequencies down to about 27Hz, which is just below the lowest note on a standard 88 key piano.

Output A is a 1V/octave pitch CV reflecting the pitch of the signal on input X. The 0V point is C3 (approximately 130.81Hz). Input Y is simply added to the pitch CV, providing a means of applying e.g. vibrato, or transposition.

Output B tracks the envelope of the signal on input X. It goes to zero when the algorithm fails to track a pitch.

Knob/CV Z sets the slew rate of the envelope, controlling how quickly it tracks changes in level. At the minimum value of Z, changes can be very rapid, which may produce undesirable effects, especially if pitch tracking is not working well. As Z increases, changes take place more slowly.

B-4 Clockable Delay/Echo

X is signal
Y is clock input
Z is feedback
A = dry + delay in ratio according to feedback
B = delay signal only
Tap tempo enabled
ParameterMinMaxDefaultDescription
0-1580Delay time multiplier.

This algorithm is a delay/echo effect, primarily intended for processing audio signals, where the delay time is set from a clock pulse. It operates at a quarter of the standard sample rate (i.e. at about 19kHz) and offers a maximum delay time of about 1700ms.

Input X is the signal input. Any audio signal can be fed in here.

Input Y is the clock input. Any clock pulse in excess of 1V can be used. The time between rising trigger edges is used to set the delay time. If the time between triggers is greater than the maximum delay time, the time is divided by two until it is small enough. This way, you always end up with a rhythmically useful delay time.

The Z knob/CV controls the feedback, from zero to slightly more than 100%.

Output A is a mix of the dry (undelayed) signal and the delay effect. The amount of delay in the mix rises in direct proportion to the amount of feedback.

Output B is the delayed signal only. Use this and the input signal, plus an external mixer, if you need more flexibility in the dry/wet balance than is offered by output A.

The parameter applies a multiplier to the delay time, according to the following table:

Parameter valueMultiplier
-151/64
-141/48
-131/32
-121/24
-111/16
-101/12
-91/8
-81/6
-73/16
-61/4
-55/16
-41/3
-33/8
-21/2
-13/4
0x1
1x1.5
2x2
3x3
4x4
5x5
6x6
7x8
8x16

B-5 LFO

X is Hz/V frequency
Y is waveshape
Z is tune
A is saw -> sine -> triangle
B is pulse -> square -> pulse
ParameterMinMaxDefaultDescription
0-13131Sets an attenuation for output A.
1-13131Sets an attenuation for output B.
2-31310Sets an offset for output A.
3-31310Sets an offset for output B.

Outputs A & B are LFOs (low frequency oscillators), with CV control of frequency and waveshape. The output signals are ±8V (16V peak-to-peak) by default, but can be attentuated via the parameters. The scale factor is (1+parameter value)/32, so at the minimum parameter value of -1 there is no output at all.

The outputs can also have a DC offset applied. The offset in Volts is (parameter value)/4 i.e. the range is ±7.75, in steps of 0.25V.

Input X is a Hz/V frequency control, scaled at 1Hz/V. Note that the input is allowed to go negative, resulting in a phase-reversed output.

Knob/CV Z is a tuning control, with a range of approximately ±10Hz. This is simply added to the setting from input X (so with input X disconnected, the knob can be used to manually set an LFO rate).

Input Y controls the waveshape of the output signals. Signals in the range ±5V give the full range of possible waveshapes:

Input Y-5V0V+5V
Output Asawsinetriangle
Output B0% duty cycle pulse50% duty cycle pulse
(square)
100% duty cycle pulse

B-6 Clockable LFO

X is clock input
Y is waveshape
Z is integer multiplier/divider
A is saw -> sine -> triangle
B is pulse -> square -> pulse
Tap tempo enabled
ParameterMinMaxDefaultDescription
0-13131Sets an attenuation for both LFO outputs.

Outputs A & B are LFOs (low frequency oscillators), with CV control of waveshape, and with the LFO cycle time set from a clock input. The output signals are ±8V (16V peak-to-peak) by default, but can be attentuated via the parameter. The scale factor is (1+parameter value)/32, so at the minimum parameter value of -1 there is no output at all.

Input X is the clock input. Any clock pulse in excess of 1V can be used. The time between rising trigger edges is used to set the cycle time.

Input Y controls the waveshape of the output signals. Signals in the range ±5V give the full range of possible waveshapes:

Input Y-5V0V+5V
Output Asawsinetriangle
Output B0% duty cycle pulse50% duty cycle pulse
(square)
100% duty cycle pulse

The Z knob/CV sets a scale factor which is applied to the cycle time. The scale is an integer (whole number) which either multiplies or divides the frequency, and ranges in value from 1-16.

When Z changes, the scale is shown on the display. If the value shown is negative, it is a divisor rather than a multipler. Note that there is no value of "-1" since dividing by 1 and multiplying by 1 are the same. After a short while the display reverts to showing the current algorithm.

B-7 VCO with linear FM

X is V/Oct pitch input
Y is linear FM input
Z is tune ±0.5 octaves
A is sine
B is saw
ParameterMinMaxDefaultDescription
0-1680Octave shift.
1-13131Sets an attenuation for output A.
2-13131Sets an attenuation for output B.

This algorithm is a VCO with a 1V/octave pitch CV input (X), and a linear FM input (Y), scaled at 100Hz/V. Note that, if the FM input goes sufficiently negative, it will take the frequency through and below zero, resulting in a phase inversion ("thru-zero FM").

The 0V point for the pitch input is C3 (approximately 130.81Hz).

The Z knob/CV provides a tuning control, with a range of approximately ±0.5 octaves.

The A and B outputs provide sine and saw waves respectively. The output signals are ±8V (16V peak-to-peak) by default, but can be attentuated via the parameters. The scale factor is (1+parameter value)/32, so at the minimum parameter value of -1 there is no output at all.

B-8 VCO with waveshaping

X is V/Oct pitch input
Y is waveshape/PWM
Z is tune ±0.5 octaves
A is saw -> tri -> saw
B is pulse -> square -> pulse
ParameterMinMaxDefaultDescription
0-1680Octave shift.
1-13131Sets an attenuation for output A.
2-13131Sets an attenuation for output B.
3-31310Offset for input Y (manual shape control).

This algorithm is a VCO with a 1V/octave pitch CV input (X), and waveshape/PWM input (Y).

The 0V point for the pitch input is C3 (approximately 130.81Hz).

The Z knob/CV provides a tuning control, with a range of approximately ±0.5 octaves.

Input Y controls the waveshape of the output signals. Signals in the range ±5V give the full range of possible waveshapes:

Input Y-5V0V+5V
Output Asaw (falling)trianglesaw (rising)
Output B0% duty cycle pulse50% duty cycle pulse
(square)
100% duty cycle pulse
The output signals are ±8V (16V peak-to-peak) by default, but can be attentuated via the parameters. The scale factor is (1+parameter value)/32, so at the minimum parameter value of -1 there is no output at all.

C-2 Voltage Controlled Delay Line

X is audio input
Y is delay time
Z is feedback (bipolar)
A is delay output
B is delay output plus input signal
ParameterMinMaxDefaultDescription
0-31310Applies an offset to the Y input.

This algorithm is a voltage controlled delay line, with a maximum delay time of just over 200ms. As well as simple echoes, this can produce a wide variety of effects such as vibrato, chorus and flange.

A control signal of 0-8V on the Y input sets the delay time, with a linear voltage/time relationship. The parameter can be used to set this to a 'centre' value, which makes it easier to patch in an LFO to the Y input without having to add a DC offset to the LFO.

Z is a feedback control. It is zero at 0V input, and provides negative feedback for negative voltages.

A outputs the delay signal only. Use this for vibrato effects, or if you want a controllable mix of dry and delayed signal.

B outputs the delay and dry signals mixed in equal amounts. In combination with an LFO on the delay time, this is the quickest route to chorus/flange type effects.

C-5 Resonator

X is audio input
Y is centre frequency (pitch)
Z is gain
A is audio output
B is envelope of audio output
Z press is 'strike'
ParameterMinMaxDefaultDescription
0-31310Applies an offset to the Y input.

This algorithm implements a resonator, which is a kind of filter, but which is also often found as the basis for analogue drum synthesis.

X is the input for the signal to filter. If used as a drum synth, this is the trigger input. The amplitude and nature of the trigger signal will affect the resulting sound.

Y sets the pitch of the resonator, with a 1V/octave response. The 0V point for the pitch input is C3 (approximately 130.81Hz). Parameter 0 provides a pitch offset in semitones.

Z sets the gain. In terms of drum synthesis, more gain means a longer decay time.

A is the audio output.

B outputs the result of envelope tracking the audio output A.

Pressing Z simulates hitting X with a 1ms 5V pulse, and so works as a manual trigger of the 'drum'.

C-7 Phaser

X is audio input
Y is sweep
Z is feedback (bipolar)
A is phase-shifted output plus input signal
B is phase-shifted output
ParameterMinMaxDefaultDescription
0-31310Applies an offset to the Y input.
111010Sets the number of phaser stages.

This algorithm implements a phase shifter or 'phaser' effect.

X is the audio input.

Y is the sweep input. 0V to 8V covers the whole range; negative voltages are treated as 0V. You will almost always want to patch an LFO in here. Parameter 0 can be used to set this to a 'centre' value, which makes it easier to patch in an LFO to the Y input without having to add a DC offset to the LFO.

Z controls feedback. More feedback results in more extreme phasing effects. When Z is negative, the feedback is inverted, which gives a different-sounding phasing effect.

A outputs the combination of the phase-shifted signal and the original signal, which is usually what you need for a classic phaser effect, since it's the interaction of the original signal and the phase-shifted version which produces the 'comb filtering' effect.

Output B provides just the phase shifted signal, if you need more contorl over how this and the original signal are mixed.

Parameter 1 sets the number of phase shifting stages. The more stages, the more notches there are in the comb filter, which results in a more pronounced effect.

D-2 Tape Delay

X is audio input
Y is tape speed
Z is feedback
A = dry + delay in ratio according to feedback
B = delay signal only
ParameterMinMaxDefaultDescription
003131Tape length.
1-8160Tape speed.

This is a delay/echo effect which simulates a variable speed tape loop echo device. The delay time at '1x speed', with the tape length parameter at maximum, is just over 400ms.

X is the audio input.

Y controls the speed of the 'tape', and thus the delay time. The voltage/speed relationship is 8V/octave. If you consider 0V as '1x speed', then +8V gives '2x speed' (the maximum) and -4V gives 'half speed' (the minimum). Parameter 1 can be used to set the speed manually; its value is added to that of the Y input.

The Z knob/CV controls the feedback, from zero to slightly more than 100%.

Output A is a mix of the dry (undelayed) signal and the delay effect. The amount of delay in the mix rises in direct proportion to the amount of feedback.

Output B is the delayed signal only. Use this and the input signal, plus an external mixer, if you need more flexibility in the dry/wet balance than is offered by output A.

D-3 Waveform Animator

X is audio input
Y is threshold
Z is separation
A = animated output
B = square waves output
ParameterMinMaxDefaultDescription
0-13111LFO depth.
1-31310Y offset.
203123LFO rate.
3-131-1Scale.

This algorithm recreates a popular analogue circuit variously known as a waveform animator or wave multiplier. Such a circuit, when given (typically) a sawtooth waveform as input, uses a comparator to generate a square wave of suitable phase and pulsewidth such that when the square and saw waves are added together the result is a phase shifted saw waveform. This is usually done a number of times and the results added with the overall effect of turning the original, rather plain, waveform into a much richer one which to all intents and purposes is the same as if you'd started with a number of VCOs rather than just one, and so sounds "fatter". In combination with LFOs varying the comparator thresholds, very rich textures can be generated.

Here, four comparators and four LFOs are used.

X is the audio input.

The thresholds of the comparators are set by a combination of Y and Z. Y sets the 'centre' threshold; Z sets a 'spread' of the individual thresholds around the centre. Parameter 1 also sets the centre.

Parameter 0 sets the LFO depth. Parameter 2 scales the LFO rates; the four LFOs have preset individual speeds, which the parameter multiplies.

Parameter 3 sets the 'scale'. The recreation of phase shifted sawtooths works best when the square wave amplitude is matched to that of the saw. The default setting of -1 uses an envelope tracker to automatically set the square amplitude from the incoming audio. Other values directly set the amplitude (31 corresponds to ±8V). Fixing the amplitude of the square waves and varying the input signal's amplitude is a useful effect in its own right.

Output A is the animated output (sum of the orignal signal and the comparator outputs). Output B is just the square waves.

D-4 State Variable Filter

X is audio input
Y is filter frequency
Z is filter type
A is filter output LP->BP->HP
B is filter output HP->BP->LP
ParameterMinMaxDefaultDescription
00310Filter resonance.

This is a 2nd-order filter, with a voltage controllable response type. By varying Z, the output can be low pass, band pass or high pass, or blends in between.

X is the audio input.

Y sets the filter frequency, with a 1V/octave response. The 0V point is C3 (approximately 130.81Hz).

Z sets the filter type output at A & B.

Output A blends smoothly between low pass (at minimum Z), through band pass (at zero Z), to high pass (at maximum Z).

Output B blends smoothly between high pass (at minimum Z), through band pass (at zero Z), to low pass (at maximum Z).

D-5 LP/HP Filter

X is audio input
Y is filter frequency
Z is filter resonance
A is low pass filter output
B is high pass filter output

This is a filter with simultaneous low pass and high pass outputs.

X is the audio input.

Y sets the filter frequency, with a 1V/octave response. The 0V point is C3 (approximately 130.81Hz).

Z controls the filter resonance.

D-6 LP/BP Filter

X is audio input
Y is filter frequency
Z is filter resonance
A is low pass filter output
B is band pass filter output

This is a filter with simultaneous low pass and band pass outputs.

X is the audio input.

Y sets the filter frequency, with a 1V/octave response. The 0V point is C3 (approximately 130.81Hz).

Z controls the filter resonance.

D-7 BP/HP Filter

X is audio input
Y is filter frequency
Z is filter resonance
A is band pass filter output
B is high pass filter output

This is a filter with simultaneous band pass and high pass outputs.

X is the audio input.

Y sets the filter frequency, with a 1V/octave response. The 0V point is C3 (approximately 130.81Hz).

Z controls the filter resonance.

D-8 BP/Notch Filter

X is audio input
Y is filter frequency
Z is filter resonance
A is band pass filter output
B is notch filter output

This is a filter with simultaneous band pass and notch outputs.

X is the audio input.

Y sets the filter frequency, with a 1V/octave response. The 0V point is C3 (approximately 130.81Hz).

Z controls the filter resonance.

C-3 Clockable Ping Pong Delay (Z feedback)

X is audio input
Y is clock
Z is feedback
A is left output
B is right output
Tap tempo enabled
ParameterMinMaxDefaultDescription
0010Output mode.

This algorithm is a stereo ping-pong delay/echo effect, primarily intended for processing audio signals, where the delay time is set from a clock pulse. It operates at a quarter of the standard sample rate (i.e. at about 19kHz) and offers a maximum delay time of about 900ms.

Input X is the signal input. Any audio signal can be fed in here.

Input Y is the clock input. Any clock pulse in excess of 1V can be used. The time between rising trigger edges is used to set the delay time. If the time between triggers is greater than the maximum delay time, the time is divided by two until it is small enough. This way, you always end up with a rhythmically useful delay time.

The Z knob/CV controls the feedback, from zero to slightly more than 100%.

Outputs A & B are the left and right outputs respectively. If the output mode parameter is 0 (the default), they are a mix of the dry (undelayed) signal and the delay effect. The amount of delay in the mix rises in direct proportion to the amount of feedback. If the output mode parameter is 1, the outputs are the delayed signals only. Use this and the input signal, plus an external mixer, if you need more flexibility in the dry/wet balance than is offered by output mode 0.

C-4 Clockable Ping Pong Delay (Z input pan)

X is audio input
Y is clock
Z is input pan
A is left output
B is right output
Tap tempo enabled
ParameterMinMaxDefaultDescription
003124Feedback.

This algorithm is a stereo ping-pong delay/echo effect, primarily intended for processing audio signals, where the delay time is set from a clock pulse. It operates at a quarter of the standard sample rate (i.e. at about 19kHz) and offers a maximum delay time of about 900ms.

Input X is the signal input. Any audio signal can be fed in here.

Input Y is the clock input. Any clock pulse in excess of 1V can be used. The time between rising trigger edges is used to set the delay time. If the time between triggers is greater than the maximum delay time, the time is divided by two until it is small enough. This way, you always end up with a rhythmically useful delay time.

The Z knob/CV controls the left/right pan position of the input signal.

Outputs A & B are the left and right outputs respectively. They are a mix of the dry (undelayed) signal and the delay effect. The amount of delay in the mix rises in direct proportion to the amount of feedback.

The delay feedback is set via the parameter.

E-1 AR Envelope

X is trigger input
Y is trigger input
Z sets the envelope times
A is envelope output
B is envelope output
ParameterMinMaxDefaultDescription
0020Trigger Mode.
1010Z Mode.
2-3131 31 Output A Attenuverter.
3-3131 31 Output B Attenuverter.

This algorithm is a two-stage (attack/release or attack/decay) envelope generator.

Inputs X & Y are trigger inputs. A signal in excess of 1V on either input will trigger the envelope, according to the mode set by parameter 0. In trigger mode 0, the envelope will rise to full level and stay there as long as the input is high (AR mode). In trigger mode 1, the envelope will execute one full attack/decay cycle in response to a trigger input (AD mode). In trigger mode 2, the envelope will continually execute attack/decay cycles as long as the trigger is high (looped AD mode).

Z sets the envelope times, according to the mode set by parameter 1. In Z mode 0, the full range of Z values sweeps from short A & D, through short A & long D, through long A & D, through long A & short D, and finally back to short A & D. In Z mode 1, Z sets the A & D times to the same value, from very short times (about 10ms) to very long times (about 8s).

A & B both output the envelope CV. Each has its own attenuverter parameter, which can attenuate and/or invert the signal. The maximum envelope level is 8V.

E-2 AR Envelope (with push)

X is trigger input
Y is trigger input
Z sets the envelope times
A is envelope output
B is envelope output
Press Z to trigger
ParameterMinMaxDefaultDescription
0020Trigger Mode.

This algorithm is a two-stage (attack/release or attack/decay) envelope generator.

Inputs X & Y are trigger inputs. A signal in excess of 1V on either input will trigger the envelope, according to the mode set by parameter 0. In trigger mode 0, the envelope will rise to full level and stay there as long as the input is high (AR mode). In trigger mode 1, the envelope will execute one full attack/decay cycle in response to a trigger input (AD mode). In trigger mode 2, the envelope will continually execute attack/decay cycles as long as the trigger is high (looped AD mode).

Z sets the envelope times. The full range of Z values sweeps from short A & D, through short A & long D, through long A & D, through long A & short D, and finally back to short A & D.

A & B both output the envelope CV. The maximum envelope level is 8V.

Pushing the Z knob has the same effect as triggering the envelope via the X or Y inputs.

E-3 AR Envelope & VCA

X is trigger input
Y is VCA input
Z sets the envelope times
A is envelope output
B is VCA output
ParameterMinMaxDefaultDescription
0020Trigger Mode.
1010Z Mode.
2-3131 31 Output A Attenuverter.
3-3131 31 Output B Attenuverter.

This algorithm is a combined two-stage (attack/release or attack/decay) envelope generator & VCA (voltage controlled amplifier).

Input X is the trigger input. A signal in excess of 1V will trigger the envelope, according to the mode set by parameter 0. In trigger mode 0, the envelope will rise to full level and stay there as long as the input is high (AR mode). In trigger mode 1, the envelope will execute one full attack/decay cycle in response to a trigger input (AD mode). In trigger mode 2, the envelope will continually execute attack/decay cycles as long as the trigger is high (looped AD mode).

Input Y is the VCA input. The signal here will be multiplied by the envelope and output on output B.

Z sets the envelope times, according to the mode set by parameter 1. In Z mode 0, the full range of Z values sweeps from short A & D, through short A & long D, through long A & D, through long A & short D, and finally back to short A & D. In Z mode 1, Z sets the A & D times to the same value, from very short times (about 10ms) to very long times (about 8s).

Output A is the envelope CV, and output B is the VCA output as mentioned above. Each has its own attenuverter parameter, which can attenuate and/or invert the signal. The maximum envelope level is 8V, which corresponds to unity gain for the VCA.

E-4 AR Envelope & VCA (with push)

X is trigger input
Y is VCA input
Z sets the envelope times
A is envelope output
B is VCA output
Press Z to trigger
ParameterMinMaxDefaultDescription
0020Trigger Mode.

This algorithm is a combined two-stage (attack/release or attack/decay) envelope generator & VCA (voltage controlled amplifier).

Input X is the trigger input. A signal in excess of 1V will trigger the envelope, according to the mode set by parameter 0. In trigger mode 0, the envelope will rise to full level and stay there as long as the input is high (AR mode). In trigger mode 1, the envelope will execute one full attack/decay cycle in response to a trigger input (AD mode). In trigger mode 2, the envelope will continually execute attack/decay cycles as long as the trigger is high (looped AD mode).

Input Y is the VCA input. The signal here will be multiplied by the envelope and output on output B.

Z sets the envelope times. The full range of Z values sweeps from short A & D, through short A & long D, through long A & D, through long A & short D, and finally back to short A & D.

Output A is the envelope CV, and output B is the VCA output as mentioned above. The maximum envelope level is 8V, which corresponds to unity gain for the VCA.

Pushing the Z knob has the same effect as triggering the envelope via the X input.

E-5 Dual AR Envelope

X is trigger input A
Y is trigger input B
Z sets the envelope times
A is envelope output A
B is envelope output B
ParameterMinMaxDefaultDescription
0020Trigger Mode.
1010Z Mode.
2-3131 31 Output A Attenuverter.
3-3131 31 Output B Attenuverter.

This algorithm offers dual two-stage (attack/release or attack/decay) envelope generators, with shared time settings.

Inputs X & Y are trigger inputs. A signal in excess of 1V on either input will trigger its respective envelope, according to the mode set by parameter 0. In trigger mode 0, the envelope will rise to full level and stay there as long as the input is high (AR mode). In trigger mode 1, the envelope will execute one full attack/decay cycle in response to a trigger input (AD mode). In trigger mode 2, the envelope will continually execute attack/decay cycles as long as the trigger is high (looped AD mode).

Z sets the envelope times, according to the mode set by parameter 1. In Z mode 0, the full range of Z values sweeps from short A & D, through short A & long D, through long A & D, through long A & short D, and finally back to short A & D. In Z mode 1, Z sets the A & D times to the same value, from very short times (about 10ms) to very long times (about 8s).

A & B are the envelope CV outputs. Each has its own attenuverter parameter, which can attenuate and/or invert the signal. The maximum envelope level is 8V.

E-6 Dual AR Envelope (with push)

X is trigger input A
Y is trigger input B
Z sets the envelope times
A is envelope output A
B is envelope output B
ParameterMinMaxDefaultDescription
0020Trigger Mode.

This algorithm offers dual two-stage (attack/release or attack/decay) envelope generators, with shared time settings.

Inputs X & Y are trigger inputs. A signal in excess of 1V on either input will trigger its respective envelope, according to the mode set by parameter 0. In trigger mode 0, the envelope will rise to full level and stay there as long as the input is high (AR mode). In trigger mode 1, the envelope will execute one full attack/decay cycle in response to a trigger input (AD mode). In trigger mode 2, the envelope will continually execute attack/decay cycles as long as the trigger is high (looped AD mode).

Z sets the envelope times. The full range of Z values sweeps from short A & D, through short A & long D, through long A & D, through long A & short D, and finally back to short A & D.

A & B are the envelope CV outputs. The maximum envelope level is 8V.

Pushing the Z knob has the same effect as triggering both envelopes via the X & Y inputs.

F-1 Clockable AD Envelope (with mute)

X is clock input
Y is mute input
Z sets the envelope shape
A is envelope output
B is envelope output
Tap tempo enabled
ParameterMinMaxDefaultDescription
0-3131 31 Output Attenuverter.

This algorithm is a two-stage (attack/decay) envelope generator, whose overall time is set from an input clock pulse. The envelope is continuously output (starting on each new clock pulse) unless muted.

Input X is the clock input. Any clock pulse in excess of 1V can be used. The time between rising trigger edges is used to set the envelope time.

Input Y is a mute input. While this input is over 1V, the output is forced to 0V.

Z sets the envelope shape, from short attack & long decay, to long attack and short decay.

A & B both output the envelope CV. Parameter 0 is an attenuverter setting, which can attenuate and/or invert the signal. The maximum envelope level is 8V.

F-2 Clockable AD Envelope (with gate)

X is clock input
Y is gate input
Z sets the envelope shape
A is envelope output
B is envelope output
Tap tempo enabled
ParameterMinMaxDefaultDescription
0-3131 31 Output Attenuverter.

This algorithm is a two-stage (attack/decay) envelope generator, whose overall time is set from an input clock pulse. The envelope is continuously output (starting on each new clock pulse) while enabled by the gate.

Input X is the clock input. Any clock pulse in excess of 1V can be used. The time between rising trigger edges is used to set the envelope time.

Input Y is a gate input. While this input is below 1V, the output is forced to 0V.

Z sets the envelope shape, from short attack & long decay, to long attack and short decay.

A & B both output the envelope CV. Parameter 0 is an attenuverter setting, which can attenuate and/or invert the signal. The maximum envelope level is 8V.

F-3 Clockable AD Envelope (with trigger)

X is clock input
Y is trigger input
Z sets the envelope shape
A is envelope output
B is envelope output
Tap tempo enabled
ParameterMinMaxDefaultDescription
0-3131 31 Output Attenuverter.

This algorithm is a two-stage (attack/decay) envelope generator, whose overall time is set from an input clock pulse. The envelope is triggered by a separate trigger pulse.

Input X is the clock input. Any clock pulse in excess of 1V can be used. The time between rising trigger edges is used to set the envelope time.

Input Y is a trigger input. Any clock pulse in excess of 1V can be used. A rising clock pulse triggers the envelope.

Z sets the envelope shape, from short attack & long decay, to long attack and short decay.

A & B both output the envelope CV. Parameter 0 is an attenuverter setting, which can attenuate and/or invert the signal. The maximum envelope level is 8V.

F-4 Clockable AD Envelope & VCA

X is clock input
Y is VCA input
Z sets the envelope shape
A is envelope output
B is VCA output
Tap tempo enabled
ParameterMinMaxDefaultDescription
0-3131 31 Output Attenuverter.

This algorithm is a two-stage (attack/decay) envelope generator, whose overall time is set from an input clock pulse. The envelope is continuously output (starting on each new clock pulse). This algorithm also offers a VCA (voltage controlled amplifier) function.

Input X is the clock input. Any clock pulse in excess of 1V can be used. The time between rising trigger edges is used to set the envelope time.

Input Y is the VCA input. The signal here will be multiplied by the envelope and output on output B.

Z sets the envelope shape, from short attack & long decay, to long attack and short decay.

Output A is the envelope CV, and output B is the VCA output as mentioned above. Parameter 0 is an attenuverter setting, which can attenuate and/or invert the signal. This applies to both outputs. The maximum envelope level is 8V, which corresponds to unity gain for the VCA.

F-5 Shift Register Random CVs

X is clock input
Y is modify input
Z sets the randomness
A is unipolar output
B is bipolar output
ParameterMinMaxDefaultDescription
0010Direction.
11168Length.
2031 0 Slew rate.
3-131 31 Output attenuator.

This algorithm generates random CVs via the popular rotating shift register method. The joy of this method is that it generates a loop of CVs, with a controllable likelihood of change, including the possibility to lock the loop so it does not change.

X is the clock input. Any clock pulse in excess of 1V can be used. On each rising edge the shift register rotates and a new CV is output. On each rotation, there is the possibility that one bit of the shift register will be flipped, changing the pattern. The likelihood of a flip is set by Z. When Z is zero there is a 50% chance that the bit will flip, which is the most random setting. As Z rises, the chance of a flip reduces, until at around 2V the chance of a flip hits zero and the pattern is effectively locked. Conversely, as Z goes negative, the chance of a flip goes up, reaching 100% at around -2V. This also effectively locks the pattern. When Z crosses the ±2V boundaries, in either direction, the display shows "**" for a short while to let you know that the pattern has been locked or unlocked.

Input Y allows for modification of the sequence, even when the loop is locked. If input Y is above 1V, the bit will always be flipped on a clock pulse, regardless of the setting of Z.

Output A is the random pattern interpreted as a unipolar CV i.e. it is always a positive voltage. Output B is the random pattern interpreted as a bipolar CV i.e. it can swing both positive and negative.

Parameter 0 sets the direction of rotation. The two directions have a different sound to the patterns they tend to generate.

Parameter 1 sets the length of the shift register, and so the length of the repeating CV pattern in terms of clocks.

Parameter 2 sets the output slew rate. This has the same effect as the Slew Rate Limiter algorithm being applied to the outputs.

Parameter 3 is an attenuator for both outputs.

F-6 Shift Register Random Quantized CVs

X is clock input
Y is modify input
Z sets the randomness
A is quantized CV output
B is trigger output
ParameterMinMaxDefaultDescription
0010Direction.
11168Length.
2015 0 Scale.
3-131 31 Output attenuator.

This algorithm generates random CVs via the popular rotating shift register method. The joy of this method is that it generates a loop of CVs, with a controllable likelihood of change, including the possibility to lock the loop so it does not change. The CVs are quantized to semitones or to a chosen musical scale.

X is the clock input. Any clock pulse in excess of 1V can be used. On each rising edge the shift register rotates and a new CV is output. On each rotation, there is the possibility that one bit of the shift register will be flipped, changing the pattern. The likelihood of a flip is set by Z. When Z is zero there is a 50% chance that the bit will flip, which is the most random setting. As Z rises, the chance of a flip reduces, until at around 2V the chance of a flip hits zero and the pattern is effectively locked. Conversely, as Z goes negative, the chance of a flip goes up, reaching 100% at around -2V. This also effectively locks the pattern. When Z crosses the ±2V boundaries, in either direction, the display shows "**" for a short while to let you know that the pattern has been locked or unlocked.

Input Y allows for modification of the sequence, even when the loop is locked. If input Y is above 1V, the bit will always be flipped on a clock pulse, regardless of the setting of Z.

Output A is the random pattern of CVs, quantized to the scale chosen via parameter 2. The list of scales is the same as that for the Quantizer algorithm.

Output B is a trigger output.

Parameter 0 sets the direction of rotation. The two directions have a different sound to the patterns they tend to generate.

Parameter 1 sets the length of the shift register, and so the length of the repeating CV pattern in terms of clocks.

Parameter 3 is an attenuator for the random CV, applied before quantization.

MIDI Output: each new note (i.e. when the Output B trigger fires) is output as a MIDI note message on MIDI channel 1.

F-7 Shift Register Random Triggers

X is clock input
Y is modify input
Z sets the randomness
A is trigger output
B is inverse trigger output
Press Z to modify sequence
ParameterMinMaxDefaultDescription
01168Length.

This algorithm generates random triggers via the popular rotating shift register method. The joy of this method is that it generates a loop of triggers, with a controllable likelihood of change, including the possibility to lock the loop so it does not change.

X is the clock input. Any clock pulse in excess of 1V can be used. On each rising edge the shift register rotates and a new CV is output. On each rotation, there is the possibility that one bit of the shift register will be flipped, changing the pattern. The likelihood of a flip is set by Z. When Z is zero there is a 50% chance that the bit will flip, which is the most random setting. As Z rises, the chance of a flip reduces, until at around 2V the chance of a flip hits zero and the pattern is effectively locked. Conversely, as Z goes negative, the chance of a flip goes up, reaching 100% at around -2V. This also effectively locks the pattern. When Z crosses the ±2V boundaries, in either direction, the display shows "**" for a short while to let you know that the pattern has been locked or unlocked.

Input Y allows for modification of the sequence, even when the loop is locked. If input Y is above 1V, the bit will always be flipped on a clock pulse, regardless of the setting of Z.

Output A is the random pattern of triggers. A trigger is emitted for every bit set in the shift register.

Output B is the inverse of A - a trigger is generated for every bit not set in the shift register.

Parameter 0 sets the length of the shift register, and so the length of the repeating trigger pattern in terms of clocks.

F-8 Shift Register Random Dual Triggers

X is clock input
Y is modify input
Z sets the randomness
A is trigger output A
B is trigger output B
ParameterMinMaxDefaultDescription
01168Length A.
11168Length B.

This algorithm generates random triggers via the popular rotating shift register method. The joy of this method is that it generates a loop of triggers, with a controllable likelihood of change, including the possibility to lock the loop so it does not change. In this algorithm there are two shift registers for the two outputs, which share a common clock.

X is the clock input. Any clock pulse in excess of 1V can be used. On each rising edge the shift register rotates and a new CV is output. On each rotation, there is the possibility that one bit of the shift register will be flipped, changing the pattern. The likelihood of a flip is set by Z. When Z is zero there is a 50% chance that the bit will flip, which is the most random setting. As Z rises, the chance of a flip reduces, until at around 2V the chance of a flip hits zero and the pattern is effectively locked. Conversely, as Z goes negative, the chance of a flip goes up, reaching 100% at around -2V. This also effectively locks the pattern. When Z crosses the ±2V boundaries, in either direction, the display shows "**" for a short while to let you know that the pattern has been locked or unlocked.

Input Y allows for modification of the sequence, even when the loop is locked. If input Y is above 1V, the bit will always be flipped on a clock pulse, regardless of the setting of Z.

Output A & B are the random patterns of triggers. A trigger is emitted on each output for every bit set in that output's shift register.

Parameters 0 & 1 set the length of the shift registers, and so the length of the repeating trigger patterns in terms of clocks.

C-6 Vocoder

X is modulator input
Y is carrier input
Z sets the decay time
A is audio output
B is envelope output
ParameterMinMaxDefaultDescription
0010Selects the filter bank.

This algorithm implements a vocoder. The spectral characterstics of the modulator input are applied to the carrier input. In classic usage, the modulator might be a human voice, and the carrier might be a synth sound, or simply noise.

X is the modulator input, and Y is the carrier input.

A is the audio output. B outputs a CV related to the envelope of the modulator signal.

The Z control sets the decay time of the internal envelope trackers, which track each band of the modulator signal. Use low values (negative Z) for most intelligible speech.

The parameter selects between alternative filter banks.

BankDescription
0Half octave spacing, based on 100Hz.
1Third octave spacing, based on 250Hz.

E-7 Euro to Buchla Converter

X is 1V/octave input
Y is gate input
Z is tune ±0.5 octaves
A is 1.2V/octave output
B is gate/trigger output
ParameterMinMaxDefaultDescription
0-880Octave shift.
No video yet - we don't own a Buchla! Volunteers please get in touch.

This algorithm is for interfacing Eurorack (or more generally, any analogue synths using the 1V/octave standard) with Buchla synths.

Input X/Output A convert a pitch CV from the 1V/octave standard to the 1.2V/octave standard.

Input Y is a gate input, triggering when the level exceeds 1V. From this, a Buchla-format combined gate & trigger is generated from output B. This is a 4ms pulse at 10V, followed by a sustained gate at 5V.

The Z knob/CV provides a tuning control, with a range of approximately ±0.5 octaves.

E-8 Buchla to Euro Converter

X is 1.2V/octave input
Y is gate/trigger input
Z is tune ±0.5 octaves
A is 1V/octave output
B is trigger output
ParameterMinMaxDefaultDescription
0-880Octave shift.
No video yet - we don't own a Buchla! Volunteers please get in touch.

This algorithm is for interfacing Buchla synths with Eurorack (or more generally, any analogue synths using the 1V/octave standard).

Input X/Output A convert a pitch CV from the 1.2V/octave standard to the 1V/octave standard.

Input Y is intended to receive a Buchla-format combined trigger & gate signal (typically a 10V trigger pulse followed by a sustained 5V gate). From this, output B generates just the trigger pulse (at 5V). If you need the gate signal, you can directly use the Buchla output.

The Z knob/CV provides a tuning control, with a range of approximately ±0.5 octaves.

C-8 Bit Crusher

X is signal input
Y is sample rate input
Z sets bit reduction
A is signal output
B is comparator output
ParameterMinMaxDefaultDescription
0-31310 Applies an offset to the Y input.
1070Selects the bit reduction mode.
2070Selects the bit mangling mode.

This algorithm is a 'bit crusher' - it applies sample rate and sample depth reduction to deliberately introduce quantisation and aliasing artefacts. It also optionally applies bitwise modification of the samples for non-linear distortion effects.

X is the signal input.

Y is the sample rate reduction CV input. It has a 1V/octave response i.e. the sample rate is reduced by a factor of 2 for every 1V rise in CV. This CV is offset by parameter 0, so you can set a rate reduction without a CV input.

A is the signal output.

B is the output of a comparator. Output A is compared against zero; output B is +5V if A is above zero, or 0V if A is below zero.

The Z control sets the bit depth reduction. There are two types of bit reduction available:

  • Type I - the signal is quantised to a 16 bit word, and the low bits thrown away. The resulting signal uses a power of 2 bits. Changing between bit depths is therefore discontinous.
  • Type II - quantisation is achieved via the limited precision of integer maths when dividing the signal by a factor. Since the factor can be continuously varied, this offers a smooth variation between 'bit depths'.

Furthermore, positive and negative values of Z have different effects.

  • Positive Z treats the whole signal range as one number to be quantised.
  • Negative Z treats positive and negative sections of the input signal differently. Negative sections are flipped positive, quantized, and flipped back.

Parameter 1 selects the type of bit reduction. The positive and negative sections of the input signal can have different types of reduction applied.

Parameter 1 valuePositive signalPositive signal
0Type IType I
1Type IIType II
2Type IType II
3Type IIType I
4Type I None
5Type II None
6NoneType I
7NoneType II
Parameter 2 selects the bit mangling mode.
Parameter 2 valueBit mangling
0None
1Bit swap variant 1
2 Bit swap variant 2
3 Bit swap variant 3
4Bit rotation
5Previous sample XOR variant 1
6 Previous sample XOR variant 2
7 Previous sample XOR variant 3

G-1 ES-1 Emulation

X is input 1
Y is input 2
Z is trim
A is output 1
B is output 2

This algorithm provides a software implementation of the Expert Sleepers ES-1 module. The in conjunction with the Silent Way AC Encoder plug-in this allows you to pass CVs from your DAW to your modular via an AC coupled audio interface.

X & Y are the two inputs - connect these to outputs from your audio interface.

A & B are the corresponding outputs - connect these to CV inputs in your modular.

Z provides a trim control. Adjust this so that a zero CV entering the AC Encoder plug-in gives you a zero CV out of the disting (either with a voltmeter, or by eye, just looking at the colour of the disting's output jacks).

G-2 ES-2 Emulation

X is input 1
Y is input 2
Z is trim
A is output 1
B is output 2

This algorithm provides a software implementation of the Expert Sleepers ES-2 module. The in conjunction with the Silent Way CV Input plug-in this allows you to pass CVs from your modular into your DAW via a regular audio interface.

X & Y are the two inputs - connect these to CV outputs from your modular.

A & B are the corresponding outputs - connect these to inputs on your audio interface.

Z provides a trim control, allowing adjustment of the ES-2's operating frequency. Start with this at zero (LEDs off) and adjust to minimise noise in the CV recovered from the plug-in.

H-1 Crossfade/Pan

A = Mix of X & Y according to Z
B = Inverted mix of X & Y according to Z
ParameterMinMaxDefaultDescription
0020Crossfade/pan law.

Viewed as a stereo output, A & B provide a panned version of X, plus an oppositely panned version of Y.

Viewed as mono outputs, A provides a crossfaded mix of X & Y, while B provides a mix with an inverted mix control.

In both cases Z provides the pan position or crossfade amount. When Z is turned, the crossfade position is displayed as a percentage (so 50% is an equal mix of the two sources/centre pan).

The parameter sets the pan/crossfade law.

0Equal gainAppropriate for crossfading phase-coherent material.
1Equal powerAppropriate for crossfading non-phase-coherent material.
2 Transition DJ-style crossfade where both sources are at full gain at the 50% position.

G-5 Tuner

X is input
Y is not used
A is a copy of X
B is a sine wave at the tracked pitch
Z sets the amplitude of B

This algorithm provides a chromatic tuner. The pitch of the input signal is tracked and displayed as a note name, with indication of whether the note is sharp or flat.

Natural notes are shown in capitals i.e. 'C', 'D', 'E' etc. Lower case letters indicate sharps e.g. 'c' indicates C sharp, 'd', indicates D sharp.

Following the note name a '-' indicates that the note is below the true pitch (flat) and '+' indicates that the note is above the true pitch (sharp). If the note is within 1 cent of the true pitch, neither '-' nor '+' is shown.

Output A is a copy of X, so the tuner can be left inline without needing a mult.

Output B is a sine wave at the pitch of the detected note. The amplitude of the sine wave is set by the Z knob/CV.

G-3 Pitch Reference

X & Y are not used
A is sine output
B is square output
Z sets the amplitude of A & B
ParameterMinMaxDefaultDescription
00110Semitone.
1-194Octave.

Generates sine and square waves at a fixed pitch, specified by the parameters.

Z sets the amplitude of the outputs.

When the pitch is changed, the note name is scrolled across the display, first as a normal name (e.g. 'C#4') and then as a MIDI note number (e.g. 61).

G-4 Frequency Reference

X & Y are not used
A is sine output
B is square output
Z sets the amplitude of A & B

Generates sine and square waves at a fixed frequency, specified in Hz.

Z sets the amplitude of the outputs.

When the pitch is changed, the frequency is scrolled across the display (e.g. '440Hz').

This algorithm uses an interface unlike any other, in order to be able to set the digits of the frequency individually. It is somewhat like the usual parameters interface, in that pressing Z advances through the digits, and turning S changes the values.

When S is turned, a pair of digits is displayed. The first is the decimal place that is being edited in the frequency value e.g. '0' is ones, '1' is tens, '2' is hundreds and so on. The second digit is the value of that digit within the frequency value.

Pressing Z advances the decimal place, and displays a pair of digits as above representing that new part of the frequency value, which can then be edited with S.

G-7 MIDI/CV

X & Y are not used
A is pitch CV output
B is gate output
Z is not used
ParameterMinMaxDefaultDescription
0-31310Transpose.
10242Pitch bend depth.

Performs a MIDI to CV conversion on MIDI notes arriving on the disting's MIDI port.

Output A is the pitch CV output; output B is the gate output.

Only MIDI channel 1 is recognised.

G-8 CV/MIDI

X is pitch CV input
Y is gate input
A & B are not used
Z is mod wheel or velocity CV input
ParameterMinMaxDefaultDescription
003116Channel offset.
1010Z mode.

Generates MIDI notes (on MIDI channel 1) from the pitch and gate CVs on the X & Y inputs.

Parameter 0 sets an offset between the timing of the X & Y inputs (in sample frames). It is generally a good idea to delay the pitch slightly relative to the gate, to ensure that the pitch has changed and settled before the gate triggers a new note.

Parameter 1 chooses the function of the Z knob/CV. If 0, Z sets the velocity of the generated MIDI notes. If 1, Z generates CC 1 (mod wheel) messages, and the note velocity is fixed at 64.

H-3 Dual Quantizer (Z scale)

A = quantized( X )
B = quantized( Y )
Z chooses scale
ParameterMinMaxDefaultDescription
0-13131Input X attenuation.
1-13131Input Y attenuation.
2-31310X transpose.
3-31310Y transpose.

Output A is a quantized version of input X; the closest whole-semitone value to the unquantized V/octave pitch CV X. Similarly output B is a quantized version of input Y.

As well as providing a chromatic scale, this algorithm can also constrain the quantized values to a musical scale or chord. This is controlled by the Z knob/CV.

When Z changes, the scale is displayed on the LEDs. The scale's number in the following table is show, and after a short pause, the scale's name. After the name has scrolled across, the display reverts to showing the current algorithm.

NumberScaleDisplayed name
0chromaticChromatic
1major scaleMajor
2minor scaleMinor
3major triadTriad
4minor triad3b+5
5root+5thFifth
6major triad+6thTriad+6
7minor triad+6th3b+5+6
8major triad+7thTriad+7
9minor triad+7th3b+5+7
10root+5th+6th5+6
11root+5th+7th5+7
12pentatonic majorPent
13pentatonic minorMinor Pent
14natural minor scaleNat Minor
15harmonic minor scaleHarm Minor

For each quantizer, a parameter provides a transpose control. The transposition is applied to the input before it is forced into the chosen scale i.e. the transposition moves the notes around within the same key.

MIDI Output: each new note is output as a MIDI note message on MIDI channel 1 (input X/output A) or 2 (input Y/output B).

H-4 Dual Quantizer

A = quantized( X )
B = quantized( Y )
Z is trigger
ParameterMinMaxDefaultDescription
0-13131Input X attenuation.
1-13131Input Y attenuation.
2-16160X scale/trigger mode.
3-16160Y scale/trigger mode.

Output A is a quantized version of input X; the closest whole-semitone value to the unquantized V/octave pitch CV X. Similarly output B is a quantized version of input Y.

As well as providing a chromatic scale, this algorithm can also constrain the quantized values to a musical scale or chord. This is controlled by parameters 2 & 3.

Parameter valueScale
0, ±1chromatic
±2major scale
±3minor scale
±4major triad
±5minor triad
±6root +5th
±7major triad +6th
±8minor triad +6th
±9major triad +7th
±10minor triad +7th
±11root +5th +6th
±12root +5th +7th
±13pentatonic major
±14pentatonic minor
±15natural minor
±16harmonic minor

Additionally, the parameter being positive or negative controls whether the quantizer works in triggered mode or not. The triggers are provided by input Z (approximately 1V is required to trigger it). If the parameter is negative, the quantizer is triggered - the input is only sampled and converted to a new quantized value when triggered by input Z. If the parameter is positive, the input is constantly sampled and a new note is output as soon as the input moves into the next semitone range.

MIDI Output: each new note is output as a MIDI note message on MIDI channel 1 (input X/output A) or 2 (input Y/output B).

H-6 Dual Delayed Pulse Generator

A is pulse triggered by X
B is pulse triggered by Y
Z function depends on parameter settting
ParameterMinMaxDefaultDescription
0060Z mode.
10126Range.
2-131-1Delay.
30317Length.

Outputs A & B are pulse generators (0-5V) triggered by inputs X & Y respectively (1V required to trigger). The delay between the trigger and the output pulse, and the length of the pulse, can both be controlled.

Unless in a mode where they are set by the Z input/CV, the delay and length are set from parameters 2 & 3. Parameter 1 provides a range control, which scales both the delay and length times. When the range parameter is 0, the maximum time is 10ms. Higher settings for range progressively double the maximum time; at the maximum ranage setting of 12, the maximum time is therefore 40.96s.

Parameter 0 controls the function of Z:

Parameter 0 valueZ function
0Z controls delay
1Z controls length
2 Output override (high). Z over 1V forces both outputs high.
3 Output override (low). Z over 1V forces both outputs low.
4Input enable. Z below 1V disables input triggers.
5Input disable. Z above 1V disables input triggers.
6 Z is an additional trigger input which triggers both outputs.

H-7 Noise

A is noise, optionally scaled by X
B is noise, optionally scaled by Y
Z is blend
ParameterMinMaxDefaultDescription
0-13-1Type A.
1-13-1Type B.
2-13131Attenuation A.
3-13131Attenuation B.

Dual output variable-colour noise generator, with two optional VCAs.

Outputs A and B are noise, with colour according to the parameter values:

Parameter valueNoise colour
-1Blended
0Violet
1White
2Pink
3Red

If 'blended' is chosen, the noise colour can be smoothly swept from violet to red with the Z knob/CV.

Parameters 2 & 3 set the attentuation of the outputs (31 corresponds to ±8V output for white noise). If the parameter is set to -1, the corresponding X/Y input is used to set the output amplitude (equivalent to following the noise output with a VCA driven by X/Y). The X/Y inputs are clamped at 0V i.e. negative input voltages yield silence.

H-2 Dual Sample and Hold

A = X when Z exceeds 1V
B = Y when Z exceeds 1V
ParameterMinMaxDefaultDescription
0010Mode.

If parameter 0 is 0 (the default):
Output A is a sample of input X, taken when the trigger input Z goes over 1V. (Sample and Hold)
If parameter 0 is 1:
Output A follows input X while input Z is over 1V. When Z falls below 0.5V, output A is held until Z goes over 1V again. (Track and Hold)

Similarly for output B/input Y.

Pressing the Z knob triggers a sample manually.

H-5 Dual Euclidean Patterns

A is pattern 1 out
B is pattern 2 out
X is clock input
Y is reset input
Z sets the 'pulses' for pattern 2
ParameterMinMaxDefaultDescription
011616Steps.
11164Pulses (pattern 1).
20160Rotation.
30310Pulse length.

This algorithm generates rhythmic patterns of output pulses known as Euclidean patterns. For a detailed description of these patterns and how they are commonly found in music around the world see e.g. here or here.

A pattern is described by the total number of steps (controlled by parameter 0) and the number of pulses (i.e. the number steps on which a pulse is output) (controlled by parameter 1 for output A and by Z for output B).

Parameter 2 sets a 'rotation' of the pattern. At zero rotation, the first step in the pattern will always be a pulse, and the remaining pulses distributed according to the algorithm. The rotation setting moves the first pulse by a number of steps i.e. moves the down beat.

Parameter 3 sets the length of the output pulse. At zero, the pulse is a fixed length of 10ms. Values of 1-31 set the pulse length to a fraction of the clock time.

Input X is the clock input, advancing the pattern by one step each time the input exceeds 1V. Input Y is a reset input, resetting the pattern to step 1.

G-6 MIDI Clock

X is clock input
Y is run/stop input
A & B are clock outputs
Z is not used
ParameterMinMaxDefaultDescription
0-2126Clock divisor for A.
1-212-2Clock divisor for B.
20118Clock divisor for MIDI clock output.
3010Y mode.

Generates clock outputs on A & B from an incoming MIDI clock; generates a MIDI clock from clocks on input X.

An incoming MIDI clock on the disting's MIDI input is used to generate 5V clock pulses on outputs A & B. Each has an independent clock divisor controlled by parameters 0 & 1. The parameter/divisor relationship is as in the following table:

Parameter valueOutput A/B
-2Run/stop
-1Reset pulse
01/32
11/24
21/16
31/12
41/8
51/6
61/4
71/3
81/2
91/1
102/1
113/1
124/1

Clocks fed into input X (1V threshold) generate MIDI clock on the disting's MIDI output. Parameter 2 sets the divisor relationship between the two clocks.

Parameter valueInput X
01/96
11/48
21/32
31/24
41/16
51/12
61/8
71/6
81/4
91/3
101/2
111/1

Parameter 3 controls whether input Y is used as a run/stop input:
When parameter 3 is 0 (the default), input Y is not used. The MIDI clock starts as soon as clocks appear on X; the MIDI clock stops if no clocks appear on X for two seconds.
When parameter 3 is 1, input Y is a run/stop input. The MIDI clock starts when Y goes high (over 1V), and stops when Y goes low (below 0.5V).

L-1 Stereo Reverb

X is left input
Y is right input
A is left output
B is right output
Z is wet/dry
ParameterMinMaxDefaultDescription
003115Size.
103123Feedback.
2051Character.
3-1318Lowpass filter.

A stereo reverberation effect.

X and Y are the stereo audio inputs. An equal mix of these is used to feed the reverberator.

A and B are the stereo audio outputs. These are a mix of the inputs and the reverb output.

Z is a wet/dry control. At zero, the output is 100% dry i.e. the input signals with no reverb added. For positive Z, reverb is added while holding the dry level constant. For negative Z, the dry and reverb signals are progressively crossfaded, until eventually the output is 100% wet i.e. just the reverberation signal.

Parameters 0 & 1 together control the reverb time.

Parameter 2 changes the reverb 'character' - it chooses between a number of options for the reverb algorithm's internal parameters leading to different sounding reverbs (some quite natural, others deliberately unnatural).

Parameter 3 applies a low pass filter to the reverb input. It does not affect the dry portion of the signal.

L-2 Mono-to-Stereo Reverb

X is audio input
Y is feedback CV
A is left output
B is right output
Z is wet/dry
ParameterMinMaxDefaultDescription
003115Size.
103123Feedback.
2051Character.
3-1318Lowpass filter.

A mono-to-stereo reverberation effect.

X is the audio input.

A and B are the stereo audio outputs. These are a mix of the input and the reverb output.

Z is a wet/dry control. At zero, the output is 100% dry i.e. the input signal with no reverb added. For positive Z, reverb is added while holding the dry level constant. For negative Z, the dry and reverb signals are progressively crossfaded, until eventually the output is 100% wet i.e. just the reverberation signal.

Parameters 0 & 1 together control the reverb time. Input Y also affects the feedback.

Parameter 2 changes the reverb 'character' - it chooses between a number of options for the reverb algorithm's internal parameters leading to different sounding reverbs (some quite natural, others deliberately unnatural).

Parameter 3 applies a low pass filter to the reverb input. It does not affect the dry portion of the signal.

L-3 Dual Reverb

A is X plus reverb
B is Y plus reverb
Z is wet/dry
ParameterMinMaxDefaultDescription
003115Size.
103123Feedback.
2051Character.
3-1318Lowpass filter.

A dual mono reverberation effect.

X and Y are the audio inputs.

A and B are the audio outputs. Each is a mix of its input and corresponding reverb output.

Z is a wet/dry control. At zero, the outputs are 100% dry i.e. the input signal with no reverb added. For positive Z, reverb is added while holding the dry level constant. For negative Z, the dry and reverb signals are progressively crossfaded, until eventually the outputs are 100% wet i.e. just the reverberation signals.

Parameters 0 & 1 together control the reverb time.

Parameter 2 changes the reverb 'character' - it chooses between a number of options for the reverb algorithm's internal parameters leading to different sounding reverbs (some quite natural, others deliberately unnatural).

Parameter 3 applies a low pass filter to the reverb inputs. It does not affect the dry portion of the signals.

L-5 Stereo Chorus

X is audio input
Y is LFO rate
A is left output
B is right output
Z is wet/dry
ParameterMinMaxDefaultDescription
00318LFO depth.
1-31310Y offset.
2-31310Feedback.
3-131-1Lowpass filter.

A stereo chorus effect.

X is the audio input.

A and B are the stereo audio outputs. These are a mix of the input and the chorus output.

Z is a wet/dry control. At zero, the outputs are 100% dry i.e. the input signal with no chorus added. For positive Z, chorus is added while holding the dry level constant. For negative Z, the dry and chorus signals are progressively crossfaded, until eventually the outputs are 100% wet i.e. just the chorus signals.

The chorus effect is generated via a number of LFOs. The LFO depth is set with parameter 0. The LFO speeds are set with a combination of parameter 1 and input Y.

Parameter 2 controls a feedback loop around the effect.

Parameter 3 applies a low pass filter to the chorus input. It does not affect the dry portion of the signals.

L-6 Mono Chorus

X is audio input
Y is LFO rate
A is blended output
B is wet output
Z is wet/dry
ParameterMinMaxDefaultDescription
00318LFO depth.
1-31310Y offset.
2-31310Feedback.
3-131-1Lowpass filter.

A mono chorus effect.

X is the audio input.

A and B are audio outputs. Output A is a mix of the input and the chorus output; output B is just the chorus output.

Z is a wet/dry control. At zero, the output A is 100% dry i.e. the input signal with no chorus added. For positive Z, chorus is added while holding the dry level constant. For negative Z, the dry and chorus signals are progressively crossfaded, until eventually the output is 100% wet i.e. just the chorus signal.

The chorus effect is generated via a number of LFOs. The LFO depth is set with parameter 0. The LFO speeds are set with a combination of parameter 1 and input Y.

Parameter 2 controls a feedback loop around the effect.

Parameter 3 applies a low pass filter to the chorus input. It does not affect the dry portion of the signal.