LightDJ - software for music-synced lights

LightDJ is a program for controlling music-synchronized lights, written in Java. It uses real-time music analysis to create visual effects that are synced to the beat, while offering a LightDJ high-level control in order to select lighting effects that match the music’s mood. This juxtaposition of computer algorithms and human touch creates an immersive visual experience that’s truly one of a kind.

LightDJ first premiered at Next House’s Impulse Party in February 2011, which drew a crowd of 500+ people. Whereas traditional venues have just one DJ to control the music, this event had 2 DJ’s - one for the music, and the “LightDJ” using this software to control the lights.

I developed LightDJ, and some other friends in Next Make developed the electronics and firmware for the music-synchronized lights (shown below!).

User Interface

LightDJ has a number of user interface elements to make it easy to control lights and make sure they match the mood of the music. The LightDJ can select between a number of visualizer plugins, which each interpret the music signal and generate different color patterns. For example, one visualizer moves through rainbow colors and gets brighter on bass beats, whereas another emulates a flame that flickers to the beat. LightDJ has many such visualizer plugins (some of them pictured). They all run in parallel, and two of them are selected to be “active” at any point in time. A cross-fader knob at the bottom of the interface allows the final output to be a mixed combination of the two, allowing hybrid effects and smooth transitions. In addition, each visualizer has its own paramters that can be adjusted. These appear as knobs on the screen that can be turned to vary speed, intensity, or even color parameters of the plugin. LightDJ supports an exendable plugin and control architecture that makes adding new plugins a snap.

In addition to selecting plugins, the LightDJ can also add various post-processing effects to make the lights match the music even more accurately. These include strobes, black out, bright white flashes, hue shifts, and more. Some plugins even give the LightDJ complete control over all of the lights. By allowing a human to fine tune the lighting patterns, the lights can match the music in ways not easily detectable from algorithmic analysis of the music itself.

LightDJ is designed with live performance in mind. As such, all commands can be accessed quickly via keyboard shortcut keys to avoid mouse clicking. Additionally, LightDJ also has MIDI hardware support. Commands and visualizer parameters can be mapped to MIDI devices via a configuration file in order to further improve the ease and speed with which interactive lighting patterns can be made that match the music. Devices such as the M-Audio X-Session Pro (pictured) work great for this purpose.

Signal Processing Architecture

LightDJ runs real-time music analysis to generate visual effects that match the music. A speed-optimized FFT algorithm converts a live music stream into a frequency-domain representation, which is then analyzed and cleaned up to measure bass, highs, and more. These features are then fed into a number of visualizer algorithms, which convert them to lighting color patterns.

Plugins called “FeatureDetectors” can easily be written that analyze the FFT and extract musical features and publish them to all of the visualizer plugins.

A live spectrogram in the lower-left hand corner shows the frequency content of the music (pictured).

Communication

Once a lighting pattern is created from visualizers, mixing, and post-processing, the final output is sent via serial to the lighting system. LightDJ operates at up to 16-bit per color channel, with gamma corrected colors. The protocol is designed for low latency and bandwidth, by compressing redundant color information.

Pictures and Videos

Video coming soon!