Newbie Question re: Runtime
Greetings. I am brand new to MAX/MSP and very intrigued.
I am looking to use MAX as kind of a stand-alone media kiosk that will control a variety of interactive sensors from something like iCubeX within a space.
My question is this… can you lock out the MAX users interface so users can not disrupt the runtime?
what do you mean by lock out?
you can include whatever objects for UI you wish to in the presentation view of a patch, which will stop a user from doing certain things. there will always be the option to close the window (program) on your operating system though i think.
Wow, Max is perfect for the iCubeX. Looking forward to seeing what you come up with. Especially interesting are the wireless capabilities, they look solid and don’t break the bank. And getting the data in will be a snap because it’s MIDI—so probably standard [ctlin] or [notein] objects will access it, depending on how they format the data.
For extra "lock-out" control (if I understand you correctly) you can also run your application in fullscreen, so there’s no menus or a Close button. (I think the Close button is disabled in standalone apps, you need to Ctrl-Q to exit.) So users can still exit the program with that command, but maybe you wouldn’t even have a keyboard anyway. And you can have the app run on startup too via the OS.
While you’re developing you’ll want a way to get back out of fullscreen so you’re not stuck—like ESC—look at [key] helpfile.
Look to [thispatcher] help file and read the parts on window messages. Lots to tinker with there. Note that if you’re in fullscreen, subpatches will NOT be visible unless they are floating windows (again, [thispatcher] help file) and you can only see one at a time. If you run the app maximized, but not technically "fullscreen", you can see more than one. And you can get rid of the patch title bar too if you want.
If you like to tinker, you will love this program…
I do wish to "lock-out" the application from being closed by the end user or for them to have any ability to mess with it. I like the no keyboard option… but would still need some kind of input device, so the mouse would have to do.
I saw your post [seejayjames] regarding MAX on another site… great information and hope for newbie developers like me. :-) I was looking into interface design and found the site with a 122 meg video for reel space.
The iCubeX stuff is really cool, especially the wireless gear, but the challenge is my project needs multiple devices that can run all day… and battery life seems to be a bottle neck.
I have no clue (yet) as to how/why being midi will help my project… or add to the value of what iteration 2-3-4 and others can do with the tech. But yes, very exciting tinker abilities.
One other question… is there a way to get the device data out of MAX – like "export to csv" or something?
Cool—yep the "reel space" app is *almost* ready for distribution! it’s been a challenge at the end to get things working for software protection/licensing etc. there’s a shorter and more recent video of it here:
I guess this is what can happen when a keyboardist/music composition major discovers Max and tinkers with it endlessly… so fun and it really opens up new ways of thinking about music. though I haven’t played a real piano in ages… :)
Anyway, back to the original topic, the MIDI bit is helpful simply because it’s a standard and the formatting is all taken care of. This makes things easier than (say) getting raw signals from an Arduino etc. As you’ll see, all you need are the values, then what you do with them is utterly endless and customizable. The fact that it’s MIDI, in this case, has nothing to do with music, unless you want it to!
For battery life, if you have a bit of electronics skills, you might be able to use a lithium battery (maybe from an old cell phone?) instead of a 9V or whatever they use. These would be rechargeable and last a lot longer. Just don’t fry anything, hehe.
Not sure what you mean about the "getting data out of Max", like the .csv. There’s no direct "export to .csv", but you can grab any values from anywhere in your patch and put them into a [text] object. Then separate the values with a comma or tab, and write the file when you’re done. File I/O of all kinds is an absolute breeze in Max… as are many many things…. best program ever! :)