ThisThing Algorithms Overview
x, y and z are inputs
a and b are outputs
1A: DMSampleAndHoldDual
x = CV ch1 y = CV ch2 z = clock
a = s&h ch1 b = s&h ch2
1B: DMSampleAndHoldDualClock
x = clock ch2 y = CV (both channels) z = clock ch1
a = s&h ch1 b = s&h ch2
1C: DMSampleAndTrackAndHold
x = CV z = gate
a = s&h b = t&h
1D: DMTrackAndHoldDualClock
x = clock ch2 y = CV z = clock ch1
a = t&h ch1 ** b** = t&h ch2
2A: DMSampleAndHoldProbabilistic
x = clock y = CV z = probability (linear taper, 10% to 100%)
a = s&h b = inverted s&h
2B: DMTrackAndHoldProbabilistic
x = clock y = CV z = probability (linear taper, 10% to 100%)
a = t&h output b = delayed (shift register style) t&h
When x gate is high a tracks and b holds
When x gate is low b tracks and a holds
2C: DMTrackAndHoldAla152
2 stage track and hold alternating sequencer. On first trigger a tracks and b holds, on second trigger a holds and b tracks
x = CV z = clock
a = t&h ch1 b = t&h ch2
2D: DMTrackAndHoldExtendedAla152
x = clock ** y** = CV z selects from 12 presets
a = t&h ch1 b = t&h ch2
3A: DMDigitalShiftRegister
x = clock y = CV z selects preset clock divisions
a = CV delayed by 1 unit of clock division b = CV delayed by 2 units of clock division
3B: DMSemitoneSlopeDetectorDual
x = CV, ch1 y = CV, ch2
a = slope detected, pos or neg, ch1 b = slope detected, pos or neg, ch2
3C: DMRiseAndFallDetector
x = CV in
a = trigger when rise detected b = trigger when fall detected
3D: DMDualFunctionQuantizerHelper
x = CV z = clock or gate a = s&h (from x)
y = CV in (output of quantizer) b = positive or negative slope detector trigger
4A: DMFPrecisionFMHelper
z knob (or CV in) smoothly moves (linearly) from 0v to 1v
x = CV in y = CV in (quantized to scale tonic, 2nd, minor 3rd, major 3rd, 4th, 5th )
a = x + y + z b = x + y - z
4B: DMOctaveAdderSubtractor
z selects 5 to +5 volts (octaves) x = CV in y = CV in
a = x + y + z b = x - y + z
4C: DMSemitoneAdderSubtractor
z knob (or CV in) selects from 13 preset values 0, 1 semitone, 2 semitones, to 1 octave
x = CV in y = CV in
a = x + y + z b = x + y - z
4D: DMTuningAndVoltageThresholdRef
z selects from 5 presets
a .75v, 1.75v, 2.75v, 3.75v, 4.75v b 3.75v, 4.75v, 5.75v. 6.75v, 7.75v
4D Secondary functionality Input range overload alert.
Detailed descriptions of all algorithms are included with the firmware download at GitHub.