Phonic Bloom dev log 1

June 2, 2024

My friend Joan made a project named Sound Puddle. It was a geodesic dome with a bunch of sound reactive LED strips. I helped her set it up at Apogaea a few times, and it was incredible, but it was also a huge pain. It was really big, so you needed a full crew and ladders and power tools to set it up. I wanted to recreate it in a smaller form, one that can be set up without ladders or other tools, that can fit in my car, and that can be set up in a few hours.

Here’s my initial version. I’m running it off an ESP32 microcontroller. The ESP32 has a dual-core 240 MHz 32-bit CPU with a single precision floating point unit, so I’m hoping it’s fast enough. The original version of Sound Puddle had multiple FPGAs, and later revisions had a custom made circuit board built around a (I believe) 1 GHz ARM CPU, so we’ll see.

The basic idea is to collect samples from the microphone, run a Fourier transform to find the frequencies in the signal, and then light up the LEDs in response. Sound Puddle assigned a note to each strip, with notes increasing as you moved around the center, and would light up the first LED on the strip if it heard that note. The note’s volume would correspond with the brightness.

Here’s my initial version. This is on a breadboard, which isn’t very reliable, but it’s good enough for now.

Some LED strips and an Arduino lying on the floor

Right now, I’m only getting about 10 frames per second, which is not smooth at all. The most significant time sinks are the Fourier transform, then updating the LED strips, then collecting the samples.

I’m going to borrow my friend’s 10 foot diameter geodesic dome. In exchange, he wants me to sew a canvas cover for it. My LED strips are 5 meters long each, so I will have each strip extend down from the top center, to the edge, then double back up to the top. I’ll program it to run the effect from both ends.