Live data from Hacker News

Show HN: Low-latency jamming over the internet

sub.live

81–90 of 124 posts

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

#81
post #32

Earlier quoted context omitted.

The suggestion of a P2P mesh is only if you physically could set that up. Otherwise, using Ethernet + Fiber connection should be good enough for most. Only if you really wanna lower the latency should you invest in additional hardware.

You can play with Wifi - it's OK - but you get probably 5-10ms better latency with Wired LAN. Also I think you have a lower tolerance for latency of your own actions vs the latency of another person's.

Wifi might not be too bad, though it can spontaneously degrade badly if you get interference. Not great in the middle of a jam!

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

#82
post #3

Thanks for making this. It looks worth giving a try. Some friends and I get together roughly weekly using Jamulus. We're playing mostly jazz standards. We have gotten latency down into the 20 ms range, when we are all in the same town. That's the ping time. Add another ~ 40 ms that seems to be eaten up by my local computer and wired home network. With that said, online jamming is hard work . I'm the bassist. Fortunat…

I had a look into how Jamulus works under the hood. It’s more of a hub and spoke model with the central server receiving, buffering and resending the stream out to each client. This has some advantages (kinder to bandwidth especially as the number of clients increases) but it does mean that there are two sets of recv buffers (server and client) which need to be deep enough to avoid too many missed packets due to jitter. My personal experience was that even when running it all on a lan I couldn’t get much below 16-20ms with an ideal near zero latency network. Once you add in geographic latency and internet jitter then it goes up considerably.

(Full disclosure: Weepy and I played with Jamulus then he had a crack at building sub.live)

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

#83
This is super cool. I’ve been formulating a similar idea for a while now. I’m building a desktop utility for guitarists using clojurescript and Tauri. I also wonder if this can also capture ASIO audio streams in a useful way? My goal was to do something like that to allow streaming of processed audio.

Some differences in what I was planning and accompanying thoughts:

Clojurescript. I do like that it’s using Svelte, I just wanted more idiomatic support for datalog stuff for the purpose of building metadata-driven music theory tools. Svelte is super cool though, and is my go to JS tool right now. There’s always Datalevin, a portable datalog implementation that I found recently. Currently I’m using a locally running XTDB instance for development, but for the final shippable I may switch to Datalevin. If anyone is interested in doing some similar you could try XTDB over http or figure out a nice way to interface with Datalevin from other languages.

Electron -> Tauri. Better native feel and the ability to hit Rust code directly. May not be worth it for this project since it seems like C++ is being used for some stuff. But for me Rust is a better fit. As a side note I think the Tauri team is working on support for interchangeable back ends, so soon you could replace Rust with Go or whatever. Tauri also makes including accompanying binaries easy. Not that I’m saying electron doesn’t, I have no idea.

Capturing ASIO streams. Super important for getting good sound for most people, allowing people to play audio through interfaces and mixers while still capturing it. I’m not expert in ASIO or audio streaming, but from my understanding capturing ASIO streams directly is tricky. Reastream (a reaper plugin) is the only thing I’ve found that lets this happen, and sadly it doesn’t work well with other DAWs. Why this would be useful IMO: people can stream audio while still listening to the processed output through whatever means they already do. Guitarists could process audio in a DAW or plugin and both listen to and stream that audio. People using DAWs can stream the output of the DAWs master channel without compromising how they listen to it. I’m not saying sub.live doesn’t accomplish that, I just think it’s important either way. Typically this is the missing link that makes other methods of audio streaming difficult.

Open source. Makes me sad that it isn’t. Could have been a good building block and I definitely would have tried to be involved right away. Feel free to correct me if this is actually open source and I just misunderstood.

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

#85
post #69

I think https://endlesss.fm got the approach to jamming over the internet right. Instead of trying to reduce latency (which you simply cannot do beyond speed of light) endlesss implements a shared “multiplayer” 8 track looper. Jammers add layers to the loop, which has a clock and supports sync via ableton live, external audio input, etc. Plus, every addition to the looper is saved/versioned. You can move backwards th…

NINJAM also works on the same principle: https://cockos.com/ninjam/ > The NINJAM client records and streams synchronized > intervals of music between participants. Just as the > interval finishes recording, it begins playing on > everyone else's client. So when you play through an > interval, you're playing along with the previous > interval of everybody else, and they're playing along > with your previous interval.

Ninjam is a bit different, in that its not a looper. The timing is offset to keep music sounding in sync to all clients, but what you play plays once and does not loop. In endlesss phrases will loop until they are changed or removed.

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

#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 that no other software was suitable, and also that it's the first of its kind. Both of those statements are not accurate: there is nothing innovative in sublive that isn't in any of the apps listed below. Props to the developer though for scratching an itch.

https://en.wikipedia.org/wiki/Comparison_of_Remote_Music_Per...

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

#87

Earlier quoted context omitted.

Yeah, the hop to the internet exchange point is the main issue with DSL or cable. I live in a major city and it takes around 10ms to hit the internet exchange point (using Ethernet the LAN latency is neglegible) and thus I get a minimum of 20ms or so just connecting to a server hosted by someone in the same neighborhood. I've actually tried this experiment with some of my nearby friends - pinging each other's public…

Why does fiber have lower latency to the exchange than copper? That surprises me. I thought that ISPs generally run fiber for most of the distance, and coax is only used for the last few hundred meters. The speed of signal propagation is actually faster in copper than fiber, but nobody (afaik?) does long runs over copper so it’s a moot point.

Yes the ISP runs fiber to the DSLAM or the CMTS, and copper is used for the final hop to your home. The latency comes from the buffering and processing required to get a clear signal over copper - for DSL I think you can get in a perfect scenario 7ms or so with fastpath, more if you use interleaving. For fiber you can pretty much treat it as like an Ethernet connection, with latency determined almost solely by distance.

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

#88
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…

[deleted]

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

#90

Earlier quoted context omitted.

Ah, it's possible analog31 isn't using ASIO card, I assumed they are as they seem to have tried to jam before so also assumed they were a musician and I haven't met many who doesn't use ASIO in the first place.

Ah, that's interesting. I'm using a USB audio interface. It claims to be ASIO compatible. Oddly enough I tried the same interface in different computers, and have tried other computers, but haven't dug much further than that. I've also tried all of this on a decent Ubuntu box, and I've now got it running on a Raspberry Pi 3 since the overall latency has been more less the same in all cases. We're all analog musicians…

You need to switch the drivers from WDM to ASIO. Most DAWs have this as an explicit choice with WDM as the default.
Post reply on HN