Online Music Collaboration:
Part 1: The Jam Session
Music Streaming on the Net: A Primer and Best Practices
By: John May, Dwarf Star Studios
Following up on my article a couple weeks ago about streaming your musical performances to your listeners on the internet, another great technology application to consider taking advantage of is collaborating with your fellow musicians remotely, both through jamming and rehearsing in real time and collaborative recording over a few days or weeks.
Many options exist to make this a reality, allowing you to work when individually convenient, play with others around the world, and maintain your social distancing while still making music.
For part 1 of this 2 part series we’re going to start with real-time jamming and rehearsals, and it’s distant cousin, “near real-time jamming.”
Real time jamming involves musicians being connected to the internet at the same time, all playing together at once. There are a number of computer programs and services you can use to accomplish this, including Jamkazam and Jamulus. Another option is Instagram Live, which allows for two people in two different locations to stream together.
When considering real time jamming, latency is going to be your biggest concern. “Latency” is the delay imposed by the internet, as well as your computer’s processing, on the time that you hear what you’re playing vs. the person on the other end hears it. Latency is measured in milliseconds (ms), and becomes very apparent to humans over 25ms. Unfortunately, keeping latency to under 25ms is near impossible, so the best one can do is minimize any factors and do your best to anticipate the delay when playing.
To minimize your network latency, always connect to your router via ethernet instead of wifi if at all possible. You’ll want to use as high quality of a network connection as you can, noting that the faster the connection the less latency it will exhibit. To minimize the latency your computer adds, use the built-in audio (microphone, line-in and headphone jacks) instead of an external audio interface. While this may seem counter-intuitive, an external interface adds time required for the signal to get from the interface to your computer and back again.
Every little bit helps and with these suggestions you should be able to get your overall latency down to 50 to 90ms. Sound travels at approximately 1 foot per millisecond, so this will be the equivalent of playing 50 to 90 feet away from someone in real life. If this sounds less than ideal it’s because it is, and you will definitely notice this delay when jamming. It is possible to make it work and you’re going to have to put effort into staying in time together when playing, but at least it’s something.
Jamkazam - www.jamkazam.com
“Revolutionizing the way musicians connect, play, learn and earn. Across a city or across a nation.”
Jamulus - sourceforge.net/projects/llcon/
“There is a Jamulus server which collects the audio data from each Jamulus client, mixes the audio data and sends the mix back to each client. Jamulus is Open Source software (GPL, GNU General Public License) and runs under Windows (ASIO), MacOS (Core Audio) and Linux (Jack). It is based on the Qt framework and uses the OPUS audio codec.”
Near Real-Time Jamming
To account for latency issues with real-time jamming, applications such as Jamtaba, Jammr and Ninjam (built into the Reaper recording software) use a unique solution that actually increases the delay between you and your fellow bandmates. This is done by forcing everyone to play to a particular tempo, then setting a loop length of a number of beats. Once your play through the loop length of beats, that info is sent to the other players who hear it one loop length delayed, and you hear what they play one loop length delayed. This allows time for the software to get everything properly in sync without needing to be concerned about internet and computer latency.
This does, quite effectively, solve the latency problem when playing, as well as allows for higher quality sound. The trick, however, is to always play the same chord progression during your loop length. If one person changes the progression, the rest of the musicians won’t hear it for at least one loop length later and it will take another pass for everyone to get back in sync on the new progression.
While this may sound confusing, if you just put the technicalities out of your head and play it can feel like you’re jamming in real time, even though that isn’t really the case. You can also set your loop length quite long, which allows for including an A and B section in your loop with some planning.
Jamtaba - jamtaba-music-web-site.appspot.com
“A free (and open source) software to connect in ninjam servers and play music jam sessions with people around the world.”
Ninjam - www.cockos.com/ninjam/
“NINJAM is open source (GPL) software to allow people to make real music together via the Internet. Every participant can hear every other participant. Each user can also tweak their personal mix to his or her liking. NINJAM is cross-platform, with clients available for Mac OS X, Linux, and Windows. REAPER (our digital audio workstation software for Windows and OS X) also includes NINJAM support (ReaNINJAM plug-in).”