Interface TremoloOptions

Construction-time configuration for a TremoloEffect, mirroring the tremolo AudioWorkletProcessor's AudioParam set (see import('./processors/tremolo').TremoloWorkletProcessor). All fields are optional; the worklet clamps to its documented ranges downstream. Field NAMES match the AudioParam names exactly (they flow straight through as parameterData).

The effect is LFO-driven amplitude modulation (a VCA swung by an LFO) — the gain swings between (1 - depth) and 1, never inverting (a true tremolo, not ring modulation). Anchored to standard AM theory, the quadrature stereo LFO of Dattorro 1997 (p.776), and the LFO-driven-effect framing of Mitcheltree et al. (DAFx23). stereoPhase offsets the per-channel LFO (0 = mono, 90 = quadrature, 180 = hard auto-pan).

interface TremoloOptions {
    depth?: number;
    rate?: number;
    shape?: number | "sine" | "square" | "triangle";
    stereoPhase?: number;
}

Properties

depth?: number

Modulation depth (0 = bypass, 1 = full 0..1 swing). Default 0.5. Range 0..1.

rate?: number

LFO rate in Hz. Default 5. Range 0..20.

shape?: number | "sine" | "square" | "triangle"

LFO shape: 0 = sine, 1 = triangle, 2 = square. Default 0. Accepts either the integer index or the matching string alias ("sine" = 0, "triangle" = 1, "square" = 2), translated to the index in build().

stereoPhase?: number

Per-channel LFO phase offset in degrees (0 = mono, 90 = quadrature, 180 = auto-pan). Default 0. Range 0..180.