Inspiration

Imagine being able to see music. Yes listening to music is fun, but it would be so much better to be able to see it at the same time. You could go to an expensive concert where the performers have spent hours making a custom light show for their music.... or you could open an app on your smartphone.

What it does

With Musical Lights, you can connect your phone to a LED strip via Bluetooth. Then simply run the app and play music from any source. The app will detect the music with a microphone and use the intensity to determine how many LEDs are turned on. This creates an effect where the light increases and decreases with the music you are listening to, enhancing the experience.

How we built it

The phone app was developed in android studio. The LED strip and microphone were connected to an ESP-32 micro controller. The ESP-32 comes with built in Bluetooth that was used to connect with the phone. The code for controlling LEDs was written in Arduino IDE.

The physical components were purchased prior to the hackathon. The ESP32 microcontroller and the MAX9814 microphone were connected on a breadboard. A 5V, 15A power supply is used to provide power for the entire project.

Challenges we ran into

We ran into various UI and hardware challenges. For example, we had trouble implementing a color selector, and during testing our first ESP-32 short circuited and overheated. The LED strip was also problematic, having multiple LEDs burn out, which required cutting and resoldering. The ESP32 microcontroller also only uses 3.3V logic, whereas the LED strip expected 5V data. This causes some negligible glitches and flickering.

Accomplishments that we're proud of

We were able to create a functioning product that communicates directly between a phone app and LEDs. The app uses Bluetooth to communicate with the ESP32 microcontroller, which then is able to set custom lighting and respond to ambient music.

What we learned

We learned how to communicate via Bluetooth between Android devices and microcontrollers, and how to control individual lights on a LED strip. This was also an introduction into digital signal processing, by allowing us to work with Fast Fourier Transforms for Visualization and Beat Detection.

What's next for Musical Lights

We could expand our product with additional musical modes including a beat finding functionality that allows LEDs to interact more intricately with the music. We could also implement a mode that allows music to be input to the microcontroller directly from the phone's audio output instead of from a microphone. We will also work on implementing the beat detection algorithm that Zan demonstrated.

Share this project:

Updates