API reference

Every public class, method, and event in @codexo/exojs. Generated from source.

C

classLimiterEffect

@codexo/exojs-audio-fx / audio / stable

Brick-wall limiter backed by a Web Audio `DynamicsCompressorNode` configured for hard limiting: a fixed high ratio (~20), zero knee (hard knee), and a fast attack. Use it as a final-chain safety net to prevent clipping and protect downstream output. The compressor `ratio` and `knee` default to brick-wall values (20 and 0 respectively) but remain configurable, unlike a truly fixed limiter, because callers occasionally want a softer, more compressor-like limiting curve (lower ratio) or a gentler transition into limiting (larger knee) without switching to CompressorEffect and losing the dry/wet mix. The effect also exposes a dry/wet mix for API consistency and parallel processing workflows, though a fully-wet signal (`wet = 1`) is the typical configuration. Node graph: ``` input(GainNode) → dryGain → output(GainNode) input → compressor → wetGain → output ``` Gains: `dryGain.gain = 1 - wet`; `wetGain.gain = wet`.

9
props
1
methods
0
events
Import
import { LimiterEffect } from '@codexo/exojs-audio-fx'

Brick-wall limiter backed by a Web Audio `DynamicsCompressorNode` configured for hard limiting: a fixed high ratio (~20), zero knee (hard knee), and a fast attack. Use it as a final-chain safety net to prevent clipping and protect downstream output.

The compressor `ratio` and `knee` default to brick-wall values (20 and 0 respectively) but remain configurable, unlike a truly fixed limiter, because callers occasionally want a softer, more compressor-like limiting curve (lower ratio) or a gentler transition into limiting (larger knee) without switching to CompressorEffect and losing the dry/wet mix. The effect also exposes a dry/wet mix for API consistency and parallel processing workflows, though a fully-wet signal (`wet = 1`) is the typical configuration.

Node graph: ``` input(GainNode) → dryGain → output(GainNode) input → compressor → wetGain → output ``` Gains: `dryGain.gain = 1 - wet`; `wetGain.gain = wet`.

Constructors1
Methods1
destroy(): void
Disconnects all audio nodes and releases resources. Must be called when the effect is no longer needed.
Properties9
attack: number
Attack time in seconds for the limiter to engage. Range 0..1, default 0.003. Changes are ramped smoothly via setTargetAtTime.
inputNode: AudioNode
The node where audio enters this effect. Throws if the audio context is not yet initialized.
knee: number
Width in dB of the transition region around the threshold (soft knee). Range 0..40, default 0 (hard knee). Raise for a gentler transition into limiting. Changes are ramped smoothly via setTargetAtTime.
outputNode: AudioNode
The node where audio exits this effect. Throws if the audio context is not yet initialized.
ratio: number
Input-to-output dB ratio above the threshold. Range 1..20, default 20 (brick-wall). Lower for a softer, more compressor-like limiter. Changes are ramped smoothly via setTargetAtTime.
ready: Promise<void>
Resolves when the effect is fully initialized. Defaults to immediately-resolved for sync effects.
release: number
Release time in seconds for the limiter to disengage. Range 0..1, default 0.25. Changes are ramped smoothly via setTargetAtTime.
threshold: number
Threshold in dBFS above which limiting is applied. Range −60..0, default −3. Changes are ramped smoothly via setTargetAtTime.
wet: number
Dry/wet mix level, 0..1. The dry level is automatically 1 - wet. Changes are ramped smoothly via setTargetAtTime. Default 1.0.
Source