All plugins

Audio effect

Chipper

1980s video game lo-fi processor. Bitwise quantization (bit depth 1–16), sample-rate reduction via sample-and-hold (divisor 1–64), and randomised clock jitter for vintage digital harshness.

Bundle
chipper.vst3
Role
Lo-fi bit crusher
Chipper plugin interface

Opinion

The sample-rate reduction is the most characterful control — dropping to sr/8 gives instant Game Boy, sr/16 pushes into Atari territory. Bit depth works best below 6 bits where the quantisation noise becomes musically aggressive rather than merely grainy. Jitter is subtle at low settings but adds organic timing instability that separates Chipper from clinical bit-crushers.

Functionality

Chipper implements two classic lo-fi algorithms in series: a configurable sample-and-hold (sample-rate reduction with optional timing jitter) followed by uniform midtread quantisation (bit depth reduction). The order matches hardware sample-rate reduction circuits, which hold the analogue input before digitising.

Signal chain

Input → Sample-and-Hold (Rate Div, Jitter) → Bit Quantise (Bit Depth) → Dry/Wet Mix → Output Gain → Out

Parameters

Parameter Range Default Notes
Bit Depth 1–16 bits 8 Quantisation resolution; 16 = no reduction; 8 ≈ original Game Boy DAC
Rate Div 1–64 8 Hold every Nth input sample; 1 = no reduction; sr/8 ≈ 6 kHz at 48 kHz
Jitter 0–100 % 0 % Fraction of Rate Div randomised per hold cycle; 0 = deterministic
Mix 0–100 % 100 % Dry/wet blend; 0 % passes input unchanged
Output Gain −12 to +12 dB 0 dB Post-processing level trim
CC Bit Depth 0–127 1 MIDI CC# that overrides Bit Depth in real time (0 = off); default = Drift lane 1
CC Rate Div 0–127 2 MIDI CC# that overrides Rate Div in real time (0 = off); default = Drift lane 2
CC Jitter 0–127 3 MIDI CC# that overrides Jitter in real time (0 = off); default = Drift lane 3
CC Mix 0–127 4 MIDI CC# that overrides Mix in real time (0 = off); default = Drift lane 4
CC Channel 1–16 1 MIDI channel for all four CC overrides

Drift routing

Route Drift’s MIDI output to Chipper’s MIDI input. With default settings, all four Drift lanes map directly: CC 1 → Bit Depth, CC 2 → Rate Div, CC 3 → Jitter, CC 4 → Mix. CC 0 disables the override for that parameter, restoring the panel value. Each CC value (0–127) is mapped to the full parameter range: bit depth 1–16, rate divisor 1–64, jitter 0–100 %, mix 0–100 %.

DSP notes

The sample-and-hold uses a per-channel held value updated every Rate Div frames. When Jitter > 0, a xorshift32 PRNG randomises the hold length by ±floor(jitter × rateDiv / 2) frames each cycle, simulating the clock instability of cheap 1980s DAC circuits. Bit quantisation uses midtread uniform rounding: round(x × 2^(N−1)) / 2^(N−1).

Status

Core DSP and tests are complete. Screenshot capture pending.