I'm baffled by the difficulties of audio over Ethernet, but defer to your technical knowledge. Slimdevices seemed to manage it at least 10 years ago. How did they achieve it? All I ever understood was that the server doesn't know it's sending audio, just data. Which, to me, is as it should be. I was under the impression that there was a buffer and that the player told the server when it was filling up or emptying. What's wrong with any of this?
The difficulties are in the "low latency" part.
I don't know what slimdevices did 10 years ago, but it was probably either RTSP based or plainly HTTP based - similar to "file download". This is perfectly possible and if HTTP is used (RTSP itself being HTTP-esque), congestion control is done by TCP and the transfer rate adjusts to the playback rate. The problem is that this really works only for static files and things like the URL need to be entered via some interface on the receiver.
I think it defines rather more than that.
For AV, using uPnp, a 'controller' commands a 'renderer' to collect and render a file from a 'server'. So the renderer has complete control. I think uPNP goes wrong with library management and and other non-audio related ergonomic issues.
Maybe - DLNA defines the controlling protocol as HTTP, but as RTSP is very similar to HTTP in terms of headers, request/reply and error codes, etc., it might be just misunderstanding on the DLNA site. If it is indeed renderer-controlled, it will likely use the same TCP congestion control mechanism as simple HTTP file download. However you can't just apply a high level concept (renderer pulling data) to a lower level protocol simply because "it makes sense".
For Squeeze I think the server can request the current buffer status from the player before sending more audio, so data flow is effectively controlled by the player.
How would that work? Why should Squeezebox be different from any other RTSP/RTP setup?
I think that some of you are mixing thing up and making a apple and oranges comparison.
When discussing Ethernet there are two scenarios.
1. Ethernet is used between server and media render (streamer).
2. Ethernet is used as a data connection between streamer/computer to DAC equivalent to USB, SPDIF, Coax.
The FDAC is not a steamer else it would have to have a streamer build in and I believe this is out of scope.
Right, but both are referred to by people as "network playback" (or similar).
"Streamer" is just a generic computer running specialized software doing a specific job that would be too mentally complex for the person. The same job can be done by a dedicated microcontroller (like the one JohnW is going to use for wifi/bluetooth), so implementing one into FDAC (or rather some future DAC given current timescales) could be as simple as "just" adding a SoC solution and slapping on an ethernet port.
I'm excited about AVB because it's finally somewhat complete solution for audio networking in the
real sense (2nd scenario) - very low latencies (dedicated 802.1Qav ASICs), bandwidth guarantees, distributed clock, etc. -- basically the stuff really relevant to a DAC. Imagine the possibilities for something like FDAC master/slave setup - you could have slaves around the house with one master providing the clock, to which your computer is locked (and is streaming the music) with you being able to control the volume and connect/disconnect slaves from your phone, lock them onto a different clock and a different computer, etc.
All this not just limited to some music playing app, but to everything - movie sounds, you jamming the guitar, everything properly low latency & real time.
Slapping a mini computer inside the DAC (for DLNA/RTSP/HTTP/whatever streaming) is just boring and doesn't make much sense to me besides the whole "one box rules them all" idea.
![Smile :) :)](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
(But I can indeed see some convenience benefits.)
Beware! Before you realize it, it's going to have a DVI port, a web browser - just in case you want to check the forum without powering your "real" computer!
![Big Grin :D :D](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)