Friday, August 31, 2007

Tutorial: MaxMSP



On Thursday and Friday, Innovation North organised a tutorial on Max/MSP, the graphical tool for designing and prototyping music interaction software. Many of our students use this in their music projects, and this tool is a standard staple in many electronic music systems and installations. I was curious if this software could help me in my work, or if I would continue authoring these applications in C/C++/C#.

Overall, this software is quite powerful, and is certainly a good tool for prototyping. But it cannot deny its roots from a time long ago, when graphical interaction was still a novelty. Its user interface is not very smooth: one has to use both mouse and keyboard, a sole reliance on either input device is not possible. For example, there is no mouse button for "CTRL-E", which switches between edit mode and performance mode. On the other hand, there are no keyboard shortcuts for the many button functions for creating the code.

Also, the interaction paradigms seem to be driven by Apple MACs: there is no drag-and-drop from controls that pop up on a sidebar; instead one has to click on the control, then release, then click on the edit surface to put the control there.

The line drawing seems not very "pretty": no anti-aliasing is done, diagonal lines are jagged without smoothing. When using the mode where lines are only made of horizontal or vertical segments, the re-arranging can look quite messy, as there is a not very smart automatic re-arranging of the node points.

These are all very minor things, but they are quite obvious when starting with this software. I am sure that this tool is quite useful, and one can get used to the interface hick-ups. Behind the scenes, it is quite a powerful application that allows rapid and sophisticated prototyping. But some of the driver interfaces did seem to have some problems too: addressing and polling a simple gamepad made the application crash and disappear without a trace, several times. Not sure, maybe this was due to the networked installation... but there must be a more graceful way of exception handling.

I will give it a try in the future, but I will not yet abandon writing audio and MIDI software in C# and DirectX.

No comments: