Any DMX controlling software is capable of doing it. Especially hooked up in a daisy chain.
I do it at weddings a lot with my DJ company, but obviously on a much smaller scale.
Just start with changes matching up with the BPM (beats per minute) of the song, and tweak it from there. The possibilities are endless.
Not an arduous task if one is already familiar with the software, but very time consuming.