Music Visualizer with Emoticons Using DigiPixel & Arduino

For my CCLAB Arduino Final we have to make something that has both input, output, and also inject some personality into it. So I made this music visualizer that will show smiley face as long as the music is not too loud, and gives annoyed face whenever the surrounding music is too loud.



  • Piccolo, for visualizing sound. What this library does is utilizing the free-run mode in Arduino that converts analog-to-digital at precise intervals of 9.6KHz; just because the normal analogRead() is too slow for audio sampling.
  • ELM-ChaN ffft library (fast Fourier transform). Raw, analog audio samples are then converted to frequency spectrum using this library. The library is included in the Piccolo github.
  • AdaFruit GFX Library 
  • AdaFruit LED Backpack Library 


The first experiment was conducted by following this tutorial and modify it by adding DigiPixel library to show both smiley and annoyed faces on its screen. Sound visualizer displayed on LED Matrix, and the emoticon is displayed according to the beat in DigiPixel.


Next, I did the opposite by displaying Sound visualizer on the DigiPixel, and the emoticon is displayed in the AdaFruit 1.2" 8x8 LED Matrix. I follow this Tiny Arduino Music Visualizer tutorial and got stuck in translating how to map the variables & function to work on DigiPixel. It was before I realized that there are examples sketches from DigiPixel library that's called DigiPiccolo! That made my life so much easier, I modified the code from there.


I personally think that my 2nd experiment delivers much better result than the 1st. Although yes, the Piccolo and fffT library is quite a headache to explore, it gives a better sound visualization.