A few thoughts on the interface for synchronized audio playback:
For the first time I set up sync'd audio playback on two computers running JRiver with a separate NAS as the server. It works, but I spent most of my time in the two interfaces trying to figure out how not to do what I don't want to do. The rest was easy.
Here's what I want to do:
1) On machine A, define a virtual library that points to a NAS
--Most simply, this just contains a library specification (i.e. server, file paths etc.)
--Note, I am intentionaly defining a 'virtual library' to distinguish it from a streaming media server (a 'virtual library' could be just an .xml spec; it doesn't necessarily do anything)
2) On machine A, choose to share the virtual library on the network
3) On machine A, define a Linked Playback 'Group' (or 'Linked Zones')
--Again, I'm inventing some terms
--This machine chooses which library the Playback group uses; it could use the virtual library (loose sharing mode) or a local library (server mode)
4) When I select the Linked Playback Group, all I want to see is the music that's playing and I can choose to change the music or change other features related to sync'd group playback.
--Note that all of my Zone's are local -- I don't want to see a bunch of Zones automatically messing up my interface when I am just trying to create a sync'd playback group
5) On machine B, connect the shared virtual library.
--Ideally, this should be a minimally invasive connection -- It does not populate all the 'Zones' on the sharing computer and doesn't make other invasive changes to my local interface. I just point to that virtual library and can then access it, provided that the specification is accessible from and playable by machine B
6) On machine B, I select a local Zone, then choose to join my local Zone to the playback group
7) Any machine joined to the playback group can change the song or the playback list, as well as playback features like shuffle (including the machine that defined the playback group, which doesn't work for me--I can control music from the client but not from the server--at least server control of clients is not working as well as the other way around)
If machine B, cannot access a playback group's specified library, or can't play the formats, only then does machine B need to choose a shared zone that can access and play the library.
The above is a very rough stab at what I'm after. This is not an integration problem; I'm trying to get at a more intuitive interface for synchronized audio playback.
A few problems I had:
--setting up a Media server. To start, I had to navigate to a strange place to set up a media server (Media network under Services). I don't what to set up a media server for this use case. Everything should be managed by setting up a shared library and a shared playback group. If I need transcoding, streaming, a shared zone, etc., these should be options organized around simpler abstract sharing concepts.
--I had to be very careful that each machine plays on a local zone and is not streaming or transcoding or using other server-related features that are not needed. If, from machine B, I click on 'Linked Zone' and start playing, it automatically defaults to using a 'There' zone on the 'server' (machine A), simply because that zone is at the top of the linked zone list. This is very bad, because all my zones are local-configuration dependent. If I need to share a zone, that should be a separate downstream task (e.g. define a shared zone on machine C and choose to use it on machine A). I never want machine B to default to using a zone on another machine.
In this brave new world:
machine A could define a shared 'virtual library' (CoolTunes), machine B could define a shared 'playback group' (PartyTime) that points to CoolTunes (as shared from machine A), then machine C could join PartyTime, using by default the current local zone (i.e. zones are not even a key concept for synchronized playback). Then, machine C could define a shared Zone to enable transcoding and streaming to machine D, which either can't see the library or can't play its formats. Realistically, it may be practical for machine A to define the shared Zone's exclusively since it is sharing the library. But any machine should be able to define and share a playback group and join such a group without having to fuss with remote zones and media servers. There may be some features that have to be associated with the machine that shares a particular virtual library.