Our final design project is a system that consists of a disk with 256 LEDs (Dotstar from Adafruit) that displays different patterns based on frequency and amplitude characteristics of the inputted audio signal. The project has three different displays and the user is able to switch between these displays by clicking the desired image on the LCD. The board that is used for this project is the NXP OM13092 and the micro controller we were using is the LPCXpresso54608. The audio comes from a user device and then runs into the on-board audio input jack. The data is sampled and then a fast Fourier transform (FFT) is taken to get the frequency and amplitude characteristics of the audio signal. From there we are able to look through the frequency domain data to find the highest peak in desired frequency ranges. We split the data into three frequency ranges, low (0-200 Hz), mid (200-1500 Hz) and high (1500-5000 Hz). The peaks found in these three ranges were then either compared to the previous peak value or compared to the average power in that range to determine if certain LEDs were to be turned on or off. The method that was used depends on the display that is being played.
Our code can be found here: GitHub - Clemons11/Music-Controlled-LED-Disk
The video of our project working can be found here: Senior Project: Audio Controlled LED Disk - YouTube