I’ve been intrigued recently by a newer sound programming language, ChucK. I originally heard about it via an NPR piece on the Princeton Laptop Orchestra (PLOrk), which is just a cool idea in and of itself.
ChucK is, thankfully, being developed for all 3 major platforms, and there are versions of its smaller IDE, MiniAudicle, available for Linux, OS X, and Windows. Its development community is quite active, and the documentation is substantial without being overly-technical. ChucK’s concept and approach is not entirely dissimilar from that of SuperCollider. Though it is still in heavy, early development, and certain language features are broken or as-yet-unimplemented, I see a great deal of promise here. The code is released under the GPL, boding well for its ongoing development and expansion. There is a GUI control (sliders and such) package, but this only works on OS X.
I found that MiniAudicle was extremely easy to use and understand, with a crisp, simple interface. Language syntax is, to my eyes, straightforward and clear. I was modifying sample code within minutes, toying around for some time before even beginning to read its excellent documentation.
I tried to compile MiniAudicle on Ubuntu Intrepid, but this yielded only a slew of cryptic error messages. On, the other hand, there’s a working command-line-only ChucK package compiled for Jack in the repositories, so it’s no great loss.
I’ve been working on a ChucK class to generate chord progressions based on a flowchart. One attractive thing about the platform is that its midi out facilities could let me feed this kind of robo-improvisation to a VST host or Reason instrument. Or, I could use its synthesis engine and feed this to effects, via Jack.
When I reach a point at which I think the code might be of use for others, I’ll likely release this under the Creative Commons. Stay tuned.