← All modules
AvailableInstrument

OSC Mini

A small subtractive synth with nothing to hide.

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.

OSC Mini

One oscillator into a filter into an envelope - the classic signal path, small enough to understand and good enough to gig with. OSC Mini is also the SDK's teaching instrument: its full source is the synth tutorial.

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.

Output · Audio signal

Waveform appears once sound is running.

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

Preview engine (Web Audio)

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.

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
Oscillator
Waveosc.typesine · saw · square · trianglesawThe raw tone before anything shapes it. Saw is brightest and the usual starting point; sine has no harmonics to filter, so the filter will seem broken on it.Yes (stepped)
Octaveosc.octave-2 … 20octTransposes the whole instrument in whole octaves.Yes (stepped)
Detuneosc.detune-100 … 1000ctFine pitch offset, one semitone either way. Small amounts to sit against another track; large amounts to sound wrong on purpose.Yes
Filter
Cutofffilter.cutoff20 … 200002000HzWhere the low-pass starts removing harmonics. The main tone control, and the knob you'll automate most.Yes
Resonancefilter.resonance0.1 … 180.7Emphasis at the cutoff point. Past about 12 it whistles; near 0.1 the filter gets polite and almost disappears.Yes
Env Amtfilter.envAmount-8 … 80How much the amp envelope also opens the filter. Positive gives the classic wow attack; negative closes it as the note begins. Zero means the filter stays put.Yes
Amp Env
AttackampEnv.attack0 … 20.01sTime from silence to full level. Zero is a click, and sometimes a click is what you want.Yes
DecayampEnv.decay0 … 20.2sTime to fall from full level down to the sustain level.Yes
SustainampEnv.sustain0 … 10.7Level held while the key is down. At 0 you get a plucked shape no matter how long you hold.Yes
ReleaseampEnv.release0 … 50.3sFade after you let go. Long releases plus short decays are where pads come from.Yes
Master
Gainmaster.gain0 … 10.8Output level, applied after the envelope. High resonance plus high gain will clip - that's on you.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.

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