← All modules
AvailableEffect

Compressor

A full dynamics compressor with a filterable detector.

Engine preview

Not built for macOS, Windows or Linux

About

Honest about what it does not do yet. The stereo module is two independent mono lanes, exactly as the Gate is built, so the two detectors run independently: a hard-panned transient compresses one channel and not the other, which shifts the stereo image. Coupling them requires a stereo-capable node, because the detector state lives inside the node and the graph has no mechanism to share it.

There is no gain-reduction meter, and that is a deliberate absence rather than an oversight. The graph-only shape has no telemetry channel for the node's applied reduction, and the repo's rule is that absent is not zero - so the face draws no meter and says why, rather than showing a convincing 0 dB that would always be a lie. A typed telemetry tap alongside the audio tap is the real fix.

External sidechain input is not available here either: the shared graph caps host input at two channels, so stereo main plus stereo sidechain is not yet expressible. Pocket, which needs exactly that, is built on the persistent-kernel shape instead.

Build evidence

Every row below is a recorded build row or the recorded absence of one. Nothing here is inferred from what this module is meant to support.

Module
music.codex.compressor v1.0.0
Built at
no recorded row carries a build time; the browser lanes record none
Closure hash
not a Processor — no lowering closure
Toolchain
  • scriptc 64acce1ae3b8…
  • moduleToolchainDist c621ffab721d…
  • pluginShellKitRuntime bca003784692…
  • faceShellGeneration 8533207ab81f…
  • uiPreservation cd28dbd7e3d6…
  • packagerVersion 3
Build result and download for each format
FormatResultDownload
Browser package (JS)Not built by this module's lane

this module has no release.json; its packager lane records no browser program rows

Not built for the browser
Browser package (WASM)Not built by this module's lane

this module has no release.json; its packager lane records no browser program rows

Not built for the browser
VST3Not built

no recorded artifact row for vst3; native-lane-report.json is absent or records no vst3 row for this module

Not built for macOS, Windows or Linux
Audio UnitNot built

no recorded artifact row for au; native-lane-report.json is absent or records no au row for this module

Not built for macOS
CLAPNot built

no recorded artifact row for clap; native-lane-report.json is absent or records no clap row for this module

Not built for macOS, Windows or Linux
Standalone appNot built

no recorded artifact row for standalone; native-lane-report.json is absent or records no standalone row for this module

Not built for macOS, Windows or Linux

Parity

No lane recorded an artifact; there is no parity evidence.

Presets

Start from a named sound, then adjust the instrument to make it yours.

InitDefaultVocal ControlDrum Bus GluePunch (parallel)Pumping 1/8Bass TamerMastering GentleBrickwall Safety

Signal graph.

Experimental

The exact normalized graph packaged for the shared browser/native runtime and exports.

How it works.

Threshold, ratio and knee describe a static transfer curve, and attack, release and hold are the detector that decides how fast the signal travels along it. The curve is where the compressor is heading; the ballistics are how quickly it gets there, which is why a transient reads differently from a sustained passage at identical settings.

The detector is filterable and the filters are the point. A high-pass on the detector stops a kick's sub from pulling the entire mix down, and a low-pass stops the compressor keying on cymbals and sibilance - and neither one touches the audio you hear. At the ends of their ranges the kernel skips the section entirely rather than running it at unity, so Off means off.

Range is a hard ceiling on how much gain reduction may ever be applied, and it clamps after smoothing rather than before: the detector keeps its own state, and only the applied reduction is bounded. Auto-release derives the release time from the signal's crest factor once per block, so percussive material recovers quickly and sustained material slowly.

Mix is a graph-level dry/wet pair rather than a field inside the node, which is what makes a mix of 0 bit-exact dry instead of merely quiet. The node's own mix is pinned fully wet so the graph law is the only mix in the signal path.

Goes well with.

Preview

Squeeze

A compressor with visible gain reduction.

PreviewNot built for macOS, Windows or Linux
Preview

Gate

A noise gate with a clear threshold.

PreviewNot built for macOS, Windows or Linux

Pocket

Sidechain that gives the room back in the groove.

$29 preorder
Preview

Parametric EQ

Six bands, a curve you can drag, and a bit-exact bypass.

Preview