@audio/dynamics-opto
v0.2.4
Published
Optical compressor model — RMS detector, wide knee, T4 program-dependent release (LA-2A class)
Readme
@audio/dynamics-opto

Optical compressor model (LA-2A class) — RMS detection, wide soft knee, program-dependent release
npm install @audio/dynamics-optoimport opto from '@audio/dynamics-opto'Models a Teletronix LA-2A-style electro-optical gain cell: RMS-detected soft-knee compression (~3:1, wide 10 dB knee) plus the T4 cell's signature — release time that slows the longer gain reduction persists. An internal ~3 s memory of time-under-reduction stretches release up to 7× on sustained material, then relaxes back toward the nominal value once the signal clears.
opto(data, { threshold: -20, ratio: 3 }) // batch
opto(data) // defaults
let write = opto({ threshold: -20, ratio: 3 }) // streaming
let out1 = write(block1)
let tail = write() // flush| Param | Default | |
|---|---|---|
| threshold | -20 | dB |
| ratio | 3 | — |
| knee | 10 | dB (wide) |
| attack | 10 | ms |
| release | 300 | ms (nominal; program-dependent stretch multiplies this up to 7×) |
| makeup | 0 | dB |
| sampleRate | 44100 | Hz (alias fs) |
Use when: vocals, bass — smooth, program-dependent gain riding without pumping.
Not for: fast peak-catching character — use fet. Aggressive drive-dependent ratio — use varimu.
Part of @audio/dynamics — the dynamics family umbrella.
MIT © audiojs
