VU Meter for Arduino using CAVA (Console-based Audio Visualizer for Alsa) and NeoPixel LED strip.
Note
This project is desenvolved and tested on a Linux based system. It may not work on other systems.
- Arduino (or compatible board)
- NeoPixel LED strip (WS2812B or similar)
- Adafruit NeoPixel library
- Linux based system (for the
cava_out.sh
script) - CAVA (Console-based Audio Visualizer for Alsa)
Change the Arduino Neopixel LED strip pin in the cava-vu-meter.ino
file.
// Define the pins for the neopixels
const int stripPin[NUM_STRIPS] = {3, 5, 6};
Change the number of LEDs, brightness level and number of strips in the cava-vu-meter.ino
file.
#define NUM_STRIPS 1 // Number of neopixel strips
#define NUM_PIXELS 60 // Number of neopixels per strip
#define BRIGHTNESS_LEVEL 5 // Brightness level for the neopixels
Change the mode of the VU Meter in the cava-vu-meter.ino
file.
// Define the visualizer modes
#define MODE_SINGLE_DOT 0
#define MODE_FULL_STRIP 1
#define MODE_DECAY 2
VU Meter color mode in the cava-vu-meter.ino
file.
// Define the color modes
#define COLOR_MODE_PURPLE 0
#define COLOR_MODE_RGY 1
Strip quantity and LED quantity in the config
file.
[general]
# Strip quantity
bars = 1
[output]
# LED quantity
ascii_max_range = 60
Important
If the serial port is different from /dev/ttyUSB0, you can change it to another one in the cava_out.sh
file.
Special thanks to Sahaj Sarup for MatrixVizCava project inspiration and the cava_out.sh
script.