Olaf Lets An ESP32 Listen To The Music

The joys of overengineering a simple gift. [Joren] wanted to create a dress for his daughter’s fourth birthday that would react with lights in sequence for a song from Frozen. The dress and an LED strip, along with a digital microphone and a battery were easy to procure. But how to make it all work? An ESP32 did the trick.

While the project’s name–Olaf–sounds like it was from Frozen, according to the GitHub page it actually means Overly Lightweight Acoustic Fingerprinting. Right. However, as the name implies, it can learn to identify any sound you want.

One interesting twist. The code is in C, so running it through Emscripten allows the code to run in your browser and you can watch it work alongside a YouTube video of the movie. You can see in the image above that the fingerprint screen gets red dots until it matches the audio and then the dots turn green, indicating a match.

Even if you don’t want a magic Frozen dress, the code on GitHub could be a good starting point for developing audio-sensitive applications.

6 thoughts on “Olaf Lets An ESP32 Listen To The Music

      1. I would think that the last thing you’d want as a parent is to explicitly encourage your child to repeat a single song ad infinitum :)

        Although, you could invert it and make it light up for anything *other* than the song you’re heartily sick of…

  1. Long ago, my school science project was creating an Apple][e program that would recognize several songs and print which one.
    I used the joystick port to sample an led which turned on when the 60Hz signal came from a forest Mims color organ type circuit.
    It could recognize B52’s Roam, Michael Jackson’s Bad and a few others.

    It measured the time between beats and stored them, then compared those numbers to pre sampled versions.

    I had to adjust the volume carefully.
    To wooo the judges I had the color organ connected to a pair of Porsche taillights I got from a garage sale.

Leave a Reply to Huan Truong Cancel reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.