I was travelling in Colombia with just my laptop, and at some point I wanted to arrange some tracks in Live. I didn’t bring my Xio synth and didn’t have any control source around. I could use map the keys in my Macbook for triggering loops, but I also wanted to control continuous device parameters. Since I have a bluetooth mouse, I could use the trackpad of the Macbook to achieve it…
UPDATE: new version here.
The tools:
- Tongseng: It’s a very simple and useful program which reads multiple touches (I believe glass trackpads in current Macbooks can track up to 11 fingers) and converts that into TUIO messages. You can select the destination address and port for the messages.
- Max for Live
- OSC patches for Max/MSP, from CNMAT, should be previously installed
- Live (of course)
I programmed this Max for Live patch, which can be inserted in a MIDI channel. It listens to port 3333 for TUIO messages, and convert them into MIDI CC control data. It allows you to use the trackpad as either a group of 4 sliders (all of them can be used simultaneously), or 2 different x-y pads. The switch to select any of these functions can be assigned to a key, so it’s not necessary to use the mouse to do it. Max for Live always sends through MIDI channel 1, so I needed to use different continuous controllers, and to have some flexibility, I wanted to have 8 pages of controllers (first page uses MIDI CCs 1 to 4 for the faders, 5 and 6 for the first x-y pad and 7 and 8 for the second x-y pad; second page uses MIDI CCs 9 to 12 for the faders, 13 and 14 for the first x-y pad and 15 and 16 for the second x-y pad and so on). First, I wanted to use a max.tab to display the page, but this patch allows to map only one key to it. When you press the key it will switch to the next value. I wanted direct access to every page using keys 1-8, so I had to use max.button patches instead, and the max.tab for displaying. The trick is that first you should map the keys to the buttons…
… and then hide-on-lock the buttons (Command+K) and leave only the max.tab patch in the vissible area of the Max for Live plugin.
This way the interface works and looks pretty neat. Next step is to assign the MIDI controlls in the usual way. I included a “Send X” switch for every x-y pad in order to make the mapping easier, because sometimes is difficult to transmit only one CC if both x and y are active.
Don’t forget to deactivate the touchpad using the Universal Access preference pane, which can be found in the System Settings:
You might want to edit the patch to fit your needs (for example, to add more pages, change the controller number ranges, etc.). It would be nice if you share any cool modifications you make!
Update: A max for live patch sends MIDI data internally to Live, so I’m using the IAC driver to resend the data to Live. You have to activate at least one IAC port, and activate it as a remote control source in Preferencies/MIDI-Sync (if you are reading this I suppose you know how to it), and then route the output of the MIDI channel where you inserted the Max for Live patch:
Feel free to contact me or comment here if you have any questions.
Thanks for reading!