On Monday November 9th, the Melbourne Section of the AES held a Zoom call for our regular bi-monthly meeting, with a strong attendance of more than twenty members and visitors.
Vice-Chair Paolo Menolotto introduced Fabio Marraccini to talk on the topic of online music jamming and rehearsals.
Fabio started his presentation with an explanation of the difference between online jams – where playing together using low latency connections is emphasised for spontaneity – and remote collaboration – where the recording quality and synchronization are paramount, so it’s often individuals playing alone to a reference or click-track.
He then did a quick run-through of the software available for online jamming, including Jamulus, JamKazam, JackTrip and SoundJack. He commented that he had tried and discarded JamKazam because it had a client-server model with servers based in the US with unacceptably high latency for Australian users. He indicated that the open source Jamulus allows users to create their own servers, eliminating this problem. He said that he has been now mostly working with Jamulus, but plans to dig more deeply into JackTrip and SoundJack in the future.
Fabio then displayed some Google Trends graphs showing how searches for “online jam session” and “jamulus” closely tracked “coronavirus” and “lockdown” searches (slightly lagging), peaking just after March – indicating how the lockdown had driven renewed interest in this online activity.
He then discussed the bandwidth needs (approx. 200kbps per player), network latency (30~50 ms) and tools to ascertain network ping times, latency and bandwidth, like speedtest.net and WonderNetworks online ping tables utility.
To ensure minimum latency, Fabio suggested that a professional audio interface was preferred over the computer’s integrated audio – however the major contributor to latency would always be the network links between the participants.
Fabio did suggest that it is possible for musicians to adapt to latency in the sub-50ms range, citing the example of an orchestra where players could be 17 metres apart and would experience 50ms latency, and still be able to play in time.
He also warned that WiFi connections are normally unsuitable for this type of application due to the extra latency that they add.
Wired Ethernet is the ideal, but he also related that he had achieved excellent results with a pair of Power Line Ethernet adaptors.
The Jamulus system block diagram was then presented, and the client/server nature of the system was discussed, noting that the server can be running on your local computer.
For those who wish to dive deeper into the technical aspects of the system he recommended a paper by Jamulus developer Volker Fischer describing the system (see the link at the end of this Report).
Fabio also covered sound cards and drivers, and how Jamulus uses MacOS CoreAudio, ASIO in Windows, and JackAudio in Linux. He suggested that for the Windows case if you are using an older audio interface which does not have ASIO drivers, the third-party ASIO4ALL driver can be used (http://www.asio4all.org/).
He then demonstrated the basic routing for Jamulus inside a user computer, and discussed whether to use direct monitoring or not – suggesting mostly not. He did note that direct local audio can be useful where maintaining timing is super-critical (eg: for a drummer). He emphasised that it’s important that you not use both, as the combination of direct and delayed (round-trip) local audio will confuse.
He went on to demonstrate the software configuration – and the server listings available from Jamulus, showing his current configuration. He also displayed an example of the mixer-like user interface available to each participant during a session to control their local mix.
Fabio then covered some interesting use cases like using a utility such as Loopback (Mac) or Reaper ReaRoute (Win) to insert processing into the Jamulus session – for example from an application like Amplitube or from your DAW.
He then briefly covered routing out of Jamulus to enable recording or livestreaming – using something like Zoom for video and Jamulus for audio, both routed to a program like OBS to generate the feed.
Fabio also mentioned the Facebook group Jamulus WorldJam, where many experienced users share their techniques and tips with newer users.
He also covered the ability to use Cloud server services like AWS or Google to run a Jamulus server for times when running a server on your local machine is not practical, warning that attention does need to be given to where the physical server is located, so it does not add undue latency to the path.
Fabio concluded his presentation with some thoughts on the future, suggesting ways online jamming may evolve, leveraging new communication technologies like 5G and the potential evolution of other architectures and network provider partnerships. Will businesses evolve to provide services like virtual rooms, configured servers etc.?
He also drew the audience’s attention to a new Swedish startup called Aloha, who are promising zero latency(?) connections via 5G using dedicated hardware.
The evening finished with a Q&A session where a range of questions was fielded, as well as suggestions for alternative platforms (eg. Sonobus) and some contributions of user experiences.
We thank Fabio for a most interesting session, giving many of us an insight into a field we had not experienced to date, and many interesting leads to follow.
An edited version of the Zoom video is below:
The video is also available on YouTube at https://www.youtube.com/watch?v=-D_vpNsgQ9A
A PDF version of Fabio’s slide deck is available here
To check out Fabio’s activities and services his website is at https://www.audiogeek11.com
Jamulus website: https://jamulus.io
Hosting a Jamulus server on AWS: https://www.facebook.com/notes/jamulus-worldjam/howto-idiots-guide-to-installing-or-upgrading-a-jamulus-server-on-amazon-aws-lig/818091045662521/
Paper on Jamulus https://jamulus.io/PerformingBandRehearsalsontheInternetWithJamulus.pdf
Additional tips on equipment, audio routing, chord sheets: https://jamulus.io/wiki/Tips-Tricks-More
Server on Rasberry Pi: https://jamulus.io/wiki/Server-Rpi
Opus Open Source Codec: https://opus-codec.org
(Highly recommended as it discussed Client-Server and PtP)
Paper on SoundJack: http://www.carot.de/Docs/TMT08.pdf
Sonobus – a potential alternative to Jamulus: https://sonobus.net/
The WorldJam Facebook Group: https://www.facebook.com/groups/JamulusWorldJam
Latency and Speed tests: https://wondernetwork.com/pings & https://www.speedtest.net/
Alternative ASIO driver: http://www.asio4all.org/
(for older Windows interfaces)