@audio/effect-rotary
v0.1.1
Published
Rotary speaker (Leslie) simulation — split horn/drum rotors, Doppler + directivity AM
Readme
@audio/effect-rotary

Rotary speaker (Leslie) simulation — split horn/drum rotors, Doppler + directivity AM
npm install @audio/effect-rotaryimport rotary from '@audio/effect-rotary'Leslie cabinet simulation — a treble horn and bass drum spin at independent, inertia-limited rates below a crossover split, each producing Doppler pitch modulation and directivity amplitude modulation as they turn past two virtual mics. Mono in, stereo out.
hornSpeed/drumSpeed rotor rates in Hz (default 0.8/0.7 chorale · 6.7/5.9 tremolo · 0/0 off) · crossover horn/drum split in Hz (default 800) · depth modulation intensity 0–1 (default 1) · hornInertia/drumInertia spin-up/down time constants in seconds (default 0.6/2.5 — the heavier drum lags the horn) · micSpread angle between the two virtual mics in radians (default π/2) · mix wet/dry 0–1 (default 1) · fs sample rate
import { rotary } from '@audio/effect'
// mono in, stereo out: pre-fill both channels with the same dry signal
let left = Float64Array.from(mono), right = Float64Array.from(mono)
let p = { hornSpeed: 6.7, drumSpeed: 5.9, fs: 44100 }
rotary(left, right, p) // left, right now hold the two virtual-mic outputsSwitching hornSpeed/drumSpeed mid-stream glides through the inertia model instead of snapping — the classic chorale↔tremolo swell.
Use when: organ/guitar Leslie emulation, spinning-speaker swells
Not for: plain stereo chorus (use chorus) or static stereo widening (use @audio/spatial)
Part of @audio/effect — the effect family umbrella. This README is generated from the umbrella docs.
MIT © audiojs
