JamRTC – WebRTC for Live Musicians
github.com
github.com
https://github.com/jminjie/fourhands
The benefit of this is that it takes no set-up for non tech users. The major downsides are that it's only 2 player, and only works for midi instruments.
On Fourhands you can actually achieve very low latency (<20ms) with WebRTC for somewhat close players on wired connections. If you're having latency trouble like your readme says, I'm guessing it's not the WebRTC part.
The experience is very nice.
And then there is regular JackTrip, which the author refers to in the FAQ, which is neither browser- nor WebRTC-based.
The project is called Midishare https://github.com/corytheboyd/midishare. The site is live but I am very much working on core functionality still. If you do want to try it just reach out, or hop on the discussion forum linked in the nav!
Some SDP munging in the clients can shorten Opus packets, which helps. If they're longer than 20ms things get ugly.
I tried using a swarm approach (full mesh of point-to-point WebRTC connections) for plain audio, no video. I got the latency down to about 70 ms transcontinental, but my musician alpha tester (brother) didn't go for it.
Let's get this to work!
Wired networking has less latency than wireless.
Sounds card and drivers add to the latency mix. Which is why Jamulus requires ASIO drivers (on windows at least) - the inbuilt mic on your laptop does a heap of processing to clean up etc, but adds to latency; unfortunately, if you remove this processing there's a lot of noise. A decent external sound card is pretty much required.
If you can isolate the sound of your instrument so you only hear it via the network (i.e. you're wearing isolating headphones), you can get away with more latency as your brain will compensate. That way, everyone will listening through the network, so everyone should be in sync (assuming the software compensates for different latencies). But this makes things really hard for vocalists or drummers, where isolation is really hard or impossible.
The upshot is that this is really hard for amateurs - I was trying to get something going with my community orchestra but gave up as half of them were on ipads or didn't know what an ethernet cable was, let alone an external sound card. Was tempted to look into building a raspberry-pi based standalone 'jamming' applicance, but then the lockdown ended and I lost interest. Still, exploring public Jamulus servers felt a bit like the early days of the Internet :)
ninjam/jamtaba - instead of minimizing latency, accept it and delay everyone in a synchronized way
endlesss - multiple people adding layers to an 8ch looper
It's still in early stage but fun and has video.
We are layering AI on top of all kinds of problems. It feels like the sync problem when latency is introduced is something that you could solve with some dumb AI.
Is AI solving sync part of the third wave for musicians composing over the internet in real time?
While you’re at it, have the AI predict images from the NASA rovers
It is also available as a VST plugin!
However, neither does prohibit non-colocated live music altogether.
This paper dives further into it more than I can anecdotally: https://online.ucpress.edu/mp/article-abstract/36/1/109/9206...
People seated at near field level at opposite corners may hear a 350ms+ difference in some instruments, but they may spread them out so that it just sounds like a reverb/wash of echoes.
For these kind of apps wear headphones and you cut around 3ms per meter you are away from your speakers, due to speed of sound.
It's much harder when you don't have that isolation, for instance when I play an acoustic instrument, I have to turn up my phones to drown out the acoustic sound. And it gets still harder if you hear that instrument by bone conduction, e.g., horns or voice. The band adapts by the "easy" instruments taking charge of the tempo and letting the other instruments float around a bit. Still, it takes a lot of concentration to avoid getting lost, and just doesn't sound as good as a live performance of a "tight" band.
The band members have agreed that it's better than not playing at all, but might not be a good listening experience for an audience. Not necessarily because the delays are perceptible but because it sounds like the band is struggling to stay together. Of course other things are happening as well, such as lack of visual cues.
Fortunately we're all "of a certain age," and between the weather warming up and us getting vaccinated, we'll be playing together again.