Category Archives: swamp-bikeopera

Swamp bike opera impressions…


Photo thanks to zzkt

As the coder for “The swamp that was…” bike opera, my view of things was from “inside” the bikes – listening to the GPS data and playing samples. So it was super (and somewhat surreal) to finally become a rider and take one of the bikes (called Nancy) for a spin through the streets of Ghent to experience it like everyone else at the Electrified festival.

I followed the different routes, and tried some out backwards and got lost in the “garden” – the zone of mysterious ghost butterflies and wandering sounds. During the end of the final route shelter had to be sought in Julius de Vigneplein during a gigantic thunderstorm, to the sound of looping saxophones before retreating back to the Vooruit.

It didn’t crash (always my main preoccupation with testing something I’ve been involved with writing software for) and there seemed to be continuous audio from the routes. Once I had ascertained that the software seemed to be working properly I could actually start to pay attention to the sounds which were a very fluid mix, interspersed with sudden bursts of Flemish – recordings of local people.

The sounds are a widely varied mix ranging from digital glitch to ethereal sounds and processed ducks that accompany you as you cycle along the canals. The “garden” is not a route as such but occupies a maze of small streets in the Ledeberg area and populates the streets with many insects, birds and other surprises.

The custom bike/speaker arrangement designed and built by Timelab was satisfyingly loud – pulling up next to other innocent cyclists at junctions with blaring jazz is quite an intriguing social experience. It makes you want to say “I can’t turn it off” or “I am an art installation!” The beagleboards also seem fairly durable, as the bikes have been running for a month now, and the cobbled streets and some areas with bumpy roadworks give them a lot of shocks to cope with.

The “click click” of car indicator relays tell you when you’ve reached junctions where you have to turn, and while our method of calculating direction (by comparing positions every 10 seconds) doesn’t really work well enough, they still had a useful role, saying “pay attention, you need to turn here!”. This installation, and the rest of the festival will be running for another month, until the 4th November.

Borrowed Scenery

I spent last week working on various activities associated with the Electrified festival in Ghent, which included a mix of plant care, games dev, low level android audio hacking, beagleboard-bike fixing. Here are some photos of the Borrowed Scenery installation/physical narrative, home of the mysterious patabotanists and temporary research laboratory for FoAM – excellent for getting into the spirit of the work while developing it. More details in further posts.

‘The swamp that was’ – a bicycle opera from the ground of Ganda (part 5)

The Bicycle Opera is now live, get your bikes from the Snoepwinkel, Sint-Pietersnieuwstraat 21:

A bicycle opera in Ghent! British sound artist Kaffe Matthews records urban sounds such as music, singing and street sounds. As she combines these with elements from the past, she creates an unseen urban opera. A mobile composition, written for cyclists. You can rent an “audio bike” to explore the streets of Ghent. As you ride past certain spots, sound recordings are played on the speakers of your bike, uncovering the soundtrack of the city piece by piece.

Here is a visualisation of the zones (including the moving ghost zones) across the city.

More music from bikes (part 4)

The last few days has seen intense work on Kaffe Matthews’ Ghent Bicycle Opera which goes live in a few days, lots of new stuff on the git repo for Beagle Board/GPS powered sample playback.


(image from Timelab/Kaffe’s site)

The main problem with the version we tested in June was that all the samples needed to be preloaded, fixing us to <512Mb total sample data. The sample loading was also extremely slow, meaning it could take up to 10 minutes after starting up till the bikes were usable. This slowness turned out to be uncompressing the ogg samples into memory on the not so fast ARM processor. Seeing as they needed to be entirely uncompressed to play anyway, there was little point in compressing them (we have no shortage of storage memory on the SD cards). Now the zones (which link areas of the city to audio samples) are surrounded by a couple of hundred metres of loading/unloading area - crossing into this area causes the sample to start loading, exiting frees it from memory. We can now fit all samples for all the routes (collections of zones for different parts of the city) onto a single system - much more than the total memory on the boards. Other significant improvements include a more data-driven sample playback, where zones are given a naming convention that describe if the sample needs to loop, be panned to come from a specific compass direction (based on the calculated direction of the cyclist, from GPS data) of if they need to be a special mysterious type of zone - called a "ghost zone". Ghost zones are programmed to travel across the city over time - blending between a start and end shape/position, so in the morning they might be heard in different places to the afternoon. You'll be able to experience The swamp that was, a bicycle opera at Electrified III: The Responsive City, in Ghent from this weekend.

Localised sound, from a distance (part 3)

Work has been continuing on “The swamp that was… a bike opera” with Kaffe Matthews and TimeLab Ghent. We now have a running system that’s playing sounds on the bikes, although we’re experiencing some harsh restrictions due to the combination of lowish BeagleBoard memory and slow SD card reading times. I’m considering a kind of distance related caching strategy for the samples – perhaps prioritising loading samples you are cycling towards.

Thanks to Kaffe for the pics.

Location based sound, part two

Our first public test for the The swamp that was, a bicycle opera takes place next weekend, so I’ve been working on the on-bike software and getting more experience with the BeagleBoard while Kaffe builds up the sound pieces. In order to test the software, I’ve made a local map I can play with:

Each coloured zone represents a different audio sample. We are also experimenting with direction, panning each sound depending on your direction and that of the sound source. For example it’s possible to set a sound to come from the north, which pans it to the left if you are heading in an easterly direction and the reverse. Using this test map, I can run the system on battery while out walking the dog:

The Swamp that was, a bicycle opera

Day one on a new project – with Kaffe Matthews, and a collaboration between FoAM & Timelab, “The Swamp that was” is an opera where bicycles become a way to hear stories of the past in the city of Ghent.

I’m picking up the software side of things from Wolfgang Hauptfleisch, which involves using BeagleBoards – low power self contained open hardware ARM computers, a good follow up to my experiments with the considerably more closed NDS and less general purpose Android.


This is my test BeagleBoard xM in a custom laser cut housing from Timelab.

The “swamp” system is based on lua scripts calling proteaAudio for realtime audio processing. Lua has a tiny footprint and is great as an embedded interpreter (despite indexing from 1 and other minor gripes). Everything seems to be up and running, and I’ve set up a project on gitorious with the sourcecode.

Some random things I’ve learned include: flags to speed up dd copying images to extremely slow usb SD memory cards:

sudo dd if=swamp0-1.img of=/dev/sde oflag=dsync bs=1M count=1024

List ip addresses of devices attached to your local router:

sudo arp-scan --interface=wlan0 192.168.1.0/24

I’m using the Ångström distribution on the beagle board, which uses opkg for package management – it took me a long time to figure out the best way to search for packages is simply:

opkg list | grep alsa