Max as an Algorithmic Composition Tool

You know, since making the switch to Max/MSP from Pure Data, I’ve been quite pleased with what Max has to offer. One area that I think is generally overlooked by Max users is the ability to use Max as an algorithmic composition language for acoustic composition.

I’ve stumbled upon these abilities after playing around with a few different languages/environments that function as compositional tools. PWGL and Common Music are both nice, I’ve even taken a course in Common Music, but they’re both Lisp-based (which for me makes them awkward – C is my first language, and I still think in terms of nested loops and function calls).

PD doesn’t really have any built-in tools for anything, which is good and bad – it forces you to really think through a problem, thus ending up with a totally unique and personal solution, but it also takes forever to accomplish complex tasks.

I tried using straight C/C++ to build my own tools, but that was ridiculous. I am not interested in spending more time than I have to for coding.

Max has the [zl] object, which provides a bunch of list-processing functions, many similar to some of the methods found in SuperCollider. There are sorting and comparing functions, along with iteration and scrambling capabilities. I mean, try using PD to make a random tone row generator which assembles a random list containing no repeated elements. In Max, it’s literally like two objects. Simple.

Now, not to sound like a Cycling ’74 ad, because proprietary software still kinda sucks and makes a lot of things more difficult for us, and because the help browsing in Max 5 is broken in Snow Leopard, but I think this is a fruitful area to explore.

You might want to check this out, too: Karlheinz Essl’s: RTC-lib

  1. No comments yet.

  1. No trackbacks yet.