A sample-and-hold clock running at Rate captures every channel at once, like the converter of an old sampler. Each capture is rounded to a two's-complement grid of 2^Bits levels from -1 up to one step below full scale, and the held value plays until the next capture. Silence stays silent at any bit depth. Jitter varies each hold period randomly, from a generator seeded by the node's path so every host and replay agrees. Dither adds triangular noise of one step before rounding, which trades the harsh, signal-dependent distortion of a coarse grid for a steady hiss.
The screen compares a quiet 1 kHz sine with its crushed output over 4 ms, including Mix. Drag the inner right rail for Bits and the outer rail for Rate, or focus either handle and use the arrow keys (Shift for fine adjustment). This is an example of the nominal clock and quantizer; Jitter and Dither are not drawn. The same face is available in node cards, Properties and Frames.
Use it for lo-fi drums, chiptune leads and aliased, metallic textures. For smooth saturation use Drive; follow the crusher with a State-variable filter low-pass to tame the aliasing.
The quantizer resolution, from 1 to 24. Whole values give exactly 2^bits levels: 1 bit is two levels, 8 bits is 256. Fractional values give intermediate step sizes, so the depth can be swept smoothly.
The sample-and-hold rate, from 50 Hz to 96 kHz. Each held value lasts the engine rate divided by Rate samples; at or above the engine rate every sample passes.
Off or On. On adds triangular dither of one step before rounding. Quiet details below one step survive as a noisy version of themselves instead of vanishing, and the dither keeps sounding on silence, so the node then reports an infinite tail.
Each help patch is an ordinary Toy that teaches one idea. The diagram shows the Patch; the preview shows its Frame. Open it in TuneToys to play and edit it.
1. Fewer bits, lower rate
beginner Teaches: bits, rate_hz, mix
A plucked sine crushed to fewer levels and a lower sample rate.
Oscillator
MIDI1 lane
Audio2ch
Fundamental pitch, capped below Nyquist; detune uses cents. Range: 20–20000 Hz. Default: 220 Hz. Logarithmic scale. Units: Hz.
Hz
Output gain. Range: 0–0.5 ×. Default: 0.12 ×. Linear scale. Units: linear gain.
×
Selects the implemented algorithm. Choices are discrete and are not LFO targets. Range: 0–7. Default: 0. Linear scale. Units: unitless.
Cycle offset; Gate rising edges restart phase from this position. Range: 0–1 cycles. Default: 0 cycles. Linear scale. Units: cycles.
cycles
Pitch offset in cents. Range: -1200–1200 cents. Default: 0 cents. Linear scale. Units: cents.
cents
On or off. A rising edge retriggers; held on runs the oscillator or envelope. A control cable switches it at 0.5. Range: 0–1. Default: 1. Linear scale. Units: unitless.
Semitones a full pitch bend on the MIDI input moves the note, up or down. Range: 0–48 st. Default: 2 st. Linear scale. Units: st.
st
Time constant of the slide from one MIDI note's pitch to the next; 0 jumps. Range: 0–2000 ms. Default: 0 ms. Linear scale. Units: ms.
ms
Envelope
Audio2ch
Audio2ch
Done1 lane
Time to rise to full gain. Range: 0–10000 ms. Default: 10 ms. Linear scale. Units: ms.
ms
Time to fall to sustain in ADSR, or zero in AD. Range: 0–10000 ms. Default: 120 ms. Linear scale. Units: ms.
ms
On or off. A rising edge retriggers; held on runs the oscillator or envelope. A control cable switches it at 0.5. Range: 0–1. Default: 0. Linear scale. Units: unitless.
Selects the implemented algorithm. Choices are discrete and are not LFO targets. Range: 0–2. Default: 0. Linear scale. Units: unitless.
Repeats complete envelope cycles while Gate is held. Range: 0–1. Default: 0. Linear scale. Units: unitless.
Restart from the current gain or reset to zero on a rising Gate. Range: 0–1. Default: 0. Linear scale. Units: unitless.
Duration of the held part in repeating ADSR/AR cycles. Range: 0–10000 ms. Default: 100 ms. Linear scale. Units: ms.
ms
Bitcrusher
Audio2ch
Audio2ch
Quantizer resolution: 2^bits levels across full scale, silence stays silent. Fractional values give intermediate steps. Range: 1–24. Default: 5. Linear scale. Units: unitless.
Sample-and-hold rate. At or above the engine rate every sample passes. Range: 50–96000 Hz. Default: 6000 Hz. Logarithmic scale. Units: Hz.
Hz
Random variation of each hold period, up to half a period either way at 1. Range: 0–1. Default: 0. Linear scale. Units: unitless.
Adds triangular dither of one step before quantizing. It sounds as noise on silence, so its tail is infinite. Range: 0–1. Default: 0. Linear scale. Units: unitless.
Dry/wet blend. Range: 0–1. Default: 1. Linear scale. Units: unitless.
Audio output
Audio2ch
Note
Note
Patch: Oscillator audio output connected to Envelope audio input. Envelope audio output connected to Bitcrusher audio input. Bitcrusher audio output connected to Patch outputs audio input.Connections as text
Oscillator audio output connected to Envelope audio input
Envelope audio output connected to Bitcrusher audio input
Bitcrusher audio output connected to Patch outputs audio input
A pure sine makes the steps easy to hear as new harmonics.
Bits sets how many levels remain; Rate sets how often a new value is held.
Frame preview (static). Controls show their default values.
A quiet plucked sine near the crusher's step size, with jitter and dither.
Oscillator
MIDI1 lane
Audio2ch
Fundamental pitch, capped below Nyquist; detune uses cents. Range: 20–20000 Hz. Default: 220 Hz. Logarithmic scale. Units: Hz.
Hz
Output gain. Range: 0–0.5 ×. Default: 0.12 ×. Linear scale. Units: linear gain.
×
Selects the implemented algorithm. Choices are discrete and are not LFO targets. Range: 0–7. Default: 0. Linear scale. Units: unitless.
Cycle offset; Gate rising edges restart phase from this position. Range: 0–1 cycles. Default: 0 cycles. Linear scale. Units: cycles.
cycles
Pitch offset in cents. Range: -1200–1200 cents. Default: 0 cents. Linear scale. Units: cents.
cents
On or off. A rising edge retriggers; held on runs the oscillator or envelope. A control cable switches it at 0.5. Range: 0–1. Default: 1. Linear scale. Units: unitless.
Semitones a full pitch bend on the MIDI input moves the note, up or down. Range: 0–48 st. Default: 2 st. Linear scale. Units: st.
st
Time constant of the slide from one MIDI note's pitch to the next; 0 jumps. Range: 0–2000 ms. Default: 0 ms. Linear scale. Units: ms.
ms
Envelope
Audio2ch
Audio2ch
Done1 lane
Time to rise to full gain. Range: 0–10000 ms. Default: 10 ms. Linear scale. Units: ms.
ms
Time to fall to sustain in ADSR, or zero in AD. Range: 0–10000 ms. Default: 120 ms. Linear scale. Units: ms.
ms
On or off. A rising edge retriggers; held on runs the oscillator or envelope. A control cable switches it at 0.5. Range: 0–1. Default: 0. Linear scale. Units: unitless.
Selects the implemented algorithm. Choices are discrete and are not LFO targets. Range: 0–2. Default: 0. Linear scale. Units: unitless.
Repeats complete envelope cycles while Gate is held. Range: 0–1. Default: 0. Linear scale. Units: unitless.
Restart from the current gain or reset to zero on a rising Gate. Range: 0–1. Default: 0. Linear scale. Units: unitless.
Duration of the held part in repeating ADSR/AR cycles. Range: 0–10000 ms. Default: 100 ms. Linear scale. Units: ms.
ms
Bitcrusher
Audio2ch
Audio2ch
Quantizer resolution: 2^bits levels across full scale, silence stays silent. Fractional values give intermediate steps. Range: 1–24. Default: 8. Linear scale. Units: unitless.
Sample-and-hold rate. At or above the engine rate every sample passes. Range: 50–96000 Hz. Default: 12000 Hz. Logarithmic scale. Units: Hz.
Hz
Random variation of each hold period, up to half a period either way at 1. Range: 0–1. Default: 0.4. Linear scale. Units: unitless.
Adds triangular dither of one step before quantizing. It sounds as noise on silence, so its tail is infinite. Range: 0–1. Default: 0. Linear scale. Units: unitless.
Dry/wet blend. Range: 0–1. Default: 1. Linear scale. Units: unitless.
Audio output
Audio2ch
Note
Note
Patch: Oscillator audio output connected to Envelope audio input. Envelope audio output connected to Bitcrusher audio input. Bitcrusher audio output connected to Patch outputs audio input.Connections as text
Oscillator audio output connected to Envelope audio input
Envelope audio output connected to Bitcrusher audio input
Bitcrusher audio output connected to Patch outputs audio input
At four bits the quiet decay vanishes into steps without dither.
Dither keeps it as hiss; Jitter blurs the whine of the slow hold clock.
Frame preview (static). Controls show their default values.