Interface for max/msp
I am building a prototype for a compositional game in max/msp but I need some tips for creating the visual interface. All the player interaction will be taking place in the interface (controlled by clicking and dragging with a mouse) and there will be little quirky characters, which will essentially be the sound objects. I am working with an animator/designer who will be creating the visual aspects of the game. It doesn’t need to be rich at this point, but there will need to be animated objects.
I am wondering can the interface be created in flash, and interactions take place in flash that then message max/msp to trigger the appropriate arguments?
Any suggestions would be great, a friend of mine has given me an e-mail address for someone who is into java scripting also
I am confident with creating the audio events in max/msp, but not at all confident with the interface yet, apart from knowing what I want to see
So is there a decent program that will work well with max, or would it be easier again to keep it internal to max (bear in mind the animated characters that will be doing things)
You could look at the [pictslider] object. This slider moves horizontally and vertically. You can supply a background image or make it transparent over one of your backgrounds. And you can use your own pictures for the sliders knob. By default there can be different pictures for active/inactive and clicked/not clicked. You can load different pictures programmatically for both, the background and the knob, by supplying the file paths. I do not know how fast that is and if there is a sort of caching in Max. But this object could give you a chance for an animation-like behavior.
The [matrixctl] object has similar features and might also be worth a look.
[pictctrl] is a versatile object, look at its help window.
And I think you can move objects from within Max either via scripting but can’t find this in the new manual (I am new to Max).
Just to show that images can interactively fake a kind of animation (apart from the funny cat in the [pictctrl] help), here is an URL to a movie I made from a single object of a Max interface I am working on. The movie is too dark and it is the first prototype anyway:
It represents a frequency selector for an LFO and is actually a [pictctrl] over a [fpic] background. I rendered an animation in a 3D application as a pict sequence, cropped the images and used them for a [pictctrl] in dial mode. Max pulls the intermediate states to the nearest fixed value, which gives this "mechanical" appearence.
Hope that helps and good luck for your game animation!
I remember there are a number of objects that connect Flash (or at least are activated by or activate things happening in Flash) to Max…
I’m not interested in that field, but I remember them from somewhere. *goes to look*
There we go. Under utilities->MaxMSPserver.
Is that what you are looking for? I’m a musician so I haven’t worked with flash at all.
also with flash player 9 / as3 you arent limited to the old ‘xmlSocket’ which is string based but can also use a ‘normal’ byte based socket.
so you can implement or use a binary protocol. Although unfortunately there isnt a UDP version, just HTTP.
That being said you can send pretty much what you like via the xml socket, just with the caveat that the player treats a zero-byte as an end of message marker.
I’m also using the flashserver object. I found that it works ok with my Windows XP Desktop but gets very slow under Leopard with an Intel Macbook Pro. Not good for serious work. I also tried flosc and same slowness happened. I’m using an XMLSocket to get data into flash. Maybe there are more reliable and faster ways to communicate between the programs. This is what Adobe says here:
" Flex offers developers a number of options for data transfer between the Flex client application and the server, including AMF3, XML, SOAP, and straight HTTP requests. Ward demonstrates the use of these technologies and performance benchmarks in his Census application.
BlazeDS should be considered for Greenfield projects using Java on the backend. BlazeDS is Adobe’s recently open sourced Data Services product that uses the AMF3 protocol. AMF is a binary transfer protocol that is easy to integrate with Java, and offers significant performance benefits over XML. There are open source implementations of AMF for every major backend technology.
If BlazeDS is not an option, Hessian could be an option. Hessian offers ActionScript/Flex support for their binary web services protocol."
If someone has experience doing this please share.