Last year, I saw and was inspired by the Big Round Cubatron, the world's largest 3-D light installation. Ignore the chatter from the drunk guy in the video, and listen... no sound. Sound, I thought. This needs sound.
So, I thought up an idea. Build a room or half-sphere, and have speakers all over the perimeter of the space. Build hardware that translates sound to a light; treble lights a white light, bass, a red light, and so on across the spectrum. Attach one light to each speaker, and have everything face the center of the room.
Then run three dimensional audio screensavers on it, and make parameters of the screensavers accessible by physical controls inside of the space; foot pedals, knobs, buttons, whatever.
So, that was the idea. I looked into doing it in Java, which I was best at, but the hardware abstraction makes working with multiple soundcards a disaster. I tried Python, but didn't see quite what I liked, then saw a nightmare in having to implement hardware-level code with C. Taking a look at DirectX, I saw that C++ was certainly viable for this one, albeit I'm rusty in that direction. Then finally realized that if DirectX works in C++, it'll work in C#, and I'm off.
Today, setup two separate audio sources (one internal sound device, one USB device) and got them to play the same audio source with no apparent problem. Looking into DirectSound3D, some of my work may even be done for me already. The problem is that native DirectSound support is over as of Windows XP, and runs in an emulation layer in Vista. Meanwhile, XAudio for the XBox was bumped up to XAudio2, which runs on Vista, layers over DirectSound on XP, and still runs on an XBox if I'm feeling especially ornery.