Instagram
- YouTube
A music visualizer based on the ATMEGA328P-AU.
Oh god, how did it come to this? A while back I had published a project detailing the process for creating your own music visualizer using an Arduino Uno and a Sparkfun Spectrum Shield. I love Sparkfun and I love Arduino, but I also love making things as simple and intuitive as possible. For these reasons, I have designed the Arduino compatible Music Visualizer based on the ATmega328p-au. It is the single board version of the original Arduino Music Visualizer from my previous project with a few other changes. Rather than using the FastLED library, I have employed the Adafruit NeoPixel library which made for some more simple code in the end. I have opted for the surface mount version of the ATmega328p for a more compact package. There is no need for any soldering or jumper wires as the connections between the spectrum analyzer, arduino, and RGB strip are already included on the board. Pretty much this project is as plug and play as possible.
The music visualizer is meant to sit between the music source such as your phone or computer and the output speakers. For best outcome, I typically increase the volume of my music source to 100% while adjusting the volume on my speakers to the desired output volume. This will allow the visualizer to process a greater range of audio level intensities.
- Connect a 3.5mm jack from your music source to the
IN
port of the visualizer - Connect another 3.5mm jack from the
OUT
port of the visualizer to the output spearkers of your choice - Connect a strip of WS2812B RG LEDs no greater than 255 LEDs in length to the JST connector extending from the side of the visualizer
- Power the visualizer using a Micro USB cable connected to a 5v power source
Because markings on the board are different from the markings I designed on the enclosure, I will place a translation key here and I will be using the markings on the board to refer to the different buttons available to you as the user.
Enclosure | Board |
---|---|
C | Cycle |
R | Reset |
+ | Up |
- | Down |
The Cycle Button can be used to cycle through the available patterns preprogrammed onto the visuazlier. Press the Cycle Button once to advance to the next pattern. Once the last pattern is reached, pressing the Cycle Button once more will return to the first pattern in the array. The following is a list of the current available patterns.
- Single Level: A single equalizer bar reactive to bass frequencies
- Double Level: A center mirrored equalizer bar reactive to bass frequencies
- Tracer Level: Bass frequencies of a certain intensity threshold are translated into LED tracers fired across the strip
- Double Tracer Level: Bass frequencies of a certain intensity threshold are translated into LED tracers fired from center to either end of the strip
- Active LEDs: Adjust the amount of LEDs the visualizer will use
The Reset Button will hard reset the visualizer. The will cause the visualizer to reboot and load the user settings saved in EEPROM
The Up Button will have different functionality depending on the current mode
The Up and Down Buttons will adjust the intensity of the LED reaction for this mode
Like in Single Level, the Up and Down Buttons will adjust the intensity of the LED reaction for this mode
The Up and Down Buttons will adjust the audio threshold that causes the LEDs to react. The lower the threshold, the low the intensity of the music required to make the LEDs react. The Up and Down Buttons in this context have a hold functionality. A single press will adjust the threshold by 1. Holding the button for longer than a half second will adjust the threshold by 1 for every processor cycle while the button is held.
The Up and Down Buttons will adjust the amount of LEDs the visualizer will use for its effects. Because the number of LEDs in a strip cannot be determined dynamically in this configuration while strip size can change based on user discretion, you may be required to adjust the number of LEDs the visualizer "knows about". If you have a strip of 100 LEDs, you will need to adjust the number of Active LEDs
to 100 using the Up or Down Buttons. The current number of Active LEDs is shown by lighting only the active LEDs in Red. If you fail to adjust the number of Active LEDs
in the visualizer settings to the number of LEDs actually in your strip, the effects may not display properly on your strip i.e. overreactive or underreactive visual effects.