I've been playing around with the idea of creating a single-PC
multi-zone music system (something like casatunes) based on squeezebox.
The idea is to use a PC with an HDAudio-compatible audio card (most PCs
today are compatible, supporting 6 or 8 channels), and connect it to a
single surround amplifier. This should make multi-zone solutions very
cheap, as a single 6-channel (or 6.1 or 7.1) surround amplifiers is
cheaper than 3 stereo amplifiers both for cheap amplifiers and for
expensive ones. A PC with HDAudio interface can be connected to such
amplifier using a single SPDIF cable, making such solution really easy
to set up.

Having checked several software-based squeezeboxes, I saw that
squeezeslave is the perfect choice - it's lightweight and has good
performance; these considerations are ever more important for
multi-zone as mutliple instances of the player need to coexist. I've
made the changes to the squeezeslave code to support it as an optional
feature activated using a command-line argument. If "-z n/m" is
specified at command line, squeezeslave will work on zone n out of m
zones. If not specified, or if used with "-z 0/1", squeezeslave will
operate normal and my changes will not effect performance or behavior
of squeezeslave. When zones are in used, portaudio is initilized with
m*2 channels (rather than the default 2), and all audio buffers will be
written to the n-th channel. Also, if zones are used and a non-default
MAC address is not used, the last byte of the MAC address used will be
(n+1) to avoid collision.

So, for example, for setting up 3 audio zones using a single PC, you
need a 6.1 or 7.1 amplifier connected to your PC, and then you run 3
instances of squeezeslave:

% squeezeslave -z 0/3 &
% squeezeslave -z 1/3 &
% squeezeslave -z 2/3 &



I've tested it on linux and it seems to work well. If you're
interested, I'd love to contribute this code back to the project. I
believe it could make squeezeslave a very useful tool for people using
squeezebox for home audio, and for embedding in systems such as
vortexbox.

I'm attaching my changes as a diff (patch) file.


+-------------------------------------------------------------------+
|Filename: zones-support.diff                                       |
|Download: http://forums.slimdevices.com/attachment.php?attachmentid=12511|
+-------------------------------------------------------------------+

-- 
odedn
------------------------------------------------------------------------
odedn's Profile: http://forums.slimdevices.com/member.php?userid=49839
View this thread: http://forums.slimdevices.com/showthread.php?t=83362

_______________________________________________
discuss mailing list
[email protected]
http://lists.slimdevices.com/mailman/listinfo/discuss

Reply via email to