Tag Clojure

IJAD: In-Finite Space

feyn-zoom-440x247

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.

(Edited, 2014-03-15: clearer splash image.)

Cassiel + Nina Kov, ICT & Art Connect

00049-440x269

In the Short Notice Department (again): I have a gig with choreographer / dancer Nina Kov at ICT & Art Connect this weekend. This is a short but completely new piece, and the paint is still a little wet on the software and control system. We’re using the usual technology mix: the animation system is built in Clojure and Field, and driven from Ableton Live via Max for Live. The live soundtrack is pretty much exclusively constructed from instruments and effects by Audio Damage. For music technology geeks, there will also be a rather rare piece of controller hardware on display.

Becoming

seq2_a_all_full_cropped-440x247

We’ve been working with Wayne McGregor | Random Dance and OpenEndedGroup on Becoming, an algorithmic “virtual dancer” that grows and evolves in response to emulated mechanical constraints and to a database of film material. The “dancer” is partially controlled by a responsive web-based front end built on Backbone.js, Hiccup, Clojure and ClojureScript. (The front-end code is available on GitHub.)

Becoming is currently being used in the studio in the making of Atomos, which premieres in October. Becoming will also be shown as part of the exhibit Thinking with the Body at the Wellcome Collection, opening September 19th.

Quil and Field (EuroClojure 2012)

This video of my presentation at EuroClojure 2012 made its way online a year ago, yet I only recently discovered it. (Coming soon: not one but two video interviews from the first two MaxMSP UK festivals.)

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.

Kora, Boudhanath, Kathmandu

2012-11-27__MG_2037_Gaynor-OFlynn-KIAF-440x268

We’re just back from a week in Kathmandu, working with Gaynor O’Flynn as part of beinghuman on a pair of performances for the Kathmandu International Art Festival: a collaboration with local artists for a piece at the Patan Museum, and the multimedia installation work Kora at Boudhanath, featuring nuns from Nagi Gompa.

Technology alphabet soup: audio from the nuns was routed into Ableton Live and Max for Live, tracked and converted into a stream of Open Sound Control messages, and routed into Field with custom Clojure code for projection.

(The backup plan was to project with an off-the-shelf laser display, but the only interface of any use at short notice was DMX, which really only provided recall and simple transformations of built-in clip art.)

This is the second time in two weeks that we’ve had the opportunity to project onto world-famous iconic man-made structures.

Monome Action at Music Tech Fest

This video from a gig we played back in May at Music Tech Fest has just made its way online. As far as I know, the audio was lifted from the PA which, being d&b audiotechnik, sounded superb.

Instruments: monome running Straker sequencer (Python over Shado), arc running some Clojure over Shado.

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.

Enter Sifaka

IMG_0010-440x330

Lemur is a multitouch control application for iPhone and iPad, ported by Liine from the now-obsolete JazzMutant hardware device of the same name. The application comes with a rather quirky WYSIWYG editor, and while the editor’s irritating interface might not be enough to prompt efforts on a replacement, control interfaces tend to be heirarchical, highly structured and repetitive, so it makes sense to use some kind of dedicated high-level language to create them and lay them out. So: enter Sifaka.

Morse Code for Overtone

morse170

We’ve just uploaded a Morse code generator for Overtone.

I’ve never been much of a fan of SuperCollider largely because of its front-end language, which I first encountered around 15 years ago (before SuperCollider even existed) and had various issues with, but Overtone (a Clojure environment for driving the SuperCollider audio engine) is a different proposition.

I’m working on a project involving online avatars and audio-rate control systems, and since Clojure+Overtone can clearly do both web interfacing and audio (all with decent multithreading semantics) it avoids the need for separate programs hooked together via OSC or any kind of plug-in or hosting setup. (We’ve already implemented Clojure for MaxMSP, and that was lined up as our Plan B.)

This Morse code generator is very much My First Overtone Program, drawing just on basic Overtone/SuperCollider idioms which I can hack together without getting too lost. Most of it is plain old Clojure coding with a bit of event scheduling, familiar from realtime media applications.

I wonder how much SuperCollider I’d have to learn to add synthetic shortwave radio interference?