build the mapping before you buy the hardware
I am playing a festival at the end of September, and I wanted to do it as a hybrid set — djay Pro running four decks alongside Ableton running a bed of loops, tempo-locked over Ableton Link — rather than just playing on CDJs.
That plan needed a controller I did not own. Four decks of EQ, filter, volume and stem control is more knobs than anything in my studio, and the obvious move was to spend a couple hundred dollars on used gear and hope it felt right under my hands.
Then a more obvious thing: a controller is two things. A slab of knobs, and a mapping. The knobs cost money. The mapping costs days. And only one of those has to happen in that order.
the prototype
So I built the surface on an iPad first, in TouchOSC. 132 controls, four vertical channel strips, laid out exactly like the hardware I was considering. Wired to the laptop over USB — not wi-fi, because Link is already using the network and I did not want to debug jitter I had invented myself.
Three nights of mixing on glass told me more than any review could. Which controls I actually reach for. Whether vertical channel strips genuinely beat a grid of knobs. Which third of the surface I never touched once.
the thing nobody mentions
Partway through, the mapping stopped working. Controls I had assigned first went dead, and everything read as the same message.
A .tosc file turns out to be zlib-compressed XML. Decompress it and every control is a node with a frame and a MIDI block — which means the whole surface is scriptable, and the bug is visible. TouchOSC declares where each byte of the MIDI message comes from, and on the default template the CC number is sourced from the control index rather than the field you typed into. Every one of the 132 controls was emitting an identical message. djay was learning them all to the same thing, each new assignment silently overwriting the last.
Fixed in a script, not by hand: unique CC per control, one MIDI channel per deck, all 132 renamed, zero collisions. Then the same trick on djay Pro's own mapping file, which is an Apple property list — map one deck by hand, generate the other three.
what it cost
An evening, and an iPad that was already on the desk.
What it bought was the mapping finished weeks before any hardware exists — and if I do buy the controller, emitting its factory MIDI chart means the mapping transfers to metal unchanged. The honest other outcome is that I do not buy it at all, which would also be a win.
The full write-up — file format, the MIDI budget maths, a worked four-deck map and the scripts — is in the Lab: Rig Prototyping.