I’ve been thinking about the possibility to connect remote musicians.
As we are going through these crazy pandemic days, most of us are spending our days at home.
Wouldn’t it be nice to have a possibility to share the same audio pool with our remote friends?
For instance, two (or more) musicians, sharing the same audio pool together.
Musician A and B- streaming a live electronic jam
Musician C - streaming a guitar tune
Musician D - streaming voice
They could all listen to each other, on each end they have their own mixer, process effects on top of their friends stream.
I know that we can achieve this with readymade apps like zoom or skype, but wouldn’t this be nice to happen inside Rack? Of course there are connection delays and all that, and if we add clock sync there would be some related out of sync issues, but I think it would be fun at the same time.
I can program some bits with max, processing and arduinos, but this is so far away of my capabilities.
If anyone could share some thoughts about this possibility, or even if it already exists would be nice!
Cheers, and stay safe!
note: I have launched the same topic on Cycling forum
I suspect you’re about to get a lot of replies about latency problems…
I think you’d have to have one person who acted as the hub providing timing and then others who send non time critical information (melody and harmony and timbre related stuff) to that hub.
I think one of the best things going on in this space is the iOS app Endlesss, which just came out of beta this week. Here’s a demonstration of the beta from a year ago:
Perhaps something like this could be made into a Rack module.
Even if your friends are next door, the minimum round trip with no encryption, no audio encoding, and no WiFi is about 100-150ms. If your friend is in Los Angeles while you’re in New York, it’ll be 200-250ms. If you add any of those features it just gets worse.
So guitar and voice is out of the question.
But if you ignore that, you could just make an Icecast client module for VCV Rack and host an Icecast server. It could have stereo inputs for your audio and stereo outputs for both their audio and your correctly delayed audio. You’d want to listen to the delayed audio to get the same timing as your friend.
Although I haven’t tested it, you could try https://github.com/Iunusov/ShoutVST with VCV Host if you can set up an Icecast server.
I’ve heard a lot about Endlesss too in the Bobeats discord server. Reaper also has a dedicated “multiplayer” thingy called NINJAM.
Tbh i don’t understand at all how these work to remove latency XD but they might be interesting.
NINJAM is pretty cool. The way it works is that all incoming audio gets delayed by 1 whole loop length. So you hear your loop and at the same time all incoming loops from 1 loop ago. This way everyone gets a slightly different version of the jam, but it works well as long as you don’t need to follow a song structure.
Wow! Thanks so much for all the inputs about this topic!!
I was looking at Sonicgate video about Endless, it seems really fun to play with!
Now Ninjam seems to be what I was looking for!! This is really great!!
You’d probably have to add time codes and ‘delay lines’. Assign a leading musician that generates the base time code and assembles everything from the other musicians with the proper delays and sends out the final result.
That’s what I had in mind but I didn’t really express it as well.
There’s a Kickstarter for a Mac/Windows VST/AU version of this, and it’s doing very well. So in the not too distant future we can have this in our Host modules.