Saturday 25 July 2026, evening

Last weekend I was at EMF, showing a new project: Whiteboard Techno, built with hardware assist from Richard.

a man and a teenage girl standing in front of a whiteboard covered in colored tiles

What is it?

Whiteboard Techno is an outgrowth of two projects: my previous experiments with Dynamicland-style physical computing, and Richard's old camera-driven step sequencer (confusing also titled Whiteboard Techno, sorry).

The idea is that there are a bunch of magnetic tiles on a whiteboard, which represent different musical elements. These get tracked by a camera which converts their arrangement into Strudel code, and "music" ensues.

From a technical standpoint it's mostly tying together a bunch of fairly straightforward bits.

The camera code is all out-of-the-box OpenCV stuff, nothing too fancy. It seemed pretty robust, right up until I tried to run it in an open shipping container in broad daylight, at which point I realised just how brittle the camera's light level estimation was. Definitely an area for more experimentation. There's a real tradeoff between having the camera close to the board (which means less occlusion) and getting a good angle (which means easier recognition). I ended up adjusting a few times over the weekend, mostly moving it closer.

The tiles all have pairs of ArUco markers on. I'm sure there's a better modern solution, but this worked. One marker would probably be enough for detection, but a second marker makes orientation much more robust, and helps with partial occlusions. I 3D-printed them in PLA (more on that later) with a contrasting top layer for the text. The AruCo markers are printed separately and glued in.

Each tile has a bit of Strudel code associated with it. I divided the tiles into five categories: - melody (with a Strudel note value associated) - synth (which consume note values) - sample (standalone sounds) - rhythm (stuff that plays with timing) - effect (post-processing)

I'm not convinced that many people understood the distinctions, and particularly I saw a lot of people trying to point synths at samples, which just doesn't do anything useful. The instructions were fairly clear, but nobody reads instructions. I'm also not sure that many people understood most of the rhythm tiles, which can be a bit obscure.

Some of the tiles have slight randomness associated - they pick a value when seen by the camera, and stick with it until the camera loses track of them. This meant I could generate some nice random melodies, and not be stuck with the same ones all weekend.

Musically, there's a chord progression running in the background, which many of the melody tiles draw from. That keeps everything more or less in tune. The chord progression switches up every few minutes, but the whole thing stays broadly in a key of A minor, for a bit of continuity.

I ended up with 89 tiles, including a special tile with a slider in for setting the BPM, and a top secret hidden-in-plain-sight bonus tile, which we showed a few people but I'm not sure anyone found on their own.

an array of colored tiles with music-themed text on them

How did it go?

I think it broadly went well. People were engaged, having fun, lots of nice positive feedback. I saw a lot of nice collaborations: two or three strangers trying to use it together. A big goal with this was to make a shared musical toy, so that felt like a real win. The layout (on the side wall of a short shipping container) meant that it was a little bit crowded once more than four or five people were nearby, but it also meant that there was a nice space for two to three people to physically engage with the piece, while others watched from the doorway.

There were a few technical issues, but honestly nothing show-stopping. The camera needed fairly regular adjustment — annoyingly it turns out there are a bunch of settings available under Windows/Mac which we couldn't access while the camera was plugged into the Linux machine I was running on.

A bunch of the magnets fell out and had to be glued back in, which caused a few problems early on. Towards the end we started losing some AruCo tags as well, but again they were easy to re-glue.

It was pretty hot all weekend, and some of the tiles did warp a little bit. I think for a second version, I'd print in something a little bit hardier - maybe PETG with a TPU edge band. The warping was mostly a problem in that it stopped the tiles lying flat on the board, which meant they didn't have enough grip and started sliding downwards. Maybe stronger magnets would be the answer there.

We were sited next to the main dancefloor in Nullsector, which meant that the ambient volume levels were high. I was wary about turning up our volume too much, but at times we needed to go pretty loud to hear it properly over the sound from next door. That was fine, but meant it was kind of difficult to talk to anyone. I went through a few pairs of disposable earplugs over the weekend.

What next?

I'm going to let it sit for a bit, but I've got some notes towards improvement. Unfortunately, some of those notes mean recreating every single tile, which is a very slow process. So version two is definitely a while off, if ever.

Until then, if you'd like to get a flavour of the EMF experience, or relive your favorite creations, I've put up a player, based on the logs from the EMF weekend. Source code is here, although you probably don't want it.


Want to leave a comment? I'd prefer an email at [email protected]