Updated: 4 days ago
Online music jam is a common trend these days.
Many are the reasons for musicians to look for a service that allows them to jam online. Getting the whole band and the gear in one place is hard. Times might not suite because of work and other commitments. And in more recent times, we're all stranded at home for a while...
So unsurprisingly, demand for online livestreams grew quite dramatically over the past few weeks, something we covered in a recent podcast episode.
That suits those who want to get their music out, but what about bands who want to jam and practice together ?
In this article we look at a few services who claim this can be achieved with relatively low latency.
What is the gear required?
It will vary a bit depending on the case, but for the most part you will need:
· a computer (Mac or PC)
· a high-speed internet connection such as fibre, DSL or cable
· connecting your computer to your router via an ethernet cable - avoid wi-fi
· an audio interface
· Headphones with microphone if you want to be able to chat
· Cameras are optional and since the focus is on the music, I would not push my luck by adding video to this unless it's really necessary
So clearly the same gear you use for recording on your home studio should be enough.
In our case here I've used the gear below which you can find at Amazon:
Guitar connected to the Apollo via the outputs of the Line 6 Helix so I could jam using my preferred tones.
The main issue: latency
There is no way around this. For this to work you need low latency from one musician to another. In a rehearsal space, you are all listening to each other via direct sound waves, so unless the space is gigantic the latency is virtually zero. But over the internet you will have the compound effect of your interface, their interface, and the Internet connection between you, in addition to whatever other processing the service you are using might have.
The Internet latency will be a function of the distance between musicians. This is due to the way in which it is all connected; if you're in the same city you have a better chance of experiencing tolerable latency when jamming online.
So what is the tolerable threshold ? According to research I've done over the years when recording with various interfaces while listening to the 'wet' signal live, anything above 20 to 25ms starts becoming very noticeable. As you will later see this is highlighted in some of the services I've tried.
The formula for the total one-way latency when jamming with another musician online is:
(your audio gear latency + their audio gear latency + round-trip Internet latency) / 2
So it's easy to see that if your gear and their gear combined are close to 40ms together you have problems regardless of how close to each other you live. Step number one then is to go for low latency gear if you can.
See this article on the RME Babyface Pro vs the Universal Audio Apollo Twin for more info, but keep in mind that inside the DAW you can adjust the buffer size (with the trade-off of possible audio glitches) to compensate.
On the services I will explore here this is controlled by the service.
A network ping generally provides the RTT or Round-trip time, which gives us the round-trip Internet latency.
The service speedtest.net allows you to measure the ping time between you and the server you're connected to, generally from your provider. I have NBN in Australia with Vodafone and the ping is generally between 7 and 8 ms.
The service wondernetwork shows the ping times between cities. I've captured a snapshot for some of the cities in Australia, with some other cities from overseas.
City to City Ping
To make things more challenging, consider that the packets of data need to go from your computer to the server of the service you will be using for jamming, but the same applies to the other musicians.
So the total round-trip Internet latency figure from the formula above has the compound effect of your connection and ping time, and their connection and ping time.
Clearly jamming with someone overseas is not going to be feasible. Melbourne to Melbourne or perhaps Melbourne to Sydney (~13 ms ping) is as far as I can go without significant latency issues. And this is considering reasonably good audio interfaces, and direct connection to NBN.
Before I go into the rabbit hole of open source services that require a specialised installation, I've decided to try existing services, and JamKazam seems to be one of the first ones to appear on a google search.
The whole look and feel of their website and the app (which exists for Mac and Windows) and the fact that the YouTube tutorials are over 5 years old make me think that this is not an updated platform. Having said that, when you trigger some of the features inside the app you get a message stating that they are working on upgrading their servers due to recent demand - clearly there's an opportunity here, right ?
First step is to create a free account. With that done, we proceed to the configuration, which basically consists of performing some network tests and then configuring the audio interface. I wanted to have a stereo input for guitar, a microphone to chat, and the return audio in stereo on my headphones or monitors. Upon doing that the service measures your gear latency (7.29 ms in my case).
JamKazam Test Audio Gear
I've then proceeded to run a solo session to make sure everything was working. For that I've muted the return channel of my guitar sound back into my headphones on the Apollo, as I wanted to hear back from their service, not the direct sound. In a solo session the latency was negligible.
JamKazam Solo Session
Next, you can join existing sessions or start your own public session and invite other people. When you check the sessions online, it gives you an estimate of the one-way latency, if available. The issue here is that there was no way to search for 'local' jams, and the ones that popped up on the screen were primarily in the United States, which would be a no-no for latency - unless you're stateside of course.
I would like to invite musicians in the US to try this out and contact me to share results. I haven't managed to find any sessions in Australia yet, so I jumped to the next tool I wanted to try.
Running Jamulus requires a bit more technical knowledge so I've written this specific article on the subject. It's open source and free to use. Once installed, I proceeded to run a session on one of my computers as a server and another session on the same computer as a client. I then proceeded to run it as a client on another computer. What I wanted to do was to jam with myself to test the best case scenario for latency: two computers in the same network.
Of course this cannot be done via wi-fi as explained above, so I dug up an old router (my computers are physically distant from my main router) and connected the two computers.
On one of them - the server - I've directed the output of Logic Pro X, with a drum and click track, as being the input 'instrument'. I then plugged my guitar to the client computer, which reported latency under 20ms from the server, and was able to play against the drum track.
But this was expected: the 'drummer' cannot hear me, so even if the delay was massive it would not matter, I was playing at the client side only! It then occurred to me that I should play at the client side, but listen back at the server side (where the drum track is playing) and see if this affects my playing - if it sounds that it has a perceivable lag. Not at all, I was able to play on time, with the beat and with the click as if I was hearing the direct sound of my guitar. In fact I was hearing it go through the client computer and then to the server, with no noticeable lag.
This of course changes once you go outside your network. I tried a few servers in Australia including one that I set-up for jamming with a friend in the same suburb. In this case the latency went from acceptable to problematic in a few cases, which means that your best shot at
Jamulus is to try to set up your own server (home or cloud) and keep all musicians in the same location, same city, as close as possible.
Jamulus Session in Progress
Even better if you have access to fast audio interfaces and good computer hardware - every bit counts.
Further updates that deserved a mention on the article:
· I've successfully tested with a colleague in Adelaide (so not exactly 'adjacent' cities, there is a fair distance between Adelaide and Melbourne) and it worked reasonably well.
· I've also jammed with a friend from Melbourne - same suburb - and a screenshot of the latency he was experiencing can be seen below. I played a regular beat and he was able to follow it. To me he sounded well on time, so enough for a 2 or maybe 3 person jam.
Jamming in Melbourne
Months after this article was written, I decided to dedicate a whole article to JackTrip. Follow this link to read more. There is also a podcast episode where I explain this in more detail.
Other services at the time of writing, with a brief comment of what it does and what are the caveats:
· NinjaM - open source, used by services such as Jammr and Jamtaba. The caveat here is that is not really real time or live, the server plays a beat for a segment specified by the user and musicians play following the beat but listen the past recordings of one another from the previous segment.
· eJamming doesn't seem to be active anymore
· ConnectionOpen 3.0 is an amazing idea, but it's for one-on-one collaboration during recording of music or podcast, not for online live jams.
· Since the article was written I was approached by many people who have used SoundJack with good results, so I'm adding the links here if you want to check it out.
Online music jam is a challenging topic. The best 'lightweight' solution I've found to date is Jamulus, and I will keep testing and finding ways to optimise it.