Jamulus
Jamulus is open source networked music performance software that enables live rehearsing, jamming and performing with musicians located anywhere on the internet. Jamulus is written by Volker Fischer and contributors using C++. The Software is based on the Qt framework and uses the OPUS audio codec. It was known as "llcon" until 2013.
One of the problems with music playing over the internet in real time is latency - the time lag that occurs while audio streams travel to and from each musician. Although the precedence effect means that small delays can be perceived as synchronous, longer delays make it practically impossible to play live together. A further problem is jitter, a type of packet delay due to changes in latency over time, which results in choppy or distorted sound. Long delays can even lead to packet loss. These can be alleviated by delay buffers or jitter buffers - but these then add to the overall round-trip delay, so need to be balanced.
Popular video conferencing software such as Zoom or Teams is unsuited to this task as the latency can be much higher. In addition, most such software is optimized for speech rather than music, so sustained musical notes can be misidentified as background noise and filtered out. Conferencing software is also often designed for one person to be heard at a time, to stop people talking over each other, but this makes playing music together impossible. In addition, conferencing software does not normally allow detailed setting of individual audio streams' volume or panning on the user side, both of which are integral features of Jamulus.
To reduce latency as much as possible, Jamulus makes use of compressed audio and the UDP protocol to transmit audio data. Total latency is composed of:
- network latency due to delays within the network - every 300km is responsible for at least 1 ms extra latency since the speed of light limits the data transport on internet.
- conversion latency - if analog-to-digital conversion or digital-to-analog conversion is not handled by special hardware, these conversions will add additional latency;
- audio latency from sound traveling through air, if the microphone and/or loudspeakers are not in immediate proximity. Every meter of distance adds around 3ms delay due to the limitation of the speed of sound.
Servers can be either public or private, the former being listed by "directories" from which users can choose a server with the lowest latency for them.
Usage
Already in 2018, Jamulus was attracting attention as a way for classical ensembles such as string quartets to rehearse at a distance, but its usage increased dramatically in 2020 due to the COVID-19 pandemic. In April 2020 it was being downloaded two thousand times per day, with the trend increasing. It was elected SourceForge 'Project of the Month' in June 2020. Jamulus Storband, Sweden's first "virtual big band" with over 20 members, also started that month. Many changes were later made to support larger groups, such as choirs with as many as 98 members as well as WorldJam, an initiative allowing musicians from all over the world to play together on a regular basis.Having a synchronized metronome for participants of a session can be key to helping musicians keep the pace of the song and be in sync with each other. Numerous online metronomes are available, or other OpenSource tools may be used: as one example, Sychronome uses NTP with a network time server to sync metronomes for each Jamulus client via smartphones.