Tag MaxMSP

Code Control

destiny-440x197

We’ve been given a Catalyst Award to produce an installation piece for the Max-themed Code Control event at Phoenix in Leicester later this month. I’m keeping the details under wraps until the event launch on Friday the 22nd, but the screen-grab above shows some simple OpenGL graphics with which we’re testing the codebase. We’ll post more teasers over the next week or two.

MaxMSP at Music Hackspace

cropped-Hackspace_headphone-440x88

In the Short Notice Department: I’m teaching a Max workshop tomorrow afternoon (Sunday 17th) at London Music Hackspace. Details here.

12/12/12: Senses Places

senses_places_web-440x258

Today’s iconic date marks performances of Senses Places in Second Life. We were responsible for transforming the feed from from the (physical) dancers’ wearable sensors into an interactive granular soundtrack, with network code written in Clojure driving a sound engine in MaxMSP.

Second Life location: Koru.

ClojureScript for Max

cljs-square-440x440

I’ve been writing graphics widgets in Javascript for MaxMSP using JSUI for a few years (things like the TextBrick and the Nixie tube display, as well as the Forbidden Planet-inspired Krell Mixer Panel which I really must release some time), and I’ve also been working in Clojure for a while, so the arrival of ClojureScript, targetting Javascript as its back end, prompted an investigation of using Clojure to develop user interface panels and scripting extensions for Max without writing any Javascript directly.

Summary: despite a few niggles it all hangs together rather nicely, but be wary of thinking in Javascript terms when coding in ClojureScript, especially when porting example code, otherwise it can all go a bit pear-shaped.

Loadbang Reloaded

jython170

We’ve been putting some effort in recently to shift our major JVM-hosted MaxMSP projects to GitHub. Most of them started out hosted privately in CVS and built using Eclipse, and then migrated to hosting in Mercurial, with a different directory structure and a fair degree of pain in getting the various Ant scripts to work again. Moving everything to GitHub made sense, but that required another rearrangement of source directories and build paths, so it was obviously time to bite the bullet and use Maven to build everything instead. This decision has lowered the maintenance effort considerably.

MaxMSP Showing and Telling

m4u_170

We’re workshopping, and gigging, at the M4_u (Max/MSP for Users) Convention, 13th to 14th of January, Phoenix Square, Leicester. The workshop is pretty much going to be a repeat of that given at the Cycling ’74 Expo – building an algorithmic step sequencer and abstract display system using Clojure. The gig will be monome-based, probably with some pulse sequencer action.

Coding for the Cathedral: Dreamhub at Vor Frue Kirke

We recently did a bit of coding for Dreamhub: the Lysets Lyd chill-out gig at Vor Frue Kirke required twelve Percussa AudioCubes connected into an Ableton Live set, capable of sending MIDI data to Live (to trigger clips from the sensors) and of responding to MIDI (to transform automation controller messages into colour changes). Percussa’s bundled control software wasn’t up to the task at the time, being limited to four cubes at once and a rather laborious manual setup procedure, so we built a custom Max patcher using an external object by Thomas Grill and our Python machinery to deal with the configuration and state transitions required by the set.

Clojure Workshop, Expo ’74, October

expo-74-logo

We are running a workshop on concurrent patchers and data structures with MaxMSP and Clojure at the Cycling ’74 Expo in Brooklyn, October 14-16. Details to follow. For that matter, details to be designed and coded.

Anyone who wants to get a flavour of how the workshop might pan out should check out the existing Python-for-MaxMSP package, and then close their eyes and try to imagine what that might look and feel like if the underlying language were Clojure rather than Python.

I’m anticipating that full-on functional programming techniques will be new to many MaxMSP users, and the uncompromising nature of the Lisp syntax can also be a bit of a hurdle, so I’m planning to spend some workshop time getting up to speed on those aspects before looking at the concurrency features specific to Clojure itself.