API reference
Every public class, method, and event in @codexo/exojs. Generated from source.
classAutoWahEffect
Auto-wah effect that uses an amplitude envelope follower to modulate a bandpass filter, creating the characteristic "wah" sweep driven by the loudness of the input signal. The envelope follower is built entirely from native Web Audio nodes — no `ScriptProcessor` or `AudioWorklet` required: 1. A `WaveShaperNode` rectifier approximates `|x|` (full-wave rectification), converting the AC audio signal to a unipolar amplitude proxy. 2. A `BiquadFilterNode` (lowpass) smooths the rectified signal. The cutoff is derived from `responseMs` to control attack/release speed. 3. A `GainNode` scales the smoothed envelope by `sensitivity` (Hz/unit) and connects its output directly to the wah filter's `frequency` `AudioParam`, sweeping the filter centre upward with input loudness. Node graph: ``` inputGain ─┬─ dryGain ─────────────────────────────┐ │ ├── outputGain └─ wahFilter(bandpass) ─── wetGain ──────┘ Envelope (control) path — parallel off inputGain, sums into wahFilter.frequency: inputGain → rectifier(WaveShaper,|x|) → smoothingLowpass(BiquadFilter,lowpass) → sensitivityGain → wahFilter.frequency (AudioParam) ``` Gains: `dryGain.gain = 1 - wet`; `wetGain.gain = wet`.
import { AutoWahEffect } from '@codexo/exojs-audio-fx' Auto-wah effect that uses an amplitude envelope follower to modulate a bandpass filter, creating the characteristic "wah" sweep driven by the loudness of the input signal.
The envelope follower is built entirely from native Web Audio nodes — no `ScriptProcessor` or `AudioWorklet` required:
1. A `WaveShaperNode` rectifier approximates `|x|` (full-wave rectification), converting the AC audio signal to a unipolar amplitude proxy. 2. A `BiquadFilterNode` (lowpass) smooths the rectified signal. The cutoff is derived from `responseMs` to control attack/release speed. 3. A `GainNode` scales the smoothed envelope by `sensitivity` (Hz/unit) and connects its output directly to the wah filter's `frequency` `AudioParam`, sweeping the filter centre upward with input loudness.
Node graph: ``` inputGain ─┬─ dryGain ─────────────────────────────┐ │ ├── outputGain └─ wahFilter(bandpass) ─── wetGain ──────┘
Envelope (control) path — parallel off inputGain, sums into wahFilter.frequency: inputGain → rectifier(WaveShaper,|x|) → smoothingLowpass(BiquadFilter,lowpass) → sensitivityGain → wahFilter.frequency (AudioParam) ```
Gains: `dryGain.gain = 1 - wet`; `wetGain.gain = wet`.
new(options: AutoWahEffectOptions): AutoWahEffect destroy(): void baseFrequency: number inputNode: AudioNode outputNode: AudioNode q: number ready: Promise<void> responseMs: number sensitivity: number wet: number