Pitched kits
A pitched kit plays recorded notes, called zones, at the pitch of each pad, the way a keyboard sampler does. One zone is enough for all sixteen pads; more zones keep each note close to its recording. The zones are held whole in RAM, so nothing streams from the card while you play. For a step-by-step setup, see Play a pitched instrument.
kit.json
Section titled “kit.json”A pitched kit is a kit folder like any other, with "engine": "pitched" and an instrument block in its
kit.json:
{ "name": "Keys", "engine": "pitched", "type": 0, "instrument": { "zones": [ { "sample": "SAMPLES/a3.wav", "root": 57 }, { "sample": "SAMPLES/a4.wav", "root": "auto" } ], "pad_notes": [60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75], "base_note": 60, "release_ms": 100, "attack_ms": 2, "max_voices": 10 }, "pads": [ { "note": 0, "playbackMode": 1, "volume": 100, "pan": 0, "samples": [] } ]}| Field | Meaning | Default |
|---|---|---|
engine | "pitched". Without it the kit plays on the sampler. | — |
zones | Up to 24 recorded notes. sample is the file; root is its MIDI note (a whole or fractional number) or "auto". loop_start and loop_end, in frames of the file, make a zone loop. | — |
pad_notes | Sixteen MIDI notes (0 to 127), one per pad. | chromatic from base_note |
base_note | The first pad’s note when there is no pad_notes list. | 60 |
attack_ms, release_ms | The fade in and the fade out after a pad is let go. | 2, 150 |
max_voices | Notes that sound at once. The CrossPad plays up to 10. | 24 |
pads[].playbackMode | 1 (Hold) passes the pad’s release to the instrument, so a note stops when you let go. | — |
A pad_notes list that does not have exactly sixteen valid notes is left out, and the pads run chromatically from
base_note. A pad’s note field stays the pad’s index: the lights and choke groups use it.
How a note is played
Section titled “How a note is played”- Each pad plays the zone whose root is nearest its note (a tie goes to the lower zone), sped up or slowed down to the pad’s note. As on every classic sampler, a note an octave up plays twice as fast and lasts half as long.
- With
"root": "auto"the CrossPad detects the zone’s pitch when the kit loads. It does not write the result back into the file. - Zones are 16-bit WAV files. A stereo file is mixed to mono, and a file at another sample rate is converted once, when the kit loads.
- Striking a note that is already sounding releases the old voice and starts a new one.
- Above the voice limit, a new note takes the place of a voice that is already fading out, or else the oldest one. The voice it replaces fades out briefly instead of stopping with a click.
- The engine keeps the audio on time: when rendering takes more than 85 % of the block on average, each new note takes the place of a sounding one instead of adding a voice. New notes add voices again once the load is back under 75 %.
- Voices are summed at full level. For a kit made for chords, set the pad volumes low enough that a full chord does not clip.
Memory
Section titled “Memory”The zones stay in RAM for as long as the kit is loaded. There is room for about 4 MB of zones in all, roughly 50 s of mono 16-bit sound at 44.1 kHz. A zone that does not fit is shortened to what fits, and the status bar says so after the load.