A bunch of pads connected to a MIDI out port is as old an idea as the Akai MPC. creating a homebrew version is great, but [Scott] took his version one step further. He used old laptop trackpads to control note on and note off commands when the each pad is tapped, and also added MIDI CC values for the touch pressure and the x and y-axis position.
The trackpads were identical models, each having their own PS/2 output. A few ribbon cable to 8-pin header adapters were manufactured, and the entire ensemble encased in a wonderful maple and aluminum enclosure.
The electronics are based on an Arduino Mega with 16 clock and data points for each touchpad eating up 32 of the 54 available pins on the ‘duino. The PS/2 protocol is well documented, but running 16 separate PS/2 id most certainly not. [Scott] ended up writing his own asynchronous PS/2 communications library to get the latency of his midi device down to about 50ms.
It’s an amazing bit of kit and comparatively inexpensive, given that [Scott] now has a 16-channel Kaoss pad. Video of the device hooked up to a MicroKorg below.
That’s a fantastic idea and realisation!
Great idea, but 50ms of latency? Good luck trying to play live or stay in sync with the other tracks you’re laying down. Anything over 10ms is pretty horrible for an instrument.
Actually, I just watched the video, and unless he’s re-synced the audio to the video, it seems like the latency is a great deal less than 50ms. Does the latency vary depending on how many of the trackpads are in use at any given time?
50ms was a rough estimate based on some initial measurements – I set up some timers and recorded a more accurate (and better) average latency of 32ms.
The latency does increase as more pads are in use. I need to look into that and see what I can do about it.
I spent lots of time working on performance with the PS/2 side of things, but left the MIDI site largely untouched. I probably have some optimization potential there. This is a first pass to prove the concept – I’ve got a little ways to go before I’m playing this live.
Thanks for the comments!
Had the same reactions, before and after the video. It’s hard to tell with the nature of the synth sounds in the video, but it seems lower than 32 ms too – though I’m not going to argue with the creator, who’s measured it!
Very cool project though, and it looks quite solid to take a beating too.
Like all the best ideas, this is simple, but effective. Not saying the work was simple, that was far from it, but the principle.
Hats off to ya, sir. I like the project and I think it is a good reuse of the pads :) Keep up the good work.
This is fantastic work.
A few thoughts – I wonder, but can’t find, what the theoretically lowest lag time for a PS2 trackpad is?
Some latency might be introduced by the USB to MIDI converter – they are notorious for this. Might be worth it for the author to measure before and after that interface.
Third, I want one. If the latency were lowered, I would build one right away. Unfortunately, low level software is not my strongest point.
Port this hardware to the MIDIbox core. Latency in nanoseconds. Yes, nano. There is almost certainly an existing codebase ready to go, too.
Supplementary challenge – add 16 FSRs under the pads for velocity and aftertouch sensing :D