Skip to content

Recorder and Slicer

The Recorder and the Slicer are two apps on one service, ISampleTools in crosspad-core. The Recorder takes a recording, trims it to a loop and saves it. The Slicer cuts a loop into up to sixteen slices and saves them as a kit. Neither app waits for the SD card: the card work runs on a task of its own, and the apps ask for it and check on it.

SourceWhat it records
MICthe built-in microphones
LINEthe line input
PADSthe pads as the Mixer plays them (the Sampler and pitched kits, with their faders, pan, mute and solo), never the inputs or a song
USBwhat the computer plays into the CrossPad, before its Mixer fader. Available in MIDI + Audio mode.

With SYNC on, REC plays the open song from bar FROM, and the take lines up with it: the take’s first frame is the start of that bar. FROM follows the song’s loop region; turn it to pick another bar. PRE counts one or two bars in before the take starts.

ARRANGE puts the loop between the markers into the song. A take made with SYNC goes where it was recorded, at the bar under START, so the loop stays on the beat wherever you trimmed it. Any other take goes after the last block of the first empty track. Before you confirm, the window shows which blocks would make room for it.

  • Takes are saved as rec_NNN.wav and loops as loop_NNN.wav in crosspad/recordings/: 16-bit stereo at the engine’s rate, up to 10 minutes each.
  • FILES, in both apps, browses the whole card: folders first, then WAV files, by name, 40 rows a page, up to 2000 entries in a folder. A WAV in a format the CrossPad does not read, such as 24-bit or compressed, says so when you open it.
  • Slices: up to sixteen, found by the loop’s hits (turn the sensitivity), in equal parts, or cut live with FREE: the first pad plays the loop, and every next pad cuts where you hear it.
  • Hits: a hit is a rise in level of 30 dB at sensitivity 0, down to 3 dB at 100. The cut lands up to about 10 ms before the hit, never after it.
  • ATK sets every slice’s attack, 0 to 500 ms. PITCH transposes the loop by −12 to +12 semitones, as on a turntable: a slice an octave up is half as long.
  • KIT saves the slices as a kit in /sdcard/crosspad/kits/: a folder with kit.json and the slices as SAMPLES/1.wav onwards. The attack and the pitch are written into the WAV files, so the kit sounds the same on any CrossPad. All pads are in choke group 1, so a slice cuts the one before, as on an MPC. The kit browser lists it under USER, and it is in the kit list at once.

PlatformServices::sampleTools (ISampleTools) is the service both apps use. Every call that needs the card is a request: it returns at once, and the result appears in the service’s state, which the app reads from its UI timer. Take the same approach in your own app: never wait for the card on the GUI task.