I recently published notes and project files for my Daft Punk Word Clock on hackaday.io. This is a project I did over New Years to make a word clock-style interface to the song “Harder, Faster, Better, Stronger” by the ubiquitous musical robots from France. I’d had an idea to do something with this song for a while, but when I sat down to go through the lyrics, I realized there were only 18 unique words, so making a classic word clock, but showing the current line instead of the current time seemed like a neat idea.
Before building any sort of custom hardware, I wanted to prototype it, so I used a spare Adafruit PyBadge, since it runs CircuitPython and has a reasonable display and speaker output. The project came together pretty quickly. I spent some time in Audacity tagging all the lyrics to get time stamps, then processed that into a Python data structure, then built code to show the word clock, with highlights starting and stopping at the required times. This was similar to work I’d done in my day job with display and timing of closed captions. I also used level data from the MP3 decoder to drive the light strip as a cheap audio visualizer.
The biggest issue was audio sync. The clock on the PyBadge wasn’t quite exact, so using the real-time clock to time changes to the clock resulted in getting very out of sync by the middle of the song. This was especially hurt by performance issues with redrawing the screen. I had to increase the MP3 decoding buffering to help with CPU blocking during redraws, and I had to made a code change to the MP3 decoder in CircuitPython to add an attribute showing the current playback time, since that would actually match with the position in the song, where the unsynced system clock would not.
I could see a future version of this using a 3D printed clock face and LED matrix to make this more real, but I’m pretty happy with it as is.