← 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.

Tremolo

Volume, going up and down on purpose.

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.

Tremolo

Amplitude modulation with rate, depth and a stereo phase offset. The oldest effect on the list and still the one that turns a held chord into a part.

Parameters

Tremolo

10 Hz
50%
180.00
100%

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 Tremolo, tapped after the output stage. It's a picture of what your speakers are getting.

Preview engine (Web Audio)

About

Amplitude modulation with rate, depth and a stereo phase offset. The oldest effect on the list and still the one that turns a held chord into a part.

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
Tremolo
Ratetremolo.frequency0.1 … 2010HzChops per second. Above about 15 Hz the ear stops hearing rhythm and starts hearing sidebands.Yes
Depthtremolo.depth0 … 10.5How far the level drops at the bottom of each cycle. At 1 it reaches silence.Yes
Spreadtremolo.spread0 … 180180degPhase offset between left and right. At 180 degrees the channels are opposite and the tremolo becomes an auto-pan.Yes
Mixtremolo.wet0 … 11Blend against the unmodulated signal. Pull it back to keep some level through the troughs.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.

A sine LFO at Rate scales the signal level between 1 and 1 minus Depth. Spread offsets the right channel's LFO phase, so at 180 degrees the two channels trough alternately and the effect reads as movement across the stereo field rather than pumping.

Ported from the plugin's tremolo, including the pass-through-when-disabled behaviour: the LFO keeps running while the stage is bypassed, so re-enabling it does not restart the cycle from zero.

It's yours to read and to fork.

Research preview

npx codex clone tremolo
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
One voice, pretending to be several.

Effects

Runs onlineVST3

Part of OSC-1

KeyboardMIDIDemo phraseGuitar takeMic
Coming soon
Chorus, phaser, tremolo - one LFO section, three destinations.

Effects

VST3
Guitar takeMicDemo phrase