How To Do Band Practice Online
Yes it is possible, just about, to do music together online but no, you can’t use Skype or Zoom or whatever. At least not on their own. As you’ll know if you’ve tried. There’s just too much Lag
Music is all about timing, and not only is there a delay between you talking and your band-mates hearing it in those video-conference apps but that delay is even variable. You couldn’t compensate even if you could compensate.
But as you can see from the video of our first proper online band-practice here, it can be done.
The key is of course the right software. And that software is a little open-source application called Jamulus. It is not fancy. It is not all that pretty. It doesn’t do video. It concentrates on one thing: Getting that lag down as low as it can go.
You will help the software by all being in the same city, for a start. The lag half-way around the world isn’t going to work for anyone.
You’ll all want fiber broadband ideally, and ADSL or cable internet at least. The fastest you can buy!
Everyone needs to download the Jamulus software and install it on their Windows/Mac/Linux machine. Then everyone connects to the same server.
But which server? Aren’t they all overloaded because of everyone having to stay inside because there’s a virus stalking the streets?
That is the beauty of open-source. You can just run your own!
You want a server in your city, as close to everyone in the band as possible. We used an Amazon Web Services cloud server. They have compute centers in a few big cities, and luckily for us London is one of them.
If you can all use the same ISP it’s going to help, and especially then you can maybe host the server in your home. Or rent one from that ISP themselves.
I spot-rented a t3-medium Linux machine for a few hours, installed the Jamulus software on it and ran it under the command-line with:
./Jamlulus -s -n
The “-s” says “Be a server” and the “-n” says “Don’t try and open any windows, this machine hasn’t got a graphics card”.
Then you just need to give the IP address of your server to your band mates and have them connect to it.
In Linux, it runs on JackD. You want to launch JackD with very low latency. That’s the “-p 128” here:
/usr/bin/jackd -dalsa -dhw:0,0 -r48000 -p128 -n2
Then run the Jamulus software.
Our bassist was on Windows and our Drummer and Guitarist are on Macs while I’m a Linux guy. So everything works cross platform, but I have no tips on whatever they might have done to tune it.
Everyone gets a volume-slider for each person in the band so they can tune their own mix. You see me turn up my vocals audio in the video here. That didn’t affect the noises in the other guy’s rooms.
You will have to find a way to mix your microphone and instrument sounds down into a single jack or USB input for input to the computer. My synth allows me to plug a mic into it. Think the rest have some kinda hardware splitters.
The software works by sending signals as fast as it can to the server, which forwards them as fast as it can to everyone. But the internet is a strange thing, and the bits of sound don’t arrive in the same order that they are sent. In order to not have any break in the sound, it has to store up a few of the packets of sound in a queue, slotting each bit of sound into the right order as they arrive and feeding the queue into the sound-card at your end.
If that queue is too long, you get lag and delay and can’t play in sync.
If that queue is too short, some of the sound arrives out of order and kinda sounds like it wobbles and chirps. Known as “jitter”. You have a slider to change the length of the queues.
With them set to about six, and an incredible 2ms ping to the AWS server, I was getting about a 40ms lag. The rest of the band broadly similar.
This is just about playable, but feels weird.
Our Guitarist Adds:
Oh. If only I had fibre and a 2 ms ping. That would have given me <10ms latency. As it was, I had a 15/20ms ping with my cable connection, for a 35/45ms round trip. Odd, but workable once you get used to it. Which didn’t take that long, really. Needs must and that.
That only gives you audio, and it isn’t enough. It really isn’t. So we run a Zoom meeting alongside it. I put the Zoom on a different Laptop. The bassist had his phone running the Zoom app and his laptop running Jamulus. I think the guitarist and the drummer ran the zoom just in a different window on the same machine.
The video is not in sync, obviously.
Thought y’all might want a few clues on how we managed it.
The guy who wrote Jamulus seems bemused and surprised at how his software which was getting like one download a month until last month has shot up in popularity coz everyone’s not able to get to band practice now and he may be a bit overloaded with support email.
He is not a big corporation.
So I thank him. Cheers dude.