Earlier quoted context omitted.
any pointers to open implementations of those two?
AES67 is just an interoperability standard, it's more of a device level protocol than anything. You buy AES67 compatible gear for your application, then use the vendors' tools like Dante Virtual Soundcard (so you can essentially treat the networked audio system as a normal soundcard on your machine through CoreAudio/WASAPI/JACK/etc). It's actually pretty great, most of the time there's no need for a separate API just…
Show HN: Roc – Real-Time streaming over the network
11–20 of 21 posts
Re: Show HN: Roc – Real-Time streaming over the network
#12Earlier quoted context omitted.
AES67 is just an interoperability standard, it's more of a device level protocol than anything. You buy AES67 compatible gear for your application, then use the vendors' tools like Dante Virtual Soundcard (so you can essentially treat the networked audio system as a normal soundcard on your machine through CoreAudio/WASAPI/JACK/etc). It's actually pretty great, most of the time there's no need for a separate API just…
Doesn't Dante also require proprietary hardware?
Re: Show HN: Roc – Real-Time streaming over the network
#13What is the latency? I don't see any latency numbers listed on the linked site. Latency would be my number one concern when using software like this.
You could connect multiple clients to stream music to a single server (or multiple servers if you wanted to); the server kept a list of pending audio buffers for each client, mixing them all together into a ring buffer that gets spat out to portaudio. If a client underran, it simply missed that ring buffer rotation, and it "fell behind" by one buffer length (we request the minimum latency from portaudio, so this is usually measured in single-digit milliseconds). That would cause a few crackles and pops in the first second or two as the natural jitter of the network caused the client to underrun a few times, but then it would stabilize. (This didn't bother me much, as I usually was playing silence when I first connected it in any case).
In my experiments, the overall system latency was pretty close to the perceptual limit, I would estimate around 10ms, streaming over wifi from my laptop to a raspberry pi.
Re: Show HN: Roc – Real-Time streaming over the network
#14I'll definitely be giving this a go!
Re: Show HN: Roc – Real-Time streaming over the network
#15Re: Show HN: Roc – Real-Time streaming over the network
#16What is the latency? I don't see any latency numbers listed on the linked site. Latency would be my number one concern when using software like this.
https://roc-project.github.io/roc/docs/manuals/roc_recv.html
Re: Show HN: Roc – Real-Time streaming over the network
#17This is exciting. About 5 years ago I tried to set up a home-made Sonos clone by using two Raspberry Pis to stream synchronised audio across my network. I did get it to work, but it was a huge hassle finding the particular combination of PulseAudio configuration flags to use, and I had to set up a dedicated wireless network for the bandwidth because it fell over if I used compression. I figured the best approach woul…
[0] https://github.com/badaix/snapcast [1] https://github.com/librespot-org/librespot
Re: Show HN: Roc – Real-Time streaming over the network
#18Re: Show HN: Roc – Real-Time streaming over the network
#19What is the latency? I don't see any latency numbers listed on the linked site. Latency would be my number one concern when using software like this.
You can choose the target latency. Presumably, the larger that value, the less effect dropped packets and network jitter have on the quality of the output: https://roc-project.github.io/roc/docs/manuals/roc_recv.html
You can as well configure the FEC block size (it should be smaller than the target latency), the length of network packets, the length of internal audio frames in the pipeline, and the resampler window. And also the I/O latency, e.g.PulseAudio buffer size. So basically you can configure all (or almost all) parameters that can affect the resulting latency.
I'll document these parameters and their configuration a bit later. (Currently you can find all of them in the man-page in in the API, but there is no overview page that explains how exactly do they affect the total latency).
Re: Show HN: Roc – Real-Time streaming over the network
#20Wasn't there a way to do this with Jack? Ah yeah, there were a few attempts.. http://jackaudio.org/faq/netjack.html