A hobby project, this software integrates several systems to ease the burden of party hosting — and make an awesome dance party. This interface runs on a wall-mounted touchscreen LCD with attached fingerprint reader.
Guests are invited to use the touchscreen to browse or search the music library and add tracks they’d like to hear. They can optionally sign in using their fingerprint and opt to have the system send a text message to their phone when their request is about to play. (During parties, an admin must sign in to change tracks or rearrange the queue, helpfully thwarting that guest with a “better” taste in music.)
Of course, selecting tunes is only the beginning:
The software is fully integrated with Home Automation hardware and a custom-built electrical relay control. This allows full computer control of the installed lasers, fogger, colorbursts, and accent lighting (RGB LEDs).
Taking advantage of the lighting control system, songs are pre-programmed with cues to automatically change the lights during the song. (As promised above, the synchronized light show makes for an awesome dance party.) Lights can also be manually adjusted at any time in the touchscreen interface.
A few implementation details:
- The software was written in C# and XAML. (A WPF learning experience.)
- A separate machine hosts a MySQL server and a 2 TB RAID of storage space for the music files.
- A client application runs on my personal machine and synchronizes my iTunes library to the server. This includes playlists and track metadata to the database and the actual mp3/m4a to the file server.
- Syncing iTunes makes managing music a breeze.
- Multiple users may synchronize their iTunes library to the server.
- The file server runs an instance of VLC that multicasts the playing tune to the LAN. (The machine running the touchscreen doesn't actually play the music; it just controls the VLC server.)
- Another client application instantiates the VLC ActiveX control, connects it to the multicast stream, and enables VLC’s visualizer. It then connects to the touchscreen and overlays the title, artist, and album art of the currently playing track.
- The multicasting arrangement allows multiple computers in separate rooms to play the same music – no need to run audio cable for whole-house audio.
- The fingerprint reader is a stock Microsoft Fingerprint Reader and is accessed with the help of Griaule’s SDK.
- Users sign in using their fingerprint (stored in the database). New users may create an account.
- Lights are controlled by a piece of custom hardware with eight electrical relay switches. The hardware is connected via parallel port. Additional lights are controlled using X10-based hardware.