OSC MINIMonophonic subtractive

Oscillator

Wave
Octave
0
Detune
0 ct

Filter

Cutoff
2.00 kHz
Reso
0.7
Env Amt
0.0

Amp Envelope

A
10 ms
D
200 ms
S
70%
R
300 ms

Master

Gain
80%

One voice at a time — new notes steal the old one.

Keyboard

OSC Mini

← All modules
AvailableInstrument

OSC Mini

A small subtractive synth with nothing to hide.

Presets

Preset names do work: they teach the parameter space faster than the table below does.

InitFat SubGlass PluckRubber BassSlow Rise PadNasal LeadWooden MalletResonant Sweep

About

OSC Mini is the classic signal path - oscillator into a resonant filter into an amplitude envelope - with nothing bolted on. No unison stack, no macro page, no eight-slot modulation matrix to get lost in. That's the point: it's small enough that you can learn the whole instrument in an afternoon and then actually know something, which is more than most of us can say about the synths we own.

It's also the teaching example. OSC Mini's DSP, parameter schema, presets and interface are the same files the quickstart walks you through, which means the tutorial isn't a toy version of a real plugin - it is this plugin. If you clone it and change the filter to a state-variable design, you have made your own synth, and it will build as a VST3 the same afternoon.

Musically it lands where a single sawtooth and a good filter always land: basses that sit under things, plucks with the envelope pulled short, and long dumb pads that are better than they have any right to be. Push the resonance past about 12 and it will start to sing on its own, which is either a feature or a warning depending on your monitoring.

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.

How it works.

The path is oscillator into a biquad low-pass into an ADSR into a gain stage, in that order, one voice at a time. The oscillator produces a band-limited waveform at the note frequency, offset by Octave and Detune. That signal runs through a second-order biquad low-pass, whose corner frequency is set by Cutoff and pushed around by Env Amt. The amplitude envelope then shapes level over the life of the note, and Master Gain scales what leaves.

The envelope is doing double duty: the same ADSR that controls loudness also modulates the filter cutoff by Env Amt. That's a deliberate simplification - real synths give the filter its own envelope, and if you want that, the clone-and-edit path below is about twenty lines of work. Sharing one envelope is why OSC Mini has eleven parameters instead of eighteen, and why the whole thing fits on one screen.

Two honest limitations. It is monophonic - new notes steal the voice, so legato playing retriggers rather than layers. And the filter is a single biquad, so it rolls off at 12 dB per octave and self-oscillates in the whistling-resonance way rather than the warm-analog way. Neither is a bug we plan to hide; both are on the list for OSC-1.

It's yours to read and to fork.

Research preview

npx codex clone osc-mini
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.

@codex-music/audio-kernels · profiles/subtractive-voice.profile.json · ABI scsub_

Goes well with.

Available
Your camera becomes a mod wheel.

MIDI & Modulation

Runs onlineWeb only
Camera
Available
Tube-style drive into a real cabinet.

Effects

Runs onlineVST3
Guitar takeMicDemo phrase
Coming soon
A string, modelled rather than sampled.

Instruments

VST3
KeyboardMIDIDemo phrase