This Wednesday we’re performing algorithmic visuals for IJAD Dance‘s showing of In-Finite Space as part of the AHRC Creative Economy showcase. Twitter messages are geometrically formatted in 3D and cast into a retro-aesthetic graphical fly-through sequence to be interpreted by the dancers. Technology: Field, hybrid Python/Clojure mix.
Recently we’ve been working on several digital art projects using Field as a development and presentation platform but with Clojure running the core, domain-specific algorithmic code. This choice is, admittedly, partly because Clojure is new and shiny, but we also like the Emacs- and Leiningen-based development environment (complete with continuous integration testing), and Clojure’s clean functional semantics lends itself to realtime, evolutionary artworks. Since Field works at the level of Python-on-Java (via Jython), and Clojure runs in the JVM, the Python and Clojure worlds inevitably collide.
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.
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.