@maruaudio/dsp/voices/rings translates the Mutable Instruments Rings modal resonator: up to 60 modes per voice with the original parameter laws, an internal or external exciter, the Strummer and onset detector, odd and even pickups and the output soft limiter. Only the modal model is implemented; qualification stays with the module.
Parameters
setRingsParameter returns false, changing nothing, for an unknown index, a non-finite value, model 1 or 2, or a polyphony other than exactly 0, 1 or 2.
| Index | Range as coded | Default |
|---|---|---|
| 0 frequency | 12 to 72 semitones | 48 |
| 1 structure / 2 brightness / 3 damping / 4 position; 5 to 9 their CV amounts | 0 to 1; −1 to 1 | 0.25 / 0.5 / 0.3 / 0.8; 0 |
| 10 polyphony | 0, 1 or 2: 1, 2 or 4 voices with 60, 28 or 12 modes | 0 |
| 11 model | 0 modal only | 0 |
setRingsCv(state, index, value, present) writes seven CVs; an absent CV takes its normal (1/12 for frequency, else 0). setRingsConnection (19 to 23: IN, STRUM, pitch, odd, even) declares connections; an absent input uses the internal pulse.
Lifecycle
initRingsState(rate, polyphony) allocates fixed storage → prepareRingsState restores defaults in place → set parameters, CVs and connections → triggerRings(state, velocity, note?) (ignored while STRUM is connected) → tickRings(state, input, strum) once per frame returns the out pair (odd and even pickups at polyphony 0) → resetRingsState clears all histories and keeps the settings.
When to use it
A Rings modal resonator voice or effect, struck internally or excited by audio.
Limits
- Stereo pair, one frame per tick; controls latch every 24 frames; other rates than 48 kHz rescale the limiter and onset filters.