Live data from Hacker News

Show HN: Low-latency jamming over the internet

sub.live

101–110 of 124 posts

Re: Show HN: Low-latency jamming over the internet

#101

I'm guessing that most people reading this are not familiar with some of the other options available for this kind of thing. In particular, they likely don't know about Sonobus: https://sonobus.net/ (and that's likely because it's libre software and the developer doesn't really do marketing)

Wow!! I'm one of those people - TIL about Sonobus. Thank you for that, because it's amazing, how-did-I-not-know software. With iOS and Android builds, too!

Re: Show HN: Low-latency jamming over the internet

#102

This is very cool (former touring musician turned software engineer here!) I'm curious about the networking/UDP side of this. How are you handling retransmits? Do you treat this like a video game would and just keep sending the latest data? Or doing something more advanced like forward error correction?

no retransmits - Opus handles a degree of packet loss pretty well. Not using FEC as it adds extra latency.

Re: Show HN: Low-latency jamming over the internet

#103

I'm guessing that most people reading this are not familiar with some of the other options available for this kind of thing. In particular, they likely don't know about Sonobus: https://sonobus.net/ (and that's likely because it's libre software and the developer doesn't really do marketing)

Wow!! I'm one of those people - TIL about Sonobus. Thank you for that, because it's amazing, how-did-I-not-know software. With iOS and Android builds, too!

And it's also available as a VST plugin!

Re: Show HN: Low-latency jamming over the internet

#104

I'm guessing that most people reading this are not familiar with some of the other options available for this kind of thing. In particular, they likely don't know about Sonobus: https://sonobus.net/ (and that's likely because it's libre software and the developer doesn't really do marketing)

I was about to mention Sonobus. Fun fact: under the hood it uses a fork of my AOO library (https://git.iem.at/cm/aoo/-/tree/develop). AOO is still alpha but I'm hoping to release a stable version till end of the year.

Re: Show HN: Low-latency jamming over the internet

#105
post #74

Earlier quoted context omitted.

And that feature adds ~20 msec more latency

You must have set it up wrong. It doesn't add any latency, but you do need a higher bitrate to get similar quality.

I googled "opus packet loss" and found https://www.asterisk.org/asterisk-opus-packet-loss-fec/, which says "an Opus encoder can embed redundant data about the preceding packet in-band in the current packet". That method would cause 1 packet of delay. Are you using something different, or avoiding the delay through another method like tiny packets?

Re: Show HN: Low-latency jamming over the internet

#106

Hey @weepy. Awesome project! As a webrtc dev - interested to hear about your choices around opus packet durations, FEC percentages, ARQ strategies, jitterbuffer length and packet redundancy.

I used the standard 2.5ms. I know you can go lower if you want, but then you need a higher bitrate as it's "custom".

I turned off FEC as it adds latency.

Jitter buffer right now is just user controlled. A bit lame, - I should make it automatic, but need to get the right heuristic. With a LAN connection, the buffer can be as low as one or two packets.

I don't use any packet redundancy either and there's no ARQ as if you have to ask for a retransmit you've already lost the war!

How about you ?

Re: Show HN: Low-latency jamming over the internet

#107
post #89

>”We've been able to achieve sub 20ms latency from UK to Denmark - more than 1000km” It’s pretty solid given that the speed-of-light would like 3.3ms to travel that same distance.

Honestly I was a bit blown away when I got it working the first time ! It kind of mental that I can capture audio and compress it - send it through all these layers and machines - and receive it 1000km away 20ms later. All on consumer grade internet.

Re: Show HN: Low-latency jamming over the internet

#108
post #45
post #41

It's good that latency is considered to be so critical, but for the same reason I'm sceptical that this would work well for the majority beyond quite local ranges with very good internet connections i.e some kind of fiber... which most people don't have, although I realise a lot of the tech crowd is unaware of this (most of the worlds user end points are some kind of DSL or cell network with a 20-40ms minimum). If an…

Actually I can jam with ease with my friends in London from Denmark. That's over 1000km. And if you don't believe me - check the testimonials on https://sub.live ^_^ Also you have a much lower tolerance of latency for your own actions that other people's. I'm hopefully going to record a video this weekend to show everyone!

Also I live in a village in Denmark near Aarhus. I believe my connection goes via Copenhagen which is actually the wrong direction! Though it is true that Denmark is very well connected.

Re: Show HN: Low-latency jamming over the internet

#109
post #93
post #86

I may be missing something but this appears to me to be a WebRTC application. It is very easy to build something like this using any modern browser's WebRTC APIs, just disable audio processing in the media constraints and munge the opus SDP to stereo, maybe play with the network buffer setting if you want to lower latency but the audio hardware and physical distance is going matter more there. The developer states th…

It uses WebRTC for the video, but the audio latency of WebRTC is too large and uncontrollable. As stated in the post, the audio uses a custom C++ UDP solution. As far as I know it's the first video calling app with very low latency audio.

How do you deal with firewalls in that case? Sonobus has a similar problem that if you don't have accessible NAT you can't connect. You need a relay or central server which can get really expensive!

Re: Show HN: Low-latency jamming over the internet

#110
post #93

Earlier quoted context omitted.

It uses WebRTC for the video, but the audio latency of WebRTC is too large and uncontrollable. As stated in the post, the audio uses a custom C++ UDP solution. As far as I know it's the first video calling app with very low latency audio.

How do you deal with firewalls in that case? Sonobus has a similar problem that if you don't have accessible NAT you can't connect. You need a relay or central server which can get really expensive!

Basically similar issue to Sonobus. Relay could work buy it probably adds latency and it certainly adds complexity. I may know a way to improve some NAT configurations but need to do more research.
Post reply on HN