Max/MSP multi touch.
Hello!
Does max have a way of reading multi touch gestures using the new apple external trackpad - or the macbook pro track pad for that matter. i.e. two + fingers at once - controlling parameters?
It'd be interested if it did -
any thoughts?
m
Ohhhhh yes! It's not native max/msp, it's an external - up to approx 10 finger tracking, with rotation, "pressure" (blob size)..... etc.....
have fun :)
Has it already been confirmed that the Fingerpinger patch will actually work with the new Magic Trackpad?
If so, I am ordering one right now ...
hmm I somehow only read "macbook pro track pad" in the OP. I had no idea Apple have finally made an external trackpad!! :)
From a quick info-check on it, it seems to support all the same multi-touch gestures that the laptop track-pads do already, so I would assume that it's the same underlying technology, just bigger. That makes me confident that fingerpinger will work, but don't take my word for it; maybe give Apple a call?
I want one, seems fairly well priced as well :)
I submitted a post about fingerpinger recently. It works like a charm, but the problem appears when you use so many fingers that the standard mac trackpad functions take over. Do any of you know a way to get around this?
Cheers,
E
I've read some posts about people having this problem, but I've not run into it yet; although nor have I used fingerpinger in an actual patch yet; I just mess around with it a lot :) My trackpad is tooooo small to use easily with it.
What trackpad functions are you triggering by accident when using it?
does anybody know how the Magic Trackpad compares to Wacom's Bamboo Touch ?
BTW, apple page says:
Even though Magic Trackpad is capable of multiple gestures, you may find one or two unnecessary. Not to worry. Simply access the Magic Trackpad pane in System Preferences to enable gestures you want and disable those you don’t want.
Well, i built a simple patch just for controlling the frequency for a number of oscillators. Four fingers results in a "popup" with a list of programs currently running on the computer. There seems to be no simple way to get rid of this problem. Anyway, i can search some other forums and get back to you if i find some information on it.
As the fingerpinger helpfiles point out; it's a hack, with all the disadvantages that brings with it.
Hmm, I've never had that happen when using 4-fingers on OSX 10.6. What OS are you using? I also have used a utility called Multiclutch which lets you assign gestures to shortcut keystrokes, but that never interferes if max has focus while fingerpinging.
I'll have a play with it at some point today and see if I can trigger stuff like that accidentally on my system.
My excuses! With about half a second of research i found out that exposé can easily be turned of. So before anyone else starts bashing me for posting unnecessary posts, i already did it to myself. Conclusion: Fingerpinger works amazingly well.
Fingerpinger is still using the regular trackpad even I turned down the function in system preference. How to get it work in max/msp side?
Seeing your post, honhim, i went back and started toying with fingerpinger again, and unfortunately, they are still there. Sorry for my premature post. Do anyone have any better ideas?
Just got the Magic Trackpad, but, as expected, it can't be used with fingerpinger out of the box.
I emailed the author, and he's waiting for his own Magic Trackpad, so hopefully we'll get multitouch goodness through fingerpinger soon.
Great device, btw, and surprisingly precise!
The author have updated the frameworks. Now, it works like a charm :)
Link: http://www.anyma.ch/blogs/research/2010/08/10/fingerpinger-works-with-the-magic-trackpad/
Remember to set the number box to [2] if you use a magic trackpad. Set to [3] if you use a magic mouse. [1] is the internal trackpad.
Cheers!
Is there any way *not* to move the mouse cursor while getting the Magic Trackpad's data with fingrpinger in Max? This is the only serious drawback I see with this device at the moment (apart from the update to Snow Leopard).
Also, I am thinking to apply some kind of film (like 3M Vikuiti) on the Magic Trakpad to help vizualize some zones mapped to specific controls. Has anyone tried to apply such films ?
>"Is there any way *not* to move the mouse cursor while getting the Magic Trackpad's data with fingrpinger in Max?"
You can use the [aka.mouse] object to put off the mouse. Attached here is a patch to automate the mouse off-on when putting fingerpinger on-off. It works for me with my MBP Trackpad.
( I also put an option to disable the 4-fingers exposé and application selector problem, but it still have some issues, plus it looks like if i update to 10.6.4, this can be turned off, see discussion here : http://www.anyma.ch/blogs/research/2010/08/10/fingerpinger-works-with-the-magic-trackpad/ )
> "I am thinking to apply some kind of film"
I'm curious about your experience on this.
> You can use the [aka.mouse] object to put off the mouse. . Attached here is a patch to automate the mouse off-on when putting fingerpinger on-off. It works for me with my MBP Trackpad.
Super, Alexandre. Mercithanks !
1. With a very basic transparent film - the one used to cover school books - the performance of the Magic Trackpad appears to be completely identical as it was without the film ! One can draw over it to represent some zones, etc. Just wondering if a film printed with an inkjet printer would still be as good and how it would resist to contact with fingers.
2. Aka mouse doesn't really stop the link between the Magic Trackpad and the mouse pointer, it just hides it. This 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's a bit disappointing because I would never comletely trust the Magic Trakcpad (for live use at least) with such a risk of an accidental click. I hope somathing could be done about this.
> "very basic transparent film - the one used to cover school books "
Good to know.
> "Aka mouse doesn't really stop the link between the Magic Trackpad and the mouse pointer, it just hides it."
hmm, strange that i didn't notice. (I guess that's because i deactivated the 'finger tap click' in the trackpad preferences, and as i touch gently the surface, i almost never really 'click'... i'm wondering how heavy is the 'real click' with the magic trackpad, i'll receive one in 3 days.)
>" This 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."
Well, then, i guess the only good workaround for the moment must be to work fullscreen ("fullscreen 1"-> [thispatcher]), using a patcher window without any clickable interface, when starting fingerpinger.
...and you can even send "ignoreclick $1" to all your UI objects in the patch, like in attachment.
Another possibility is to bang the message ;max pupdate 40 100 to move the mouse cursor to a specific place where it cannot interfere with the GUI. All special gestures have to be switched off in the system preferences. I had used this technique with the old style trackpads and the hi object.
Also it seems the case that system preferences for the trackpad are setting the behaviour of the build in trackpad of the MacBook Pro, as well as the magic trackpad. fingerpincher works brilliantly for either of them, but loading two patches a trackpad each, causes interference in the data.
hi,
I can't install fingerpinger.
fingerpinger: no such object.
I put the .mxo folder to external folder normally.
I'm on max os 10.5.8. and max latest version.
there was no instruction to install the external.
can please someone tell me how to do it??
thank you.
I forgot to mention that I have a macbook pro that I bought maybe a 3 years ago..I can't remember exactly when.
I tried to place the .mxo "folder" both in externals and in cycling74/max-externals, I mean, I don't know what can I do to install the externals other than this way. please help me.
thank you.
@ milc :
Your computer is too old I think to have a multitouch (= more than two fingers) MB Pro. Hence it cannot use fingerpinger.
...shit.
I thought it was multi touch...I can put one finger and scroll.
but well, thanks.
I just received my Magic Trackpad!
fingerpinger works great!
> "but loading two patches a trackpad each, causes interference in the data."
Hmm, 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. Picture attached.
Also, messages ;max hidecursor and ;max showcursor are in fact more simple than using [aka.mouse]
I'm still wondering about an automated way to uncheck/check back, all the boxes from the trackpad pref. pane, while putting fingepinger on/off.
Maybe some terminal command exist, to do this ?
(sending terminal commands thru [aka.shell])
There are Applescript commands for some of the preferences options, but I've not found any info about the trackpad options yet. I might experiment with it a little :)
>> "I might experiment with it a little :)"
thanks!
Here's the relevant Applescript - I played around with this some time back, so I'm not sure if everything still works - you can refer to to the checkboxes by number (checkbox 1 of group 1) or name (checkbox "Scroll" of group 1)
Script that toggles the first and last checkboxes of the trackpad pane:
tell application "System Preferences"
activate
set current pane to pane "com.apple.preference.trackpad"
end tell
delay 1
tell application "System Events"
tell process "System Preferences"
tell window "Trackpad"
click checkbox 1 of group 1
click checkbox 12 of group 1
end tell
end tell
end tell
tell application "System Preferences"
quit
end tell
If you know the names, you can substitute them for the number:
click checkbox "Scroll" of group 1
click checkbox "Rotate" of group 1
click checkbox "Pinch Open & Close" of group 1
click checkbox "Swipe Left/Right to Switch Applications" of group 1
To turn checkboxes on or off, just put each click command inside an if/end if:
On:
if value of checkbox "Scroll" of group 1 is 0 then
click checkbox "Scroll" of group 1
end if
Off:
if value of checkbox 1 of group 1 is 1 then
click checkbox 1 of group 1
end if
Nice, i'll try it !
...but, stupid question, how do you command Applescript from max, exactly ?
hi guys.. to use the trackpad there is an option in System Preferences to disable it when using a mouse (it is folded inside the tab "Universal Access".
Now... since i'm wondering if i can use my trackpad (Macbook Late 2008 13") to control some features of Ableton Live..someone can help me? I do already too much things in my life so i haven't time to learn programming Max For Live.
I downloaded this Fingerpinger (it works on my macbook).. how can i get it work on Ableton Live? (I have Max For Live installed) Someone can tell me a pair of tips or upload a simple patch??
Fingerpinger is very complete software and in fact now i need only to recognize x,y coordinates (not too much complicated i think). With these coordinates i can, for example, control two virtual knobs of Ableton right?
I hope someone of you can guide me.. i searched a lot and a lot of people in the web needs such little tutorial. Plz help me :)
@Alexandre : have you finally succeeded in using several Magic Trackpads simultaneously without interferences between them ? I am very pleased with my own one, so I'd be happy if I could add a second one my setup.
Hi, I didn't try it. (I only tried the magic trackpad and the macbookpro trackpad at the same time have, and there seem to be some data conflicts between them)
i wondered about going to the barcelona apple store to try with a second magic trackpad, but this might not be a priority for me at the moment. I need to boost my slow instrument projet - which is also gonna use my cumtomised intuos2 screen* - and if it reach some interesting state, In the future, I might want to build a DIY real pressure sensitive screen ( http://www.nuigroup.com/forums/viewthread/1982/ : this link is an overview of multitouch techniques and shows that some can be "pressure sensitive" (DSI) and also, i discovered a projector doesn't seems to be necessary, the infrared camera might work through an lcd screen : http://nuigroup.com/forums/viewthread/9593/ then a DIY device could stay rather compact.)
So, although that one could project an image over some magic trackpads, or even imagine some kind of augmented reality on it thru a screen, it might not be the smarter way to get "pressure-like" sensing with a display (a display is necessary for me)
P.S : I'm also interested to know if some engineer could be able to hack this damned ipad to get some kind of "blob size" data from the fingers on the ipad like fingerpinger does for the magic trackpad.
* http://loftlechapelais.com/First-multipoints-pressure-sensitive-screen-in-the-world.png (well that's not the first, but i thought it was when i took this picture. intuos2 tablet working with 2 pens in max and with a 19'' screen over it)
Does anyone knows a good engineers forum on the net where i could ask this last "P.S" question above ?
I begun to build a DSI touchscreen with following the instructions from NUI group two years ago but during my first tests I realized that I needed a fast (hence a bit expensive) camera and probably a dedicated computer or at least a more powerful one than my MB Pro Core 2 Duo 2 x 2,33 GHz.
I might investigate this solution again later but currently I can do without the visual feedback provided by a touchscreen and the Magic Trackpad is infinitely more affordable.
An iPad with size detection would be nice for sure too.
> "I begun to build a DSI (...) I realized that I needed (...) a more powerful one than my MB Pro Core 2 Duo"
Interesting. NUI site seem to shows that many different softs exist to convert the IR cam data into TUIO, so i'm wondering maybe there are some faster softs (that would use OpenGL?) that the one you tested, or not ? Is this conversion that much CPU(orGPU) expensive ?
Actually there are not so many dedicated applications to track fingers and send data as TUIO messages, especially for the Mac platform. Is there anything serious outside CCV (http://ccv.nuigroup.com/), Touché (http://gkaindl.com/software/touche/) and reacTIVision (http://reactivision.sourceforge.net/) ?
As far as I remember, none among those was completely without serious lacks or problems at that time.
If you want to try more recent versions you'll have to compile the sources yourself, available binaries are old.
It took much processing power even if it was only with a low-resolution picture and 30 fps, but I can't tell whether the problem came from the camera (a PS Eye running with an OpenCC Macam driver). I suspect that a camera with a better driver would need less processing power but on the other hand 120 fps seems the minimal framerate you'd want, otherwise the tracking would be really not reactive enough for music.
Therefore without serious equipment, it's even not worth trying...
Interesting. Do you mean that for window, the tracking applications are more recent/efficient/ready ?
>> "but on the other hand 120 fps seems the minimal framerate you'd want, otherwise the tracking would be really not reactive enough for music."
i think that 80 fps could be enough in theory, but that the REAL problem is then the TOTAL LATENCY in a system, from the time you hit your finger on the surface, until the sound in your ears :
Delay until the next camera frame
+ Delay from cam/device to FW/USB out
+ Delay from the FW/USB in the computer to the processor
+ Delay to compute TUIO
+ Delay to compute audio from TUIO, sent to some max audio objects
(this one is negligible in most sound synthesis, but maybe not in my personal complex "interpolated sub-additive synthesis" computing complex interpolations for each of hundreds of harmonics at each audio vector)
+ Delay to wait until the next audio vector starts in max
+ STUPID SOFTWARE LATENCY IN THE MAC OS CORE AUDIO Driver (see bellow)
+ Eventually, USB/FW transfer until your sound card
+ time of flight of the sound from the speakers to your ears. (about 3 millisec per meters, not negligible in live performance)
...at the end of all of this, you get a 40-60 millisec latency, and this is why your prototype doesn't feel reactive enough for music..
One of the problems is that it's getting hard in 2010 to find a really low latency audio in/out system :
- 7 years ago, with the built-in sound in my Titanium G4 and using MacOS 10.3 Panther audio driver, I had 1.45 millisec of in/out latency with the "latency-test.maxpat". Meaning : About 0,7 millisec for out-latency (and I was using "32" or "16" for the vector size, i don't exactly remember)
- After I updated my Titanium with 10.4 Tiger, introducing this STUPID new core audio driver, the latency suddenly jumped to 15-25 millisec ! And it's like that for every internal sound on every Mac laptop on every updated Mac OS since then !
- I had a PCMCIA Echo Indigo IO in my Titanium, with which i could reach about 4 millisec, but then on more recent laptops, PCMCIA was changed to expresscard, until it now disappeared from 15'' MBPros.
- On my Apogee DUET it looks like i have about 6 millisec. of in/out latency, while using the shortest vector (32 for 44100 or 64 for 96000), meaning probably around 3 millisec. for out latency. But, even if i didn't had the time yet to test it a long time, my feeling is that short vector size on FW/USB audio cards can easily get unstable (clicks in the sound), while it was never the case in my old Titanium under Panther pre-core-audio OS.
So, knowing all of this, yes, i agree that a 200 or 300 fps camera, instead of 80fps, would participate on its side to reduce the global latency of the instrument chain, which, ideally should tend to zero, like in every acoustic instrument.
Note : Testing with [timer], I just noticed that fingerpinger gives only about 90 fps from the magic trackpad, while it gives 125 fps from the internal trackpad of the MBPro. Perhaps some Bluetooth speed limit ?
>> Actually there are not so many dedicated applications to track fingers and
>> send data as TUIO messages, especially for the Mac platform.
>> Is there anything serious outside CCV (http://ccv.nuigroup.com/),
>> Touché (http://gkaindl.com/software/touche/) and reacTIVision
>> (http://reactivision.sourceforge.net/) ?
there's some stuff by PQlabs as well (http://multi-touch-screen.com/product.html).
Did anyone test these "overlays"?
When will Max be supporting Win7 multi-touch natively?
Sorry for my noob question, but can someone please explain how you install the Fingerpinger code to open up multitouch data from the trackpads please. I could not find anything on the reference linnk for the source code.
I am aiming to use this to control Flash mutltiouch input,any thoughts on that?
Thanks much!
Noob.
The last version (the one that works also for the Magic Trackpad) is here :
http://www.anyma.ch/blogs/research/2010/08/10/fingerpinger-works-with-the-magic-trackpad/
--> http://anyma.ch/software/fingerpinger2010-08-10.zip
then just open fingerpinger.maxhelp
Thanks for the quick response Alexandre, however when I try to open fingerpinger.maxhelp OSX doesnt know which application to open it with. I assumed it was a help file (instructions for installation) so I opened it with TextEdit. Looking at it through TextEdit it seems it is more of a data file than ahelp for install? It looks like this...
{
"pathcher" : {
"fileversion" : 1,
...
Am I missing something?
Thank you.
Year you're missing something! You need an application called "Max/Msp", which is what this forum here is all about :
https://cycling74.com/products/maxmspjitter/
You can dl it and use it for 30 days to create/or edit "patchers".
"fingerpinger.maxhelp" is a "patcher".
You can also dl and use the MaxMsp "Runtime" anytime, it's free for everyone. (but you won't be able to edit "patches", just use them.)
Got it, thanks for the clarification. And I dont mean to be ignorant, I just am exhaustively searching for a solution to allow me to use a Mac Magic Trackpad to capture Raw Touch Data to use within the Flash application for input. I am assuming Max/Msp wont help me for this then? Really i am looking for something cool like fingerpinger to unlock the raw touch data of the trackpad for use in any app.
Thanks again for the help!
here is the c source used in fingerpinger : http://www.steike.com/code/multitouch/
and there is a java version : http://www.glulogic.com/workbench/2009/5/30/java-api-for-mac-trackpad-multitouch-example.html
but i don't know anything about flash..
Thanks for the info Alexandre. I have moved this topic to a new thread so I don't overwhelm this thread with flash questions.
https://cycling74.com/forums/using-fingerpinger-with-flash-for-multitouch-input
Perhaps someone else on the forums will have had more experience with flash and fingerpinger. Cheers!
Alexandre, in reply to your comment about latency:
To say that the latency of every acoustic instrument is zero assumes that you are listening to the sound with your ear to the instrument.
Recall that a typical speed of sound in a common air medium is about 340.3 meters per second. That's about 1 foot per millisecond.
This means that a digital instrument with an output latency of 10ms heard from a speaker 5 feet away has an approximately equal total latency to an acoustic instrument heard from 15 feet away (15ms).
Of course it's better to reduce output latency toward zero as much as we can, especially when we have other processing to do that adds to the latency before output, but relative to delays we're used to hearing in acoustic space, an extra 10ms delay is probably nothing to get too upset about.
> "zero assumes that you are listening to the sound with your ear to the instrument."
Ok, i should have wrote 1-3 ms delay instead of zero. (1-3 feet from the ear)
> "an extra 10ms delay is probably nothing to get too upset about."
I mostly agree but what i was pointing is the accumulation of few ms delays, at different points of the instrument chain. If you say : Oh, there we have the choice between two IR cameras, but let's choose the slower one because we don't mind about 10ms, And oh there we have the choice between two sound chips, but let's choose the slower one because this one is more convenient and we don't mind about 10ms, etc.,etc. ...at the end you get 40-60 ms more delay than if you choose the fastest possibility in each part of the chain, which is something to be upset about.
Is there a way to permanently assign colours to different make sure that blob 1 is always blue, blob 2 is always green, etc?
I know the left outlet of fingerpinger gives you the number of blobs currently on screen (just attach a number box, it will count from 0 to 9), but I'm not sure how to use that information to fix the colour.
Any ideas?
Thanks
If you mean colors that correspond to the order of the new fingers touching the trackpad, you just need some kind of assignment of each new "identifier" to the next color, and to free this assignment when that "identifier"/finger is released. You call use [coll] to do that.
I have just tried fingerpinger with two Magic Trackpads.
If you want to use them at different moments it's fine because you can choose from which trackpad to get data while the other trackpad is ignored. However with two instances of the object you get the data from both trackpads at the output of both instances even if you send a different trackpad number to each object.
Too bad ! :-((
Hi there,
You could write Michael, the developer of fingerpinger, about this ?
Or also, you could try to make a standalone max application with one fingerpinger object for one MagicTP, and the other one in max... and see if it works, maybe ?
Yes I have written a message.
I'll try the idea of a standalone application and will report here. Nice idea.
Good news!
The standalone trick is often great. It tend to solve similar problems : I had an unsolvable latency problem from the [wacom] object used at the same time than jitter (threads priority problems). JM Couturier told me to use the [wacom] object inside a standalone and to send the data to the main max patch using [udpsend] (and eventually [prepend] and [route] to drive the datas from a patch to the other), it was then suddenly totally fluid...
My request about a fingerpinger version compatible with several instances of the Magic Trackpad received a fast response as a new update of the external (2010-12-30) - http://www.anyma.ch/software/fingerpinger2010-12-30.zip). It gives better results than older "mono" external in standalones.
With standalones the reception from the two trackpads was fine but the UDP transmission to Max wasn't as fine finally (many data lost or delayed I guess but I haven't investigated further because I got the external's new version in between).
Great!
Did you also check the new "touch area" Fantastick messages support, that also work with MMF for Fantastick... kind of 'pressure' sensitive ipad, to what Mathieu says! (I didn't check yet i'm on holidays in berlin)
https://cycling74.com/forums/sharing-is-fantastick-max-multitouch-framework-for-fantastick-ipad-iphone (last msg from mathieu about version 1.1)
https://cycling74.com/forums/fantastick-holidays
about Fantastick + iDevice touch area :
well, it's not really pressure sensitive, ... it's contact area size, but it *may* be quite similar in many circumstances.
(just like with the Fingerpinger external, but there is no way to get finger orientation with a iDevice..)
anyway, it can turn your iPod/pad/phone into a very expressive interface, and AFAIK, Fantastick is the only app that gives access to such information...
MathieU
Great!
What is strange is that the guy making an app called "mugician" seam to write about "finger size area" in his video ( http://www.youtube.com/watch?v=psKLWzTZveg ) that "it is sanctioned for apps in the store, and so that his app is shipped disabled. Strange.
Hey, to follow up on something earlier in this thread, I just came up with a good way to temporarily disable clicking on the magic trackpad: suction cups! Works because the bottom is gloss plastic. Put em on for performance, take em off when you're actually using it for a trackpad. Stickiness won't wear out quickly like with rubber feet.
Are there any known issues with OS X Lion or Max 6? I am running OS X Lion (10.7.3) on my Macbook Pro, and when I put the mxo folder (which is strange in and of itself. Don't mxo's usually appear as a unified file?) in the usual max externals folder, and type the name into an object box, it says there is no such object. I have no idea how to fix this.
@John: thx I just fired up my old trackpad patches under lion and found out they didn't function anymore. Thanx for the update!!
Hello!
I can't understand exactly how to work fingerpinger. when i open the fingerpinger.maxhelp i get the patch but i can't figure out how to do anything?!! i can't do anything in the black box! what am I doing wrong!? :(
@John Cassidy , I also want to thank you for posting this updated version!
Works like a charm!
p.
Hey, I just figured out a hack to take away the mouse features of the magic trackpad (so it no longer moves the pointer, scrolls or does other multitouch actions), but fingerpinger can still see it and get finger data from it!
I'm really really excited by this - I've been trying to figure this out for, well, over 2 years!
Not sure if this works on other versions of the OS, but it works for me in 10.8.4:
open/System/Library/Extensions/AppleBluetoothMultitouch.kext/Contents/Info.plist
and definitely make a backup :)
find all instances of the keyHIDServiceSupport
and change each of their values from true/
to false/
.
On my machine on 10.8.4 there were 3 instances.
Then open terminal and dosudo touch /System/Library/Extensions/
and type your password. This forces the OS to recreate the kernel extension cache at the next startup, loading your newly modified kext.
Reboot.
Your magic trackpad will no longer be a mouse - just a controller for max!
To bring it back as a mouse, simply repeat the above procedure, changing false/
back to true/
in each of the keys you modified. TextWrangler's compare function is very handy for this if you keep a copy of the original and modified versions in another folder to use as templates.
Caveats: It still clicks with mechanical click of the rubber feet on the bottom. Maybe we can figure out how to fix that, but for now the rubber feet or suction cups on the bottom have already taken care of that for me.
I haven't tested this seriously yet, but seems entirely stable so far.
Interesting: BetterTouchTool (BTT) must access the data from the raw magic trackpad data similarly to fingerpinger, because it also still works with the magic trackpad when I apply this hack. This is actually good because then the Magic Trackpad can still be used for gestural keyboard shortcut triggering in the rest of the system if desired, and you can just set BTT to be disabled when Max is the active application :)
[post deleted - sorry for gumming up the forum, but it keeps thwarting my efforts to post and rejecting attachments and mangling code and i got duplicates somewhere in all the edits…]
Sorry - .plist code got mangled by the parser on this forum :/ , so I edited the post - posting again to let anyone who's reading this in their email know that the instructions for the hack are fixed now :) Attached are the original and modified versions of the file from my machine.
hey
i've been looking for something like this for some time now too, but it... scares ma a bit... now it might be that i prefer to use an external mouse, then check the "ignore integrated trackpad when a mouse or a trackpad is connected" box (in System preferences->Universal accessibility). Though it's true that it should not work for an external trackpad... anyway nice to know it's possible, but it seems a bit dangerous, i mean you can't use a mouse pointer if you have no mouse connected then ? ideally, i wish i found like a shell script that would check the aforementioned box for me, but it seems it's not possible (there's a shell command that accesses some of the user's configuration settings, but not that one).
Anyway, nice trick, thanks for sharing !
Hello! This seems like a really cool idea. Has anyone made a version for mountain lion yet? I can't get the .mxo file to open...
Cheers
@Vichug - I think its pretty safe. Been using if for 24 hours now :) This hack just removes mouse functionality from the bluetooth magic trackpad, NOT the built-in macbook trackpad. Built-in trackpads and USB mice are unaffected.
You could probably get the checkbox in the Universal Access prefpane you are talking about checked/unchecked via Applescript UI Scripting. But it would be a pain to figure out.
@Cocamon - you don't open .mxo files - they are max externals. Put them somewhere in you max searchpath (I put them in /Applications/Max 6.1/Cycling '74/3rd-party/) You then type the external's name into a max object and it makes one - like any other max object.
Oh, okay, so as i only use the built in trackpad and a mouse it's probably no use for me ;) and applescript, eh ? probably some other day....
I've tried this on 10.8.5 : enabled root account, change the plist file, type in the command (tried both in my usual account and root account), reboot
It doesn't work... help needed. Anyone on 10.8.5 tried this method and what's the result?
Thanks.
hmm… I'm running 10.8.5 now and its working fine, though I originally edited the file in 10.8.4 and then updated. Can you use textwrangler or diffmerge or something to compare it to the .plist file I posted here and see if there are any differences?
Are you applying it on a desktop mac? If so maybe it doesn't work when the computer doesn't have a built-in trackpad? I doubt it, but anything's possible.
And because there was confusion before: this hack works for the wireless magic trackpad - NOT for the built-in trackpad of MacBooks.
Thank you for the reply! @arvid tomayko
I am doing this to block the magic trackpad for my 13" retina macbook.
I did it again, not successful too. But I've blocked all the multitouch gestures from the magic trackpad, it still moves pointer and clicks still work.
I've compared the file I edited with yours, and the only 2 differences are 2 "12D49" and "12F29". See pic attachment below.
One question, when I enter the command "sudo touch /System/Library/Extensions/", is it suppose to show nothing? The cursor would just jump to the next column without any special info displayed.
Thanks.
i doubt that difference is important.
when you runt the terminal command it should jump to the next line and prompt you for a password. Its confusing for people new to unix terminals that when you then type your password, nothing shows up as you type - not even •••••. then hit return once you've entered your password. Then it will indeed jump to the next line with nothing displayed. If you didn't enter your password, this is probably why its not working for you - maybe you haven't actually touched your extensions folder and the machine hasn't rebuilt the kext cache. If you DID enter your password, I don't know what might be wrong.
FYI: any command that starts with "sudo" [stands for Super User DO, I assume - for a comprehensive explanation see http://xkcd.com/149/ ] is going to require your admin password because it is invoking the super user (unless you already entered it in that terminal session within the last 5 minutes).
PS: sorry if i misunderstood and you know all this already.
used OnyX to clean up kernel and extensions cache - not working
change from "12F29" to "12D49" - not working
Basically I can use your method to block all the multitouch gestures but not pointer moving and clicking. I wonder if anyone also experiencing this and is there any solution?
Also I've found out that in root user, there is no need to type in password.
Thank you very much for help!
weird that moving still happens. Clicking still works for me with the hack - so i have kept the suction cups on the bottom of mine so it doesn't click.
I successed on this hack!
One thing to notice is that this hack only works when you have fingerpinger enabled!
Thank you so much for the help @arvid tomayko!
I've written the method again in Chinese and shared it so more people can use it!
http://www.douban.com/note/309477967/ (with credit to you of course)
oh weird - i never noticed that! Mostly because I always have either fingerpinger or BetterTouchTool running all the time! (and both of those use a similar method of getting the trackpad data) Hahaha that's funny.
Just upgraded to Mavericks and applied my Magic Trackpad Not-A-Mouse hack again - seems to be working smoothly in 10.9.1.
Also - i've been using this hack for 4 months now on my live performance machine and it causes no stability or other problems that i'm aware of – besides, of course, the loss of multitouch gestures on the magic trackpad when not using it as a controller.
Hey everybody, this thread is great, thanks for contributing the knowledge. I'm trying to use a Magic Trackpad to control parameters in Ableton through Max for Live. In Ableton, a bunch of effects display X and Y-axis control (like grain delay) and being able to use fingerpinger to make a Max for Live object would be awesome. Does anyone know of any manifestations of this idea?
Also, is anyone here interested in making a fingerpinger for 64bit Max? I myself am trying but I am out of my depth. (Arvid Tomayko I'm looking at you here). Big thanks from California!
Hey Arvid,
I've been creating some projects using fingerpinger, and Max for Live, since my last post. I have a performance using this stuff in a couple nights, so I figured I'd do this hack to make sure I don't accidentally hit a button during my performance (it rarely happens so I just neglected the hack previously).
Here's the thing: after I followed your instructions (precisely), not only do my trackpads continue to move the mouse pointer and click--but fingerpinger no longer recognizes them!!! Yes, this is the EXACT OPPOSITE of what I wanted this hack to do. I'm running 10.8.4 and I followed your instructions step by step. Any advice?
-Jaren
Hi Jaren,
not sure what to say! I've never had that happen. I'm using the hack fine right now on 10.9.5.
BTW have not tried it on yosemite yet, but I'll get to that soon. I have a hunch it might require turning off kext signing.
I was just looking around myself to see if anyone had compiled fingerpinger in 64-bit yet. Can't find it. I guess i can give it a try - already have the sources downloaded and compiling in 32-bit because i was testing using different max threads (scheduler vs low priority) for the output of data. But i've never successfully ported anything from 32-bit to 64-bit so don't hold your breath.
Well - this is a bit more complicated - as I feared.
Here's a fingerpinger that sometimes works in 64-bit in Max 7.0.1. I just accepted the project changes that Xcode suggested when I opened the project in Xcode 6.1.1 for the first time, then set it to compile for both i386 and x86_64. However, in 64-bit Max this build sometimes says "fingerpinger: seen X devices" as it should, but no output ever comes out of the outlets. The only way to fix it seems to be to restart Max and hope it works the next time. It seems entirely random - I cant figure out a pattern. Maybe you can?
This build seems to work fine in 32-bit.
To compile a fully working 64-bit build may take some time because the code uses some old deprecated functions from the Max SDK. I don't have time to learn what to do about that right now.
ack! I don't really know what i'm doing, but i can't seem to compile anything that works consistently in 64-bit. I've sunk way too much time into this :(
When I try to modernize the max object code for SDK 6.1.4, I get an external that won't load in Max 7 - it just is orange with no inlets or outlets, but Max gives no error message so I have no idea what's wrong.
Hey - just checking in to mention that the hack to disable mouse properties of the Magic Trackpad still works in OS X 10.11.2 "El Capitan". You just need to mess about with the new System Integrity Protection settings in nvram. Here are updated instructions:
If on 10.10 Yosemite
=================
You Must disable kext signing. To disable the kext signing security setting do
sudo nvram boot-args=kext-dev-mode=1
(this is an NVRAM setting and must be reset if you reset your NVRAM or PRAM, etc)
If you don't do this the apple bluetooth multitouch kext will never be loaded and your trackpad will act like a generic mouse with no multitouch capabilities.
If on OS X 10.11
==========
You must turn off System Integrity Protection, also called "rootless," using csrutil in terminal when booted from the restore partition. To do the hack, the filesystem (fs) and kernel extension signing (kext) parts of SIP must be disabled so you can modify the system file in question. After that's done, you can re-enable SIP for the filesystem and just disable it for kext signing (otherwise it will not load the modified kext). This seems safer than totally disabling SIP, which will also work. No need to disable kext signing separately in nvram as on Yosemite.
Disable SIP for filesystem + kext:
================
Restart the mac. while booting hold down Opt or Command-R to boot into recovery mode.
Once booted, choose "Utilities > Terminal" in the menu bar.
Enter "csrutil enable --without kext --without fs" in the terminal window and hit the return key.
Enter "reboot" and hit the return key.
Note: To reenable System Integrity Protection follow the steps above, except just enter "csrutil enable"
Do The Hack
=========
open
/System/Library/Extensions/AppleBluetoothMultitouch.kext/Contents/Info.plist
definitely make a backup :)
link: file:///System/Library/Extensions/AppleBluetoothMultitouch.kext/Contents/Info.plist
find all instances of
HIDServiceSupport
and change them to
HIDServiceSupport
There should be 3 instances.
You should edit the file in place – don't copy in a file from another place if it's from a different build of the MacOS – you'll get an error and the kext won't load, probably due to permissions.
In 10.11+: in addition to these changes, you need to do the following to keep it from scrolling (similar things might be helpful in other OS versions too - ?):
After the 3rd HIDServiceSupport (in DefaultMultitouchProperties ) set these as false
TrackpadFourFingerGesturesTrackpadMomentumScrollTrackpadSecondaryClickCorners
set all boolean values in IOHIDPointingProperties to false, eg:
IOHIDPointingPropertiesTrackpadFourFingerGesturesTrackpadHorizScrollTrackpadRightClickTrackpadScrollTrackpadSecondaryClickCorners
Then open terminal and do
sudo touch /System/Library/Extensions/
and type your password.
This forces the OS to recreate the kernel extension cache at startup I think.
In 10.11+:
=======
Now turn System Integrity Protection back on except for kext signing
Boot into recovery mode. Open terminal and run
"csrutil enable --without kext" then "reboot"
In 10.10 and earlier:
===============
Just reboot.
Your magic trackpad will no longer be a mouse - just a controller for max!
To bring it back as a mouse, simply repeat the above procedure, changing back to in each of the keys you modified. TextWrangler's compare function is very handy for this if you keep a copy of the original and modified versions in another folder to use as templates.
I have been using this hack in my performance rig a for a few years now. It has been entirely stable for me.
Caveats: It still clicks with mechanical click of the rubber feet on the bottom. Maybe we can figure out how to fix that, but for now you can just put something on the bottom to block the clicking action. Rubber feet, suction cups or custom cut mouse-pad material with velcro for easy removal (my current solution) work great.
Note: The cursor will still move when you put your fingers on the magic trackpad unless the raw data is being accessed by something like fingerpinger or BetterTouchTool. When it is, the cursor will no longer move. Cool, huh?
Interesting: BetterTouchTool (BTT) must access the data from the raw magic trackpad data similarly to fingerpinger, because it also still works with the magic trackpad when you apply this hack. This is actually really cool because then the Magic Trackpad can still be used for gestural keyboard shortcut triggering in the rest of the system if desired, and you can just set BTT to be disabled when Max is the active application :-)
Hey, at the risk of just talking to myself here, I wanted to mention that anyma released a 64-bit version of fingerpinger recently.
Also, one of the 32/64-bit fingerpinger versions I compiled in 2014 seems now, bizarrely, to work reliably in Max 7.1 64-bit on OS X 10.11.2. I'm attaching it here in case useful, even though the original dev beat me to it, sort of.
This was the last really important thing holding me in 32-bit Max, so its pretty cool that it's working now.
Hey Arvid,
thanx for all that, but being dependent of externals and stuff like that drove me crazy, so I skipped the fingerpinger / magic trackpad stuff. This will be available in a short while - more expensive but they promised to make it OSC compatible --- so all 3D problems will hopefully be solved and all connection/magic trackpad/externals problems, too.
Cheers
P
this is so funny, I saw Svetlana Maraš using the sensel morph and I thought huh i can use the macbook trackpad for the same, only to be forwarded to the same device in a maxmsp forum thread...