Jamulus
Developer(s) | Volker Fischer and contributors |
---|---|
Initial release | 2006[1] |
Stable release | 3.11.0[2]
/ September 21, 2024 |
Repository | |
Written in | C++ |
Operating system | |
License | GPLv2 |
Website | jamulus.io |
Jamulus is open source (GPL) networked music performance software that enables live rehearsing, jamming and performing with musicians located anywhere on the internet.[3] Jamulus is written by Volker Fischer and contributors[4] using C++. The Software is based on the Qt framework and uses the OPUS audio codec. It was known as "llcon" until 2013.[5]
One of the problems with music playing over the internet in real time is latency[6] - the time lag that occurs while (compressed) audio streams travel to and from each musician. Although the precedence effect means that small delays (up to around 40 ms) 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 (perceived as a 'blackout'). These can be alleviated by delay buffers or jitter buffers (both of which are present in Jamulus) - but these then add to the overall round-trip delay, so need to be balanced.[7][8]
Popular video conferencing software such as Zoom or Teams is unsuited to this task as the latency can be much higher (Zoom recommends "a latency of 150ms or less" and jitter of "40ms or less",[9] and in some 2020 tests was shown to have an average latency of 135 ms; the "Audio poor quality metrics" for Teams include having "Round-trip time >500 ms" and "Jitter >30 ms").[10][11] 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 (although this can be alleviated to an extent via settings such as "Enable Original Sound"). Conferencing software is also often designed for one person to be heard at a time (the speaker gets 'focus'), 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 3 ms delay due to the limitation of the speed of sound.
Jamulus is client-server based;[12] each client transmits its own compressed audio to a server on the internet. The server mixes the (decompressed) audio stream for each user separately and re-transmits the individual compressed mix to each client. Each client has its own mixing console which controls its mix on the server.
Servers can be either public or private (termed "Registered" and "Unregistered", since Jamulus has no built-in user authentication mechanism), the former being listed by "directories" from which users can choose a server with the lowest latency for them.
Usage
[edit]Already in 2018, Jamulus was attracting attention as a way for classical ensembles such as string quartets to rehearse at a distance,[13] but its usage increased dramatically in 2020 due to the COVID-19 pandemic.[14] In April 2020 it was being downloaded two thousand times per day, with the trend increasing.[15] It was elected SourceForge 'Project of the Month' in June 2020.[16] Jamulus Storband, Sweden's first "virtual big band" with over 20 members, also started that month.[17] Many changes were later made to support larger groups, such as choirs with as many as 98 members[18][19] as well as WorldJam,[20] 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[21] uses NTP (Network Time Protocol) with a network time server to sync metronomes for each Jamulus client via smartphones.
See also
[edit]References
[edit]- ^ "Jamulus - Internet Jam Session Software / Discussion / Jamulus Software: Audio Latency in Windows Vista". sourceforge.net. 13 June 2006. Retrieved 5 January 2021.
- ^ "Jamulus/Releases/Latest". GitHub. Retrieved 5 October 2024.
- ^ Volker Fischer - Case Study: Performing Band Rehearsals on the Internet With Jamulus
- ^ "jamulussoftware/jamulus". GitHub. Retrieved 2020-11-08.
- ^ "Jamulus - Internet Jam Session Software / Discussion / Jamulus Software: The software name is now Jamulus". sourceforge.net. 24 February 2013. Retrieved 5 January 2021.
The old name "llcon" is now replaced by the new name "Jamulus" [...] The name llcon was introduced at the very beginning of the software development years ago.
- ^ jimamsden (2020-04-04). "Remote Jamming with Helix and Jamulus". jimamsden. Retrieved 2020-12-25.
- ^ "What is Jitter?". Webopedia. 4 June 1998. Retrieved 17 April 2021.
- ^ "Talk network requirements". Zendesk help. Retrieved 17 April 2021.
- ^ "Meeting and phone statistics". Zoom Help Center. Retrieved 17 April 2021.
- ^ "Critical Services Report: Video Conferencing (UK) | SamKnows". sk1-4609-seo-metadata.samknows-com.cd2.samknows.com. Retrieved 17 April 2021.
- ^ "Use CQD to manage call and meeting quality in Microsoft Teams - Microsoft Teams". docs.microsoft.com. Retrieved 17 April 2021.
- ^ Marraccini, Fabio (2020-04-06). "Jamulus: configuration, usage and running a server". AudioGeek11. Archived from the original on 2020-10-22. Retrieved 2020-11-08.
- ^ Kurtz, Holger. "Synchronizität in Zeiten des Streamings | Ausgabe: 2/18 | nmz - neue musikzeitung". neue musikzeitung. No. 2/2018. Retrieved 8 January 2021.
- ^ "Jamulus - Internet Jam Session Software / Discussion / Open Discussion: Effects of the Corona virus on Jamulus". sourceforge.net. Retrieved 2020-11-08.
- ^ Kurtz, Holger. "Noch ruckelt die digitale Konzertbühne | Ausgabe: 5/20 | nmz - neue musikzeitung". neue musikzeitung. No. 5/2020. Retrieved 8 January 2021.
- ^ "June 2020, "Community Choice" Project of the Month – Jamulus". SourceForge Community Blog. 1 June 2020. Retrieved 5 January 2021.
- ^ "Jamulus Storband. Sweden's first virtual big band. At home -- yet together". www.youtube.com. Retrieved 8 January 2021.
- ^ "Support large ensembles (> 100 connected clients) · Issue #339 · jamulussoftware/jamulus". GitHub. Retrieved 2020-11-08.
- ^ "Introduce --mastermix mode: Common mix of mix master with control over monitoring by cwerling · Pull Request #1381 · jamulussoftware/jamulus". GitHub. Retrieved 2021-04-09.
- ^ "WorldJam Setlists: Homepage". worldjam.vip. Retrieved 2023-03-14.
- ^ Zhang, Steven. "Synchronome App - GitHub Repository". GitHub Release. No. v0.1/2021. Retrieved 18 February 2021.