After seeing some captivating Christmas light and music shows, I realized I could make my own mini version of that with an addressable LED strip.
I decided to control everything from my computer, since the memory limit on a microprocessor is too limiting to store complex animations. Originally I was going to control the lights with MIDI, but eventually I realized that the easiest way was to use an image file. Each line of the image represents a new frame of animation. Not only does this make animations easier to visualize while editing, but many image editors have a lot of powerful tools that can make it easy to create complex and fun animations.
I wrote a small program for my Arduino that takes in a stream of data over a serial connection and lights up the LEDs from that. I designed a simple custom protocol with synchronized animations in mind. Then I wrote a program on my computer that could load an audio file and an LED strip animation, and play them in sync.
It took about 20 hours to create the animation for this song. If you want to create your own animations, I recommend Paint.NET. You will also find a spectrogram very useful. You can generate them with this program: http://spectrogram.software.informer.com/16.0/ Note: animation bitmaps must be the same number of pixels wide as the number of LEDs on your strip.