Percussa micro super signal processor

Apple today, alongside beefed-up iMacs with quad-core and Mac Pro towers with twelve, introduced a $69 Bluetooth trackpad accessory with multi-touch gesture support.

http://www.apple.com/magictrackpad/

I’m not a huge fan of trackpads over mice, but yes, this does give you a cheap multi-touch input to play with. And we haven’t seen much in the dirt-cheap, under-$100 space. Wacom’s Bamboo Pen & Touch is a fun, decent-enough tablet available at a street price about the same as the Magic Trackpad. But its “multi-touch” functionality consists of a set of hard-wired gestures – developers can’t get at discrete touch points directly on the device, even though that functionality is now part of the platform on Windows 7. (Cheap multi-touch sensing often isn’t terribly accurate, so you might not want that data anyway.)

Apple’s Magic Trackpad is different. We’ve already seen great, precise touch input from MacBook trackpads, and now that functionality is available even if you have an older model. (I’m now tempted to pick up one for my black MacBook.)

Gestures are nifty enough – Apple’s Pro Apps support them, so you can use these in Logic or Final Cut, if you like. But what I think creative visualists and musicians will really want is discrete input points. I haven’t had first-hand experience supporting the trackpads, nor can I confirm what’s available on this, but to get the conversation started, here are some resources; I think in our community, we can solve this relatively quickly.

Kineme MultitouchPatch from George Toledo on Vimeo.

The best Mac-based solution I’ve seen yet is the MultitouchPack from Kineme, which we’ve seen with the internal trackpad as well as Apple’s existing Magic Mouse:
http://kineme.net/release/MultitouchPatch/1.0

A complete set of tools using TUIO, the cross-platform, cross-device, open standard for multi-touch control based on the ReacTable platform:
http://www.tuio.org/?software

Cocoa multi-touch framework:
http://hci.rwth-aachen.de/multitouch

Tongseng on GitHub is already a wrapper around the native Mac functionality on trackpads, which I would think might work with the mice and external Magic Trackpads, too:
http://github.com/fajran/tongseng

xTUIO is a Mac-only tool that brings together touch on the platform
http://www.xtuio.com/

fingerpinger is a “hacked” Max external; GPL’ed so if someone wants to build it for Pd, it could be tested there, too.
http://www.anyma.ch/2009/research/multitouch-external-for-maxmsp/
Apparently works quite well; thanks, @oivindi!

(Ideally, though, something less hacky and built around the native APIs, then translated to something higher-level and cross-platform and portable would be the way forward, I think, though this is a good place to start.)

By the way, there’s also a neat utility called jitouch designed for customizing those trackpad gestures, which I imagine may also work with this.

Mac API reference

Two Mac classes are most relevant to the task at hand:
NSTouch
NSEvent

Thanks to Anton for the tip here.

These appear to include multiple pointer support in the NSEvent message, so tracking multiple fingers should be very possible. But I’m curious to hear from some developers about what will and won’t actually work. (One thing I’m not clear on, as a non-Cocoa dev, was how it even maps multiple touch events… unique ID? Are they also mapped to buttons?)

Going cross-platform?

To me, the appeal of using multi-touch really comes alive when you can go cross-platform. That means representing the events themselves in a consistent way (as TUIO does), but also having some frameworks that can work across platforms. In addition to the Mac support (NSEvent/NSTouch) above, as well as what’s available on mobile devices, there’s also native, public touch support in Windows 7, as well as new, finally-standard support in X and Linux.

A great example of how this can look is the extensive MT4j (Multitouch for Java) framework, which presently supports Windows XP/Vista/7 and Linux (tested on Ubuntu). It can easily swap input devices, so you could go from a multitouch table with objects to a trackpad like Apple’s without batting an eye. It’s missing Mac support, however.

With the Magic Trackpad, I can see two ways of going. It’s a Bluetooth device, so hacking access from other platforms aside from Mac OS may be possible. Moreover, though, it’d be great to see some Mac developers step up and start testing and helping develop MT4j on their platform.

If anyone is interested, I’m certainly ready to help support and promote your work here on CDM.

Of course, the first step before wrapping any Java support or something fancy like that is simply to get touch input working on the Mac. If you pick up one of Apple’s shiny, silver new toys, do let us know.

Previously on CDMo:
Multitouch Buffet: Quartz Composer for Touchpads, Magic Mouse; MT4j and PyMT For Everything

Image Courtesy of Apple.

Updated: Macworld gets a hands-on first look. It nicely covers the end user experience, but not some of our more advanced questions.