@maruaudio/dsp/voices/warps is the pinned original Mutable Instruments Warps core: crossmodulation algorithm pairs, the vocoder (crossfaded in around 0.7 of the algorithm control), an internal carrier oscillator and the frequency/phase-shifter mode, at a fixed 96 kHz in 60-frame interleaved PCM16 blocks. Its other files are voices/warps/controls (the original CvScaler) and voices/warps/stream (a 60-frame assembler). No host or voltage contract.
Parameters
setWarpsParameter refuses (returns false, no write) values outside their domain:
| Index | Accepted values | Default |
|---|---|---|
| 0 drive 1 / 1 drive 2 / 2 algorithm / 3 timbre | 0 to 1 | 0 |
| 4 note | −48 to 208 semitones (the original pitch-table domain) | 48 |
| 5 carrier | Integer 0 to 3: 0 the first input as carrier, 1–3 internal oscillator shapes | 0 |
| 6 bypass / 7 easter egg (frequency/phase shifter) | 0 or 1 | 0 / 0 |
| 8 frequency pot / 9 frequency CV / 10 phase shift | 0 to 1 / −1 to 1 / 0 to 1 | 0 |
readWarpsControls(controls, adc, level1, level2, params) fills these from four CVs and four pots (0 to 1) with the original calibration and f32 smoothing, refusing malformed input before any write; an unconnected level uses its pot².
Lifecycle
createWarpsState(96000) → parameters (or controls, once per block) → processWarpsBlock(state, input, output) on exactly 120 signed16 words (60 frames, MAIN and AUX) → resetWarpsState clears histories and the bypass and shifter flags, keeping knobs. For fragments: createWarpsStreamState() → processWarpsStream (in place allowed, 60 frames latency) → resetWarpsStreamState.
When to use it
Warps crossmodulation, vocoding or frequency shifting on a carrier and modulator pair at 96 kHz.
Limits
- 96 kHz only; any other rate, block shape or unsupported lookup domain refuses before mutation. A stream core refusal latches silence until reset.
- Rate conversion is the shared fixed-rate adapter's; parameters apply per block.