What would you call a word clock that doesn’t tell time? The concept of a word clock is that all the words needed to be used are already there and then just selected. [Ben Combee] realized there were only 18 unique words to make up the song “Harder Faster Better Stronger” and with an extra PyBadge from Supercon 2021 on hand, it seems obvious to make a musical word clock of sorts.
The PyBadge is a 120 MHz ATSAMD51 based board with a screen, buttons, and a case that he 3d printed. To get reasonable sound quality while still fitting with the 2MB of flash storage on the device, MP3 compression was chosen. Since there was only one speaker, it was mixed down to mono and a lower bitrate, getting the size down to just 880KB. The mp3 is processed by the audiomp3 module in circuitpython with the volume level being sent to five NeoPixels to act as a VU. Getting the timing correct was the hardest part as the lyrics needed to be separated out and the timing figured out. Using Audacity’s label track feature, he had all the words tagged in the track and could export it into a format that could be massaged into a python friendly format.
The music and the text cues becoming desynchronized became a larger issue as the file plays. Increasing the MP3 buffer helped but the real trick was to peek inside the music decoder and figure out how many samples had been decoded and cue the words based on that, rather than the time since it wasn’t as accurate. All the code and files are up on his Hackaday.io page if you feel the need to make your own. If you’re sticking with Daft Punk, make sure to have your helmet ready when you rock. Though based on this summary of the compressibility of pop songs, there are a few other songs with a small enough number of unique words that they too could get the word clock treatment. Video after the break.