[Question] Conceptual direction #131
Replies: 9 comments
-
Hi, thanks for the interest! The primary goal is a library for developers that abstracts network transport and allows to write real-time samples to one end and read them from another end, hiding low-level details like maintaining latency, adjusting clock rate, handling duplicated and lost packets, etc. There are also command line tools allowing to do the same. They're mostly intended for developers or power users that prefer manual configuration. Another important goal is fully working PulseAudio integration, which is an example of an end-user solution, but not the only possible one. This is a good reality check for the project. I'm not familiar with Dante. Conceptually, it looks like Roc and Dante have some properties in common, however, there are notable differences:
|
Beta Was this translation helpful? Give feedback.
-
Thanks for this fast answer! This means that Roc will handle End to end transmission for me. |
Beta Was this translation helpful? Give feedback.
-
Multiroom synchronization is surely a suitable feature for Roc, however, it is not implemented or planned yet. Off the top of my head, we have some basis that will help with this:
However, currently there is no guarantee that two receivers would start exactly at the same time and would adjust the clocks synchronously enough. That is an interesting idea, and it requires some research and testing.
In general, it depends on many factors, in particular on the LAN type (Ethernet or Wifi), the access point type (in case of WiFi), the network load, the interference level, etc. Some Wifi networks I saw didn't allow latencies lower than one or even two seconds. I'm using a 200-300ms latency with my access point at home. Glitches still occur from time to time (say, once per ten or twenty minutes) because the whole packet stream is sometimes delayed too much for some reason. Ethernet, of course, allows a much lower latency. Also note that ALSA/PulseAudio may add from tens to hundreds of milliseconds, depending on your hardware. These numbers are very rough thought and require much more testing. Also, I don't yet understand the reason of the large delays on my access point (one hypothesis is that they're caused by the link layer retries). I'm planning a more serious testing after the 0.1 release. |
Beta Was this translation helpful? Give feedback.
-
Sounds great! Synchronization isn't needed in my case because one than more device in a room isn't one of my concepts of planning a multimedia system. And I think over multiple rooms the small difference between devices won't be that critical if all is set up with LAN. This project sounds promising for me. I'm a full time developer myself. Not that deep into such low level developing but familiar with .net and angular development. So with some work I'm able to implement your stuff and make usable solutions for my usecase. Thanks for the amount of informations. |
Beta Was this translation helpful? Give feedback.
-
200-300ms over wifi sounds promising by the way. |
Beta Was this translation helpful? Give feedback.
-
You're welcome. BTW, there were plans to add bindings for higher level languages, probably Python and Go. There were no plans for .NET bindings but contributions are always welcome. |
Beta Was this translation helpful? Give feedback.
-
For .NET binding there should be Windows support to make sense first. Maybe I will try to make it build on windows. |
Beta Was this translation helpful? Give feedback.
-
Great, but note that porting to Windows would require pretty much work: at least porting SCons files and reimplementing classes and functions under all "target_gnu", "target_posix", and "target_posixtime" directories. Windows port is not a priority currently, but I could help with porting after 0.1 or 0.2 release. |
Beta Was this translation helpful? Give feedback.
-
I will open an issue for that so everybody is able to share efforts about this. |
Beta Was this translation helpful? Give feedback.
-
Hello,
I'm looking into this for a while now and I have some question about the path this project is going.
Which aim you want to achieve?
Is this a solution which becomes something like a realtime multiroom audio solution for endusers?
Or will this be something like the dante protocol?
Or will this be something like a toolset to achieve such aims as developer?
Thanks.
Best regards,
Phil
Beta Was this translation helpful? Give feedback.
All reactions