EZ Web Audio / LFO
Class: LFO
Defined in: packages/core/src/lfo.ts:115
Low Frequency Oscillator (LFO) for modulating audio parameters.
An LFO produces a slow oscillation that can be connected to any audio parameter (gain, pan, frequency, filter cutoff, etc.) to create effects like tremolo, vibrato, auto-pan, and auto-filter.
Example
import { createLFO, createOscillator } from 'ez-web-audio'
// Tremolo
const synth = await createOscillator({ frequency: 440 })
const tremolo = createLFO({ frequency: 5, depth: 0.3, type: 'sine' })
tremolo.connect(synth, 'gain').start()
synth.play()
// Vibrato
const vibrato = createLFO({ frequency: 6, depth: 50 })
vibrato.connect(synth, 'frequency').start()Constructors
Constructor
new LFO(
options?):LFO
Defined in: packages/core/src/lfo.ts:126
Parameters
options?
Returns
LFO
Accessors
depth
Get Signature
get depth():
number
Defined in: packages/core/src/lfo.ts:161
Current modulation depth
Returns
number
Set Signature
set depth(
value):void
Defined in: packages/core/src/lfo.ts:165
Parameters
value
number
Returns
void
frequency
Get Signature
get frequency():
number
Defined in: packages/core/src/lfo.ts:135
Current oscillation frequency in Hz
Returns
number
Set Signature
set frequency(
value):void
Defined in: packages/core/src/lfo.ts:139
Parameters
value
number
Returns
void
isRunning
Get Signature
get isRunning():
boolean
Defined in: packages/core/src/lfo.ts:201
Whether the LFO oscillator is currently running
Returns
boolean
type
Get Signature
get type():
LFOWaveform|PeriodicWave
Defined in: packages/core/src/lfo.ts:174
Current waveform type
Returns
LFOWaveform | PeriodicWave
Set Signature
set type(
value):void
Defined in: packages/core/src/lfo.ts:178
Parameters
value
LFOWaveform | PeriodicWave
Returns
void
Methods
connect()
connect(
target,paramName,options?):this
Defined in: packages/core/src/lfo.ts:215
Connect the LFO to a target's audio parameter.
Parameters
target
LFOTarget
BaseSound or BaseEffect instance to modulate
paramName
string
Parameter name: 'gain', 'pan', 'frequency', 'detune', or effect-specific
options?
Connection options (syncLifecycle, retrigger, depthUnit, depth)
Returns
this
this for chaining
disconnect()
disconnect(
target?,paramName?):void
Defined in: packages/core/src/lfo.ts:346
Disconnect from target(s).
Parameters
target?
LFOTarget
If provided, disconnect all connections to this target
paramName?
string
If provided with target, disconnect only the specific param
Returns
void
dispose()
dispose():
void
Defined in: packages/core/src/lfo.ts:447
Dispose the LFO, releasing all resources.
Stops the oscillator, disconnects all connections, and restores patched dispose methods. Idempotent — safe to call multiple times.
Returns
void
rampDepth()
rampDepth(
value,duration):void
Defined in: packages/core/src/lfo.ts:519
Smoothly ramp the modulation depth.
Parameters
value
number
Target depth
duration
number
Ramp duration in seconds
Returns
void
rampFrequency()
rampFrequency(
value,duration):void
Defined in: packages/core/src/lfo.ts:501
Smoothly ramp the oscillation frequency.
Parameters
value
number
Target frequency in Hz
duration
number
Ramp duration in seconds
Returns
void
start()
start():
this
Defined in: packages/core/src/lfo.ts:376
Start the LFO oscillator.
Returns
this
this for chaining
Throws
If no AudioContext available (call connect() first)
stop()
stop():
this
Defined in: packages/core/src/lfo.ts:419
Stop the LFO oscillator. Can be restarted with start().
Returns
this
this for chaining
syncToBPM()
syncToBPM(
bpm,noteLength):this
Defined in: packages/core/src/lfo.ts:474
Set LFO frequency to match a musical note length at a given BPM.
Parameters
bpm
number
Beats per minute
noteLength
string
Note length string (e.g., '1/4', '1/8', '1/16')
Returns
this
this for chaining