- Introduction

The brain has a great ability to discern correlations and patterns between stimuli coming from multiple senses, such as between hearing and sight (i.e. music and dancing). A lightshow (a display of lights that ‘move’ in patterns) is commonly coordinated with music to achieve this multi-stimulus situation. It is thought that these situations create a more enjoyable and mesmerizing experience.

The realization of these musical lightshows has often been painstaking tasks in which each light is programmed to be triggered, or changed in some way, at certain times. However, with signal processing we can automate this process.

With LabVIEW it is possible analyze a music file according to signal magnitudes (loudness) and frequency (tone), and then use this information to orchestrate a lightshow. During this project automated lightshow software was developed in LabVIEW and tested in real-world simulations with a custom LED array and range of sound files.


In the video above I am preforming the same demo I gave in my final presentation. I played a series of different sound files, each with different characteristics (speech, heavy bass, high frequency range, etc.). Due to the low refresh rate of the camera a lot of detail was lost (the lights blink much faster, and really achieved the dual stimulus experience). However, I think the essence of the system was captured.

A special 'Thank You' to the camera woman, Ashley Soltis, she did a great job (even if she had trouble focusing at times).

- Design

The LEDs were grouped by 2 sets of 3 LED columns as shown in below. The colors also repersent the system's actual color arrangment.

The first 6 rows from the left were driven by the frequency filters and the last 4 rows were driven by the magnitude filters. In the magnitude section the threshold value increases as you move right to the left. The color arrangement and frequency array had no methodology.


The final LED array is shown above. The wiring was done by having a row of positive leads from the connector block lined one by one, as seen on the left side of the photo above. A common ground was used for all of the LEDs, as seen in the foreground and then on the right side of the photo with the orange and red wires.

Note on LEDs: It was sometimes challenging to work with the LEDs. Each color LED has its own 'on-voltage' which is usually between 2 to 3 volts. Special care had to be taken to not exceed the LEDs power tolerances or it will fry, sometimes producing terrible smells. Great deals can be found on eBay, I bought about 100 LEDs for 10 dollars.


A SCB-68 connector block was used to wire the LEDs. (prepare for techno babble) This board, shown above, was used in MIO (multifunction I/O) configuration for a total 23 outputs rather than DIO (digital input/output) configuration with 39 outputs. MIO was chosen as to allow for use of the analog outputs. This was done because with analog (variable voltage) outputs the system could represent 'loudness' more effectively with the ability to dim. With digital outputs there are only two settings, on and off (no dimming abilities).


The final system pictured above.


Unfortunately I discovered how powerful these LEDs were- looking straight down onto the array WILL temperately blind you. To prevent further pain I used a sheet of printer paper as a diffuser, it worked well.

- Results and Testing

A wide range of sound files were used to test the systems flexibility with different sound files with different overall characteristics (shown in the earlier video). The final analysis of the performance of the system is more of an art than science. Measuring the correlation between the music and lights proved to be mostly qualitative than not and also seemed to vary among those who were familiar with music, music minors, those who played an instrument, and those who were not (they thought the system followed the music well).

The lightshow generator seems to have somewhat mixed results with some types of the sound files. The correlation can best be observed during narration, as witnessed in the video during the forth sound file. This increase in sound-to-light resolution is likely because narrative sound files tend much more monophonic (single tone). With a reduced number of overlap frequencies, less lights will be triggered and help give the impression of highly selective triggers.

Due to the difficulty of visually checking the accuracy of the of frequency filters a sound file was generated in Matlab to test the program and ultimately fine-tune the filters. By modifying a program made by Dr. Troy McBride called ‘Beethoven’ I was able to derive a test file with 3 second bursts of single frequency sound. This proved to be helpful in proving the systems functionality.

- Conclusion and Discussion

The project met the goals to create an automated lightshow generator with LabVIEW. Proof of concept has been accomplished and now further expansion and improvements could easily be made. Some possible system improvements:

One obvious improvement to the lightshow would be adding light resolution to the frequency filters. After the bandpass (or frequency filter) the signal would be further filtered by magnitude and allow for multiple light levels per certain frequency. More improvement to the lightshow generator could be achieved by adding more methods to analyze the sound file. Magnitude and frequency analysis were convenient because the analysis occurred simultaneously with the playing of the sound. This ‘live analysis’ method simplify the overall program, however adding the ability to preprocess the sound file could enable one to identify other characteristics such as tempo, the loudest and the quietest part of the sound file. With this information one could possibly create more intuitive sound to light correlations. Furthermore, preprocessing the music file and gathering general characteristics of the signal would allow the magnitude and frequency analysis to dynamically adjust to each unique file. Preprocessing would allow the magnitude filter to have dynamic threshold values that adjust to the ‘loudness’ of any particular sound file. Enabling generally quieter sound files to still use the full resolution of the array (and vis versa).

Processing speed is another issue that could be avoided with preprocessing. Currently the program architecture limits in ability and sophistication of the signal analyzing routines. This problem arises from simultaneously playing the sound file while also analyzing the signal and triggering the LEDs.

The use of LabVIEW in this application is an effective method for proof of concept, filtering experimentation, and tweaking of the signal processing system. However, commercial application of this system would be greatly improved cost-wise if LabVIEW was replaced with a simpler, cheaper method such as the use of a software platform, circuits, microcontrollers or PICs.

- Final Word

This project enabled me to set challenging goals by simply being a (graded) class project. It ultimately allowed me to work within the time I set away for classwork (a major bonus). It also helped me understand the difficulty that exists in measuring qualitative results, something I think many engineers struggle with (we just want the numbers too much sometimes). Overall, this was one of my more successful, under budget, on schedule, projects.

+ Much of this presentation was derived from my design paper, of which, the graded version can be seen here [PDF].
+ The final PowerPoint presentation here [PowerPoint 2007].
+ The VI and related LabVIEW and Matlab programs are available on request (see contact page).