r _Web.log

Archives: 2010-03

Procedural HTML5 drawing with Harmony

K http://mrdoob.com/lab/javascript/harmony/

This online procedural drawing interface (click + drag in the big white space beneath the bar) simultaneously inspires awe and unease in its instant transformation of scribbles into intricate drawings.

It's made possible by the new HTML version 5 and its <canvas> tag, which allows for images to be dynamically created and modified within a web browser -- here using the JavaScript port of Processing. Exciting (and occasionally unnerving) times ahead.

Building pyPortMIDI on Snow Leopard x86_64

I don't make a habit of posting compilation gotchas, but this one was a phenomenally unpleasant time drain. Looking to interface python with MIDI on Snow Leopard, I came across pyPortMIDI, based on part of PortMedia.

Compilation seemed OK, following these hints (also found in pm_python/hints.txt in the portmidi dist), but running the pyPortMIDI test.py script returned the following:

Traceback (most recent call last):
File "test.py", line 11, in
import pypm
ImportError: dlopen(/Library/Python/2.6/site-packages/pypm.so, 2): Symbol not found: _Pt_Time
Referenced from: /Library/Python/2.6/site-packages/pypm.so
Expected in: flat namespace
in /Library/Python/2.6/site-packages/pypm.so

Following some excrutiating exploration with dtrace and nm, it transpired that it boiled down to an architecture issue: according to the portmidi xcode build file, /usr/local/lib/libportmidi.dylib was compiled as i386/ppc, but my system is 64-bit.

* Open the .xcodeproj file in XCode, change the .dylib Target arch to x86_64, rebuild and install over the existing /usr/local/lib/libportmidi.dylib
* Clean up the pyPortMIDI build, rebuild and reinstall

Now working without a hitch.

Variable 4

In an abominable act of oversight, one of the major projects keeping me occupied in 2010 has yet to receive an official announcement here. So, I'm belatedly pleased to herald Variable 4, an environmental installation taking place on the other-worldly shingle plains of Dungeness in May 2010.

In partnership with James Bulley, and with kind support from the PRSF and Campbell Scientific, we're building a system which will be embedded into the desolate landscape and equipped with an array of meteorological sensors. Using algorithmic compositional techniques, it will then respond sonically to the real-time weather conditions, transforming and recombining a bank of precomposed movements and recordings via a multi-channel all-weather soundsystem.

It is taking place over a single 24-hour period, from noon till noon on 22-23 May, and so encompasses one complete daily cycle of solar and environmental conditions. For those not living in the Romney Marsh area, there will be a couple of coaches operating from London - booking info coming soon.

It's been a bit of a baptism of fire as far as project administration goes; who'd have thought that licensing and insurance concerns could occupy so much time? Current top of the anxiety checklist is ensuring that local fisherman aren't somehow entangled in wiring as they begin their 3am working days. Anyhow, we're finally well into the composition phase - leveraging Max For Live and the endless generative musical possibilities that it offers.

We'll be documenting the compositional and technical development on the Variable 4 blog and twitter @variable4, releasing relevant sourcecode and patches wherever possible.