[sharing is Fantastick] Max Multitouch Framework for Fantastick (iPad, iPhone..)
[MMF-Fantastick] : Max Multitouch Framework for iPad, iPhone & iPod-touch + Fantastick
if you have an iPad, an iPhone or an iPod-touch, you’ll probably enjoy it ;-)
I’m happy to share this "framework" for Max & Fantastick.
(Fantastick is a free app for iPad, iPhone & iPod-touch : http://pinktwins.com/fantastick/ )
MMF-Fantastick is an extension of MMF (Max Multitouch Framework) : a set of abstractions to control max user interface directly within a multitouch screen.
MMF-Fantastick will draw on your iThing (thanks to Fantastick) a representation of all named UI objects that are visible in the presentation mode of your Max patch, and let you control them directly from the multitouch screen of your device.
It’s really easy to configure, fast, bi-directionnal.. and free !
have a look at this video :
- first, install and configure Fantastick on your iPad/Phone/Pod (http://pinktwins.com/fantastick/ )
(test it with the maxhelp patch)
- download & install MMF-Fantastick from http://code.google.com/p/mmf/downloads/list
(copy it anywhere in your max search path)
- open MMF-Fantastick_template.maxpat
- multi-touch your iThing
(and if you test it on an iphone and love it, run out to buy an iPad !)
–> Fantastick works MUCH better with an ad-hoc WIFI network, without WEP encryption
requires Max 5.1.4 ;
you’ll probably need to download & install manually lattest version of pattr object from http://cycling74.com/downloads/incremental/
Thank you so much.
oh yes thank you so so much
But… it always crashes max. As soon as I touch something on the ipad – crash. All the gui is there but not controllable.
Awesome! Thank you!
sorry, it seems that MMF-Fantastick 1.00 crashes current Max version…
(crash when sending a "bindto" message without argument to a pattr object ..)
it’s now fixed in lattest version : MMF-Fantastick_1.01
(with this new version, you may have some harmless error messages in your max window :
"pattr: (u143001526): failed to bind to target (::interface1::parent::MsliderH)
…don’t worry !)
Yeah, now it works – no more crashing! And it’s super fast!
Do you know if it’s possible to turn on anti-aliasing for the OpenGL elements on the iPad? There is no reference to it in the Fantastick documentation, but maybe it can be done anyway?
this is literally Fantastic ! pun intended
kudos – great idea
I am all for helping out on the fantastick openGL interpretations of the max objects
e.g. i have ideas to sort the multislider in ‘bar’ style
plus it’d be good to reduce the z co-ord differentials (layering) so that there is no parallax error
maybe i’ve missed something but i would like to see landscape support
but this is such a powerful way to do the tricky stuff that made Fantastick so powerful
this route seems to be so responsive
wonder what jusu makes of this ? !
big thanks to mathieu for getting this out
Awesomek! Thumbs up, Mathieu!
Wow, that’s exactly what i needed right now…
This is the max external of the year. Or maybe the best external ever realized.
Note: In the READ_ME file, you write "bi-directionnal" ? : But changing ipad orientation does not change orientation of the objects… ?
Few features that would be welcome to me :
- Could we see the knob position of the [gain~] object on the ipad ?
- respect of the "ignore click" attribute : very useful when you use transparent multisliders, to edit only the one in front.
- multisliders style : "% Ghost Bar on Thin line" or "plain-bar" would nice, as the "thin-line" is hard to see under my finger on the ithing…
Notes about the wifi network:
"works much better with an ad-hoc WIFI network" : A fundamental advice.
In my case, fantastick is quite sensible to the quality of the wifi network : The drawing on the ipad is just dramatically slow when using the router network. (the fault on my spanish little white wifi box?) When creating a computer network, everything is fine.
And to notice again, when a lot of jitter/Usb-data-like-wacom-tablet are going on, the [mxj net.udp.recv] object you use, seems SO slow to me (low-priority problems) : In that case, use aka.datagram instead ( http://www.pinktwins.com/fantastick/AlternativeFSReceive.zip )
To jusu :
I find Fantastick a bit slower to draw stuff than Touchosc does for example, plus when i see all fast iapps that exist… Couldn’t you improve the graphics speed a little bit ? If this is a wifi issue, perhaps packaged-messages of differents "models", seeded thru wifi at once, to improve efficiency, would help, or not ?
Thanks again to you both, jusu and mathieu!
Is this actually going to work also if max is running on a windows machine?
hm i guess yes right?
And, all gui objects are drawn on the ipad? live.Step, matrixctrl, waveform and all of those things not seen in the video?
thant would be too beautiful…
Thanks for all theses nice comments :-)
> Note: In the READ_ME file, you write "bi-directionnal" ? : But changing ipad orientation does not change orientation of the objects… ?
bi directionnal means that you can control a slider in your max patch, Fantastick will reflect the changes.
orientation of the device will probably come.. in a future version :-)
> – Could we see the knob position of the [gain~] object on the ipad ?
sure ! …in next version !
(some objects are still missing, but are on the to do list : matrixctrl, Tabs, function, …)
> – respect of the "ignore click" attribute : very useful when you use transparent multisliders, to edit only the one in front.
ho yes, good idea :-)
> – multisliders style : "% Ghost Bar on Thin line" or "plain-bar" would nice, as the "thin-line" is hard to see under my finger on the ithing…
yep, still lot of work on this one as well !
Just an idea : When overlapping 10 pictsliders, it would be funny if the different pictsliders would react only to the nearest finger!! (simple pythagore formula for distance = sqr(x^2+y^2) )
Note: Above, i wrote: "But changing ipad orientation does not change orientation of the objects"… In fact, it shouldn’t, because this would be annoying, an orientation toggle in your patch would be perfect.
This is looking excellent, thank you. Time to sell my lemur so I can afford an iPad…
Also maybe: Finger sized circle knobs for pictsliders, like on the lemur?…
Brilliant thanks, colour swatch UI would be nice, it comes up but without the coloured background.
Could also be nice in futures versions: [preset]
Just amazing ! Thanks a lot
Newbie question: all examples are working, but when I try to create own stuff with MMF I need the "mmf.FS.interface
I am using V 5.1.5.
Any hints for me?
Remember this : ‘Externals’ objects (that are not in the commercial distribution), are only found by max in two situations:
- if they are in the same folder than the object that you are loading. For example, when you open "MMF-Fantastick_iPad_template.maxpat", max will find ‘mmf-fs.interface’ because it’s in the same folder (‘MMF-Fantastick’)
- if they are in your "max search path" and that you restarted max. ( look in the help section for "max search path" )
So in ‘File Preferences…", you can either create a ‘userpath’ with the ‘MMF-Fantastick’ folder, or a ‘userpath’ with a folder called ‘my-max-externals’ where you will put this ‘MMF-Fantastick’ folder.
Alexandre, thank you very much. That was the initial trigger for me.
mh… strange.. http://code.google.com/p/mmf/downloads/list works fine here…
here is another link to the same file :
Thank you, that worked fine. Can’t wait to dig into it.
Hi, I have added fpic support in the Max Multitouch Framework.
- named fpic objects in the interface patches, with pictures loaded from disk;
(restrictions Fantastick imposes on your pictures apply here as well: they need to have dimensions that are a power of 2, so 16,32,64,128 px etc)
- a webserver running on your computer, with the images you have used in the fpic objects placed in the web directory;
(note that the images you put in fpic don’t actually need to come directly from the webserver folder, it’s just that images with the same filename need to be present in the web folder).
- a [textedit] object in your main patch (on the same level as the mmf core object) named mmf_imgpath. Enter the web path to your image folder there, including trailing slash. Examples of paths: http://192.168.1.10/images/ , or http://your-bonjour-name.local/images/
(I haven’t tested this with windows yet, on mac it works perfectly, very fast too)
Thanks EMV for this brilliant contribution :-)
with your permission, I’ll add it in the next MMF-Fantastick version.
Yes, of course add it in the next version!
hey has anybody got any kind of image to display on the iphone using MMF-fantastick? i’m really mystified by the need for images with measurements of a power of two. it makes creating backgrounds for sliders difficult on the iphone which is 240pix X 480px. the closest measurement in landscape mode would either exceed the screen size or be just over half of the width.
i want to display a waveform below an rslider object but it looks to be really difficult. i got a patcher from the pinktwins website which draws an opengl waveform from a jit.buffer but i can’t figure how to integrate it with MMF-fantastick. ideally i suppose i’d use two layers – one for the waveform render in OpenGL and the other MMF-fantastick layer on top.
any help appreciated – hope i’m not hijacking the thread…
Images can be done using the method I described above, or directly with the OpenGL implementation of Fantastick.
The power of two stuff works like this:
Both of the dimensions have to be 2^something, but they don’t have to be equal and they can extend beyond the borders of the screen. So 32×16, 128×128, 512×16 etc are all valid.
At some point I’ll add the possibility to define the depth (z-coordinate) of images by putting a number into the ‘annotation’ field of the fpic object, but right now every picture is at the same depth as normal objects (z=0), and panels are at z=-1.
I’ve just updated MMF-Fantastick -> version 1.1
- waveform~, Tab & Nodes support added
- "touch area" Fantastick messages support (.. now your iDevice is ‘pressure’ sensitive !)
- fpic support (webserver must be configured on local host)
- scrolling interface option added
- new and simplified abstractions & folders structure
(now everything is in mmf-fs.core – including the network connection patch)
- preferences (IP ports, UI preferences, ..) are stored in a mmf-fs.preferences.txt file
- new example & template interfaces patches.
- interface orientation option added
(requires Max 5.1.7 + Fantastick 2.3)
download latest version : http://code.google.com/p/mmf/downloads/list
Wow! Great stuff, Mathieu!
pressure’ sensitive ?!?!! wwow…
I can’t check this now (i’m in Berlin for tango holidays), but will soon! Thanks Mathieu!
This is so awesome looking it is really tempting me to get an iPad…
I just bought an ipad, mostly for the incredible power your software gives it.
Thank you so much for sharing this wonderful innovation.
However, I’ve run into a problem.
When I run this patch, only one of the node centers gets updated on the ipad. The other circle just stays where it is, no matter how I slide my finger. The corresponding node on the screen get updated just fine when I slide my finger on the ipad node, but the ipad doesn’t update.
Am I doing something wrong? Is this a bug, or the way it’s supposed to work?
Thanks for all your help!
Here’s the patch:
----------begin_max5_patcher---------- 1019.3ocyX0rbZCCD9r4oviNSxHKiwPO09bjoCivVPTqsjGaAMsc56d0e1VB KH.IoSODQP6pU698s6JI98rHvV9KjNP7mheJNJ52yhhzSolHx98HPM9khJbm VM.i7C91uAlaDcD2xv0Dsj55cOrq6wBdKoWrf7h3bx1wYhN5uzqc8iP6rMXQ wyT19MsjBgwuRRPRwwnT8GYqTiI4OBi+pcMrC0TVEQncvdCQK0arzWe.svcO G72uzRwUfQavOHFLhZx+LalZX9UBLaOHDbF3BwQ9RkquVG.HX+X3vHIPXjD1 Y6U0Lk3mMDy9A1hY6Awe8NhkySxcUzRR6D9sIlwKkIR2L2ZvjjTMnrH8xba. PY4MSstNiLRLffEEjlgVQNRZ6nRpbbGi.itLBpyCeHegw0SxVaBA3pQ+VBv6 q3EemT5rmQfRxta1P7FBabQ5zFuAeMorlVRGgIvBaH3t43CUhMAIGew6vEjy t1fnbDXeKsjyT9f2JUS2uaOEqoYuvSKmgaBrTAmWsE2dj1Q2VQ7nCY5KlQqw BhfZ7FDbXcz5lVJS3YKBCKswycEs7pJOSYjbLfjRxQZA4GzRwyZaMhUdcMcR e7Jr7l+zBLmpkI0XLOIrQzC9HZ.3z4vNTsaQ0hEJXNcoNEIAN9g2peooxRyJ KuL02zApUWa5CasmsxU8g2J+omYQ4dBCUNOITNUlaOvTfu0bprScjLoWHXt8 OS+vn9dhl+Y9GBM91XQzcPho4uFIt51ovkn2WJD8+EE5dT2DN7PR9JHLcMLy Uigi8vGDbIHKZckFt+5Y3CzZCGXnY4I.Y9G.dYH2AVWbpKDtM8TLewUg4Fb2 QUIYKT2laDgcfX4dLlRNWmCoFkCItFQUVL1+QqQ9ndCpMvxe77sPFUAYZMKq hX7dRrRq3OqHeKJDCi+bG9HoV1OHF9lSFRWZpRSN85PWc1P58lMjbwrAO+PE vkaj6lz+2nfGp7JvliECkQXAO2vEZ5EIuQfZHCB8SNZvsRuVPZ2XNi18.csB EUTYCGGKliVKsnZP9nA4n76ALIkQEJlZ3l9+KxxN8oPxKnPZU2yJdxgH2UNC xd.A50yYPmow7GUNy6HtpCBvUgHqLG0k0Odd7.FFORtyH19rKGUJ300DyERA f.nw3sgqnrycwRcjpjGFl53GZ6Oyt28i8CZYZlfxFNe9oAZ+D8dlVV5eUbMO PKa3xrVq6ckz5s50nqzqS+uxqSuArN4185TXl9dAY5qDlAy0039eCpS5SkY8 Y1uELVsSJC5YWSS7gmEG5QgePOj7BhdkmvJex8Vbk8k8Cl.LaDCr+NHZJvuX y7yhbJwa+wQlll5UccF1domNSX5v4lCd3r+L6uvOWl7G -----------end_max5_patcher-----------
damned, you’re right, 2 Nodes in the same MMF-interface patch just do not work actually…
I’ll fix it asap !
I’ll probably need to add an abstraction for the Nodes objects, because it doesn’t exposes its Nodes positions to the main pattrstorage, so the way it works actually is a bit messy, and won’t be adaptable to multiple objects in one interface.
thanks for reporting it !
Thanks for responding so quickly! I can’t wait for the update.
Well, I’ve really done it this time. . .
Now I can’t get any connection at all. I’ve followed the connection instructions (typing in the numbers from the ‘What is my IP address’ subpatcher into the Fantastick settings on my ipad), both with an ad-hoc connection and using my household wifi.
None of the example patches will show up on the ipad when I send them a bang. Instead, I get ‘UdpSender: IOException: java.io.IOException: Host is down’ about 30 time in the Max window.
I got the example patches to work when I first got the ipad, but no longer. Does any network wizard have any suggestions? I’m at a total loss.
Hi! I’ve got a little problem.. well.. at my school there is no wifi connection and for some reason i also can’t create an ad-hoc network.. Is there any other way to connect fantastick on my ipad to MAX?
Just buy a wif router/hotspot. Can’t imagine they’re that expensive…
Really liking Fantastick to use an iPad as a control interface. I’m using it as the basis of my final year project, and its got some really powerful capabilities.
I’m having some trouble with the nodes object though – The edges of nodes can spill over the edges of the nodes object on the iPad display (rather than being clipped at the boundaries as in Max), which gets really messy with larger node sizes.
I can’t get candy caning or the nodes’ indices to display on the iPad either, does anyone know if those functions are supported?
is there anyway this can work with an android tablet?
Forums > MaxMSP