This project was something simple that had been mulling around my mind for a while, and made my freshman year. I DJ'd in High School, and for controlling my lights, I purchased a power-strip type device that had 8 switches on the front, and 8 outlets on that back that were, you guessed it, controlled by the switches. This was nice, because it allowed me to turn each device on and off individually. My freshman year, I was inspired by the video of the house that had Christmas Lights that flashed to a Trans-Siberian Orchestra song. To create a similar setup without spending gobs of money, I found a solid-state relay that was activated by the voltage put out by the data pins on the parallel port, and could handle the wattage drawn by lights. Once I had the relays, it was very easy to simple solder a bridge that would duplicate the functionality of the switch through the relay if it were activated, and attach each of the eight relays to each of the eight data lines from the parallel port. One challenge I had was to identify what wires in the parallel cable were the data lines, and what order they were in, but an application that activated one at a time and a voltmeter make that relitively easy.
Once I had the hardware working, I needed to develop an application that would take advantage of the automation capabilities. I decided that the best way to give it similar functionality to the video would be to make the application take a text file of cues, then cycle through the cues on a button press so that the lights could be synced up to the music. Additionally, I had included an automation function in the application that attempted to calculate how quickly the button was pressed, then identify what the tempo was and continue cueing once the tempo was set. The cue file I made by having each line be a new cue, and the line consist of 0s and 1s to indicate that that channel was off or on. For example, 00010100 would use all 8 outlets, with all off except 4 and 6. The application converted that into an integer and transmitted it over the parallel port and, when that integer was converted by the parallel driver into electrical signals, it resulted in the required wires putting out a voltage. For one song, I made a cue file that was several hundred lines; the grew quite rapidly. It was somewhat of a challenge to get the song started and begin cueing right away, but when you got it synched up perfectly, it was really cool. As an added bennefit, the switches still function as originally, so no functionality was taken away.