Ever since my parents moved into the house they had been working so hard on, I’ve been trying to cook up a way for them to play music throughout their new home. They had the foresight to wire their house up for speakers. And I was able to acquire a multi-zone amplifier sufficient for driving 8 stereo rigs. The hardware is there. But the control is lacking.
My initial attempt was to find a way to export audio from a computer. But this proved insufficient. There was no problem getting an audio feed. The issue is control. What if I want to de-activate or mute specific speakers? What if I need to adjust volume for specific speakers? What if I want to output different audio to different rooms? With a single computer, this has proven extremely difficult.
As it turns out, most computer operating systems lack support for outputting multiple audio signals. The amplifier being used requires analog signals as well, so there is no way to divide or independently control the audio for each set of speakers. And perhaps more crucially, I want a convenient way to control all of this, and to be able to do it remotely, without the need to fiddle with physical knobs or buttons on the hardware itself.
The closest I was able to come was with a Mac Mini. Apple’s OSX operating system is one of the few I was able to find that has support for “virtual” multi-audio output devices. It allowed me to use a series of USB audio dongles to output audio to each of the speakers independently. Unfortunately, the stability of this approach was highly suspect. The interface OSX uses for these controls is clearly not a development priority, and was highly finicky. There was also no fine control over volume, all volume would be controlled universally across all devices. And the only way to change which speakers were active was to dig into the Mac settings menu, very user-unfriendly. Combine this with the aging nature of the Mac Mini, and the instability of iTunes for audio playback, and it was simply not a sustainable solution.
A more robust, and customized approach would be necessary…