[ a n y m a | research – blog ]
news from the lab…
fingerpinger works with the Magic Trackpad
Categories: Hardware hacking, MaxMSP

After some reverse engineering of the Multitouch Framework /System/Library/PrivateFrameworks/MultitouchSupport.framework
I found that it’s completely possible to get the finger data not only from the internal trackpad of MacBooks, but also from the Magic Mouse and from the new Magic Trackpad.

Here a preliminary proof of concept:
http://anyma.ch/software/fingerpinger2010-08-10.zip

I’ll clean up the code when I find some time again…

17 Comments to “fingerpinger works with the Magic Trackpad”

  1. […] Works with the Magic Trackpad, too! [ download […]

  2. Andrew says:

    Are there more steps to make this properly? Doesn’t seem to be working right off the bat with my Magic Trackpad. I was stoked to see this post because I knew from the get-go that fingerpinger / trackpadsynth would be wonderful with the bigger and more pick-up-able Magic Trackpad.

    Let me know if there are any more requirements aside from opening it in MaxMSP.

    Thanks a bunch! Your hard work is appreciated!

  3. Michael says:

    If you’re on a MacBook, Fingerpinger opens by default a connection to the internal trackpad. With the new version of the external, a number grater than 1 will look for additional devices.
    So for example, if I connect a Magic Mouse and a Magic Trackpad to my MacBook, [1] -> [fingerpinger] connects to the normal trackpad, [2] -> [fingerpinger] selects the MagicMouse and [3] -> [fingerpinger] selects the MagicTrackpad.

    I’m trying to get the external to be able to enumerate all multitouch devices that are currently connected to populate a umenu, for example. But as all this stuff is in a private framework that is not publicly documented by Apple, it’s a lot of guesswork how to do it. I’ll post updates as soon as I make some progress…

  4. Andrew says:

    Thank you so much! Your explanation makes perfect sense now. I feel kind of like a doof for not noticing the number field right next to the instructions. Silly me. I’ve placed fingerpinger and trackpadsynth in the same directory and they are working like a charm together. Rewiring the output into Pro Tools is a blast. I’m going to see if I can’t mark a few key note position on my Magic Trackpad. Try playing it as more than a “nonsense instrument.”

    Thanks again!

  5. tom says:

    Hi,

    I’ve got a magic trackpad paired to a black macbook bought in late 2008,running OSX 10.6.4

    I downloaded the new version of the external,but when I try to pass a number greater than 0 to the object,Max crashes every time.

    I read on Cycling ’74 that my computer might be too old for this to work properly,although the trackpad itself works fine with my computer.

    Is there something that I might be overlooking when trying to set this up?

    Great idea BTW.

  6. tom says:

    Sorry,

    Ignore that last post.I hadn’t updated the trackpad software…

    Works brilliantly.Thanks.

  7. Hello,

    Is it possible to switch off the tracking of the Magic Trackpad within MacOS so that it does not move the cursor but transmits data to fingerpinger only?

    Thank you.

  8. Alexandre says:

    Great news! Thanks for your great objects! i’m impatient to get a Magic Trackpad!

    Two little questions:

    – Could multiple Magic Trackpads, with multiple fingerpinger objects, work on one computer? …or in a future version of fingerpinger, perhaps?

    – Actually i’m one the Macbook Trackpad: What best did you find to put off the annoying exposé and application selector ?
    (Me i use “killall -STOP Dock” and “killall -CONT Dock” sended to the terminal thru the [aka.shell] object, but when i use fingerpinger a lot, i get some instabilities of the dock, and even have to restart the my computer.)

  9. Michael says:

    Multiple Trackpads could work, out of the box, already. On startup, the fingerpinger object enumerates all multitouch devices connected to your computer, and by sending it an int you can choose which one you want to listen to. When I connect a MagicMouse and a MagicTrackpad, I can choose between them,so I guess it would also work with two trackpads… Maybe someone who can get his hands on two of them can confirm this?

    As for exposé: since updating to 10.6.4 (needed anyway to use the Magic Trackpad) I can uncheck all gestures in the trackpad system preferences. No need anymore to kill the dock or other workarounds. Haven’t found a way to stop it from moving the cursor at all, though. And I have no idea how one could accomplish this.

  10. Alexandre says:

    Thanks for your answers, Michael!

    In fact, I was just wondering if i could join 4 Magic Trackpad, and then maybe have a screen projection over it…
    (To start, I’ll try with 2 Trackpad at the apple store when i get back to Barcelona.)

    “updating to 10.6.4” -> good to know!

    > “Haven’t found a way to stop it from moving the cursor at all,
    > though. And I have no idea how one could accomplish this.”

    You can use the [aka.mouse] object to put off the mouse.
    ( http://www.iamas.ac.jp/~aka/max/ )
    (i just put a patch here to automate the mouse off-on when putting fingerpinger on-off)

    Other subject:
    What about the IPAD finger data? Do you think that some kind of hack could also recover the “Blob-Size” of the fingers data to get this nice pressure-like feeling that fingerpinger have ?

  11. Alexandre says:

    > “i just put a patch here to automate the mouse off-on when putting fingerpinger on-off”

    I forgot the link :
    http://cycling74.com/forums/topic.php?id=27732&replies=15#post-141047

  12. Roald Baudoux says:

    > “i just put a patch here to automate the mouse off-on when putting fingerpinger on-off”

    Thanks !

  13. Sadly, aka.mouse doesn’t really cut the link between the Magic Trackpad and the mouse cursor, it just hides it. It means it’s still a bit dangerous because you could still drive it where a click would start something and actually when it goes to some places it becomes visible again. It is a bit disappointing because one could never completely trust the Magic Trackpad (for live use at least) with such a risk of an accidental click. I hope something can be done about this.

  14. Alexandre says:

    “fullscreen 1”-> [thispatcher], on a patcher window without any clickable interface ?

  15. Alexandre says:

    @ Michael

    > “When I connect a MagicMouse and a MagicTrackpad, I can choose between them”

    I just tried the MagicTrackpad and the MacBookProTrackpad together, each on a different fingerpinger object (using indexes 1 and 2, i don’t have a magic mouse) : Then, strangely, each fingerpinger object duplicate the data from the 2 trackpads. Plus putting on and off fingerpinger several times, duplicate the data more and more.
    (see picture in http://cycling74.com/forums/topic.php?id=27732 )

    best,

  16. Timo says:

    This is absolutely wonderful :)

    Because of RSI in my thumb I’m looking for a way to retrieve absolute input from the Magic Trackpad on Windows, making it a mouse replacement for myself.

    Can FingerPinger work with Windows?
    Or do you have any pointers for me where to look for raw Magic Trackpad output in Windows?

    Thanks a lot!
    Any input (no pun intended) is greatly appreciated.

    Timo

  17. Roald Baudoux says:

    Has anyone tried it with two Magic Trackpads ? Are they independant from each other or are all the data mixed ?

Leave a Reply