← All modules
AvailableEffect

A stage of OSC-1. It works the same on its own page as it does in the chain — same parameters, same paths.

Crush

Bit depth, sample rate, and bad decisions.

Audio and MIDI

Browser session

Audio is stopped.

Input · MIDI keyboard

Octave C4

Your keyboard is a keyboard. Middle row plays the white notes, top row the black ones. Z and X change octave. Keys are ignored while you are typing in a field.

Crush

Bitcrusher and oversampled waveshaper with quality tiers, from subtle grit to full collapse. Doubles as the bitCrusher stage of the OSC-1 chain.

Parameters

Crush

4.00
50%

These knobs move the module's published schema, but the preview engine only renders OSC Mini, FX Mini and the OSC-1 chain — so they won't change what you hear yet.

Output · Audio signal

Waveform appears once sound is running.

The signal leaving Crush, tapped after the output stage. It's a picture of what your speakers are getting.

Preview engine (Web Audio)

About

Bitcrusher and oversampled waveshaper with quality tiers, from subtle grit to full collapse. Doubles as the bitCrusher stage of the OSC-1 chain.

Take it into your DAW.

macOS (arm64 · x64)Windows (x64)Linux (x64)
Same DSP as this page. The plugin isn't a rebuild — it's the identical kernel from the identical TypeScript source, compiled native instead of to WASM.

Free forever, no account, and playing it in the browser will never ask you for one. VST3 and standalone today; AU and CLAP are on the roadmap.

Every knob, and what it actually does.

Generated from the module's parameter schema — the same source as the web UI, the worklet transport and the VST3 parameter table, so it cannot drift.

ParamRangeDefaultUnitsWhat it doesAutomatable
Crush
Bitscrush.bits1 … 164Quantisation depth. 16 is transparent, 8 sounds like a sampler from 1987, 1 is a square wave with opinions.Yes (stepped)
Mixcrush.wet0 … 10.5Blend of crushed against clean.Yes

Parameter paths (filter.cutoff) are what you'll see in your DAW's automation list and in the SDK. Same names everywhere.

How it works.

Quantises each sample to 2^Bits levels and mixes the result against the dry signal. The distortion is the quantisation error, which is why it sounds granular rather than warm - it is not a saturation curve, it is arithmetic being deliberately careless.

There is no rate decimation in the preview build; Bits is the only crushing axis here. The published schema keeps the name so the eventual kernel drops in without renaming anything.

It's yours to read and to fork.

Research preview

npx codex clone crush
npm run dev

The codex CLI name is proposed, not shipped. That command gives you this module's DSP, schema, presets and UI as a local project — change a number, hear it immediately.

Goes well with.

Available
The full synth, taken apart. Every stage is its own module.

Instruments

Composable — 11 stagesRuns onlineVST3
KeyboardMIDIDemo phrase
Available
Harmonics that were not there before.

Effects

Runs onlineVST3

Part of OSC-1

KeyboardMIDIDemo phraseGuitar takeMic
Available
Drive, tone, and a delay that knows when to stop.

Effects

Runs onlineVST3
Guitar takeMicDemo phrase
Available
Tube-style drive into a real cabinet.

Effects

Runs onlineVST3
Guitar takeMicDemo phrase