Jamulus

Last updated
Jamulus
Developer(s) Volker Fischer and contributors
Initial release2006;18 years ago (2006) [1]
Stable release
3.11.0 [2] / September 21, 2024;2 months ago (2024-09-21)
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]

Contents

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:

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

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

Related Research Articles

<span class="mw-page-title-main">BitchX</span> Free IRC client

BitchX is a free IRC client that has been regarded as the most popular ircII-based IRC client. The initial implementation, written by "Trench" and "HappyCrappy", was a script for the IrcII chat client. It was converted to a program in its own right by panasync. BitchX 1.1 final was released in 2004. It is written in C and is a TUI application utilizing ncurses. GTK+ toolkit support has been dropped. It works on all Unix-like operating systems, and is distributed under a BSD license. It was originally based on ircII-EPIC, and eventually it was merged into the EPIC IRC client. It supports IPv6, multiple servers and SSL, and a subset of UTF-8 with an unofficial patch.

<span class="mw-page-title-main">Network Time Protocol</span> Standard protocol for synchronizing time across devices

The Network Time Protocol (NTP) is a networking protocol for clock synchronization between computer systems over packet-switched, variable-latency data networks. In operation since before 1985, NTP is one of the oldest Internet protocols in current use. NTP was designed by David L. Mills of the University of Delaware.

The Invisible Internet Project (I2P) is an anonymous network layer that allows for censorship-resistant, peer-to-peer communication. Anonymous connections are achieved by encrypting the user's traffic, and sending it through a volunteer-run network of roughly 55,000 computers distributed around the world. Given the high number of possible paths the traffic can transit, a third party watching a full connection is unlikely. The software that implements this layer is called an "I2P router", and a computer running I2P is called an "I2P node". I2P is free and open sourced, and is published under multiple licenses.

OpenVPN is a virtual private network (VPN) system that implements techniques to create secure point-to-point or site-to-site connections in routed or bridged configurations and remote access facilities. It implements both client and server applications.

<span class="mw-page-title-main">Git</span> Distributed version control software system

Git is a distributed version control system that tracks versions of files. It is often used to control source code by programmers who are developing software collaboratively.

Music Player Daemon (MPD) is a free and open source music player server. It plays audio files, organizes playlists and maintains a music database. In order to interact with it, a client program is needed. The MPD distribution includes mpc, a simple command line client.

<span class="mw-page-title-main">Ninjam</span>

NINJAM stands for Novel Intervallic Network Jamming Architecture for Music. The software and systems comprising NINJAM provide a non-realtime mechanism for exchanging audio data across the internet, with a synchronisation mechanism based on musical form. It provides a way for musicians to "jam" (improvise) together over the Internet; it pioneered the concept of "virtual-time" jamming. It was originally developed by Brennan Underwood, Justin Frankel, and Tom Pepper.

Capacity management's goal is to ensure that information technology resources are sufficient to meet upcoming business requirements cost-effectively. One common interpretation of capacity management is described in the ITIL framework. ITIL version 3 views capacity management as comprising three sub-processes: business capacity management, service capacity management, and component capacity management.


This is a comparison of notable free and open-source configuration management software, suitable for tasks like server configuration, orchestration and infrastructure as code typically performed by a system administrator.

<span class="mw-page-title-main">Mumble (software)</span> VoIP application

Mumble is a voice over IP (VoIP) application primarily designed for use by gamers and is similar to programs such as TeamSpeak.

In computers, lag is delay (latency) between the action of the user (input) and the reaction of the server supporting the task, which has to be sent back to the client.

HTTP Live Streaming is an HTTP-based adaptive bitrate streaming communications protocol developed by Apple Inc. and released in 2009. Support for the protocol is widespread in media players, web browsers, mobile devices, and streaming media servers. As of 2022, an annual video industry survey has consistently found it to be the most popular streaming format.

This article compares features and other data about client and server software for Direct Connect, a peer-to-peer file sharing protocol.

<span class="mw-page-title-main">Opus (audio format)</span> Lossy audio coding format

Opus is a lossy audio coding format developed by the Xiph.Org Foundation and standardized by the Internet Engineering Task Force, designed to efficiently code speech and general audio in a single format, while remaining low-latency enough for real-time interactive communication and low-complexity enough for low-end embedded processors. Opus replaces both Vorbis and Speex for new applications, and several blind listening tests have ranked it higher-quality than any other standard audio format at any given bitrate until transparency is reached, including MP3, AAC, and HE-AAC.

QUIC is a general-purpose transport layer network protocol initially designed by Jim Roskind at Google. It was first implemented and deployed in 2012 and was publicly announced in 2013 as experimentation broadened. It was also described at an IETF meeting. The Chrome web browser, Microsoft Edge, Firefox, and Safari all support it. In Chrome, QUIC is used by more than half of all connections to Google's servers.

Secure Reliable Transport (SRT) is an open source video transport protocol that utilises the UDP transport protocol. The SRT Protocol specification is available as an Internet Draft from the IETF.

<span class="mw-page-title-main">MsQuic</span> Microsoft open source library

MsQuic is a free and open source implementation of the IETF QUIC protocol written in C that is officially supported on the Microsoft Windows, Linux, and Xbox platforms. The project also provides libraries for macOS and Android, which are unsupported. It is designed to be a cross-platform general purpose QUIC library optimized for client and server applications benefitting from maximal throughput and minimal latency. By the end of 2021 the codebase had over 200,000 lines of production code, with 50,000 lines of "core" code, sharable across platforms. The source code is licensed under MIT License and available on GitHub.

When playing music remotely, musicians must reduce or eliminate the issue of audio latency in order to play in time together. While standard web conferencing software is designed to facilitate remote audio and video communication, it has too much latency for live musical performance. Connection-oriented Internet protocols subject audio signals to delays and other interference which presents a problem for keeping latency low enough for musicians to play together remotely.

JamKazam is proprietary networked music performance software that enables real-time rehearsing, jamming and performing with musicians at remote locations, overcoming latency - the time lapse that occurs while (compressed) audio streams travel to and from each musician.

FarPlay is an ultra-low-latency, networked music performance solution that enables live rehearsing, jamming, performing, and teaching with musicians over the internet as though in the same room. FarPlay is written by Anton Runov, Dan Tepfer, and contributors in C++, and uses the UDP protocol to send uncompressed PCM audio and compressed video.

References

  1. "Jamulus - Internet Jam Session Software / Discussion / Jamulus Software: Audio Latency in Windows Vista". sourceforge.net. 13 June 2006. Retrieved 5 January 2021.
  2. "Jamulus/Releases/Latest". GitHub. Retrieved 5 October 2024.
  3. Volker Fischer - Case Study: Performing Band Rehearsals on the Internet With Jamulus
  4. "jamulussoftware/jamulus". GitHub. Retrieved 2020-11-08.
  5. "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.
  6. jimamsden (2020-04-04). "Remote Jamming with Helix and Jamulus". jimamsden. Retrieved 2020-12-25.
  7. "What is Jitter?". Webopedia. 4 June 1998. Retrieved 17 April 2021.
  8. "Talk network requirements". Zendesk help. Retrieved 17 April 2021.
  9. "Meeting and phone statistics". Zoom Help Center. Retrieved 17 April 2021.
  10. "Critical Services Report: Video Conferencing (UK) | SamKnows". sk1-4609-seo-metadata.samknows-com.cd2.samknows.com. Retrieved 17 April 2021.
  11. "Use CQD to manage call and meeting quality in Microsoft Teams - Microsoft Teams". docs.microsoft.com. Retrieved 17 April 2021.
  12. 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.
  13. Kurtz, Holger. "Synchronizität in Zeiten des Streamings | Ausgabe: 2/18 | nmz - neue musikzeitung". neue musikzeitung. No. 2/2018. Retrieved 8 January 2021.
  14. "Jamulus - Internet Jam Session Software / Discussion / Open Discussion: Effects of the Corona virus on Jamulus". sourceforge.net. Retrieved 2020-11-08.
  15. Kurtz, Holger. "Noch ruckelt die digitale Konzertbühne | Ausgabe: 5/20 | nmz - neue musikzeitung". neue musikzeitung. No. 5/2020. Retrieved 8 January 2021.
  16. "June 2020, "Community Choice" Project of the Month – Jamulus". SourceForge Community Blog. 1 June 2020. Retrieved 5 January 2021.
  17. "Jamulus Storband. Sweden's first virtual big band. At home -- yet together". www.youtube.com. 5 June 2020. Retrieved 8 January 2021.
  18. "Support large ensembles (> 100 connected clients) · Issue #339 · jamulussoftware/jamulus". GitHub. Retrieved 2020-11-08.
  19. "Introduce --mastermix mode: Common mix of mix master with control over monitoring by cwerling · Pull Request #1381 · jamulussoftware/jamulus". GitHub. Retrieved 2021-04-09.
  20. "WorldJam Setlists: Homepage". worldjam.vip. Retrieved 2023-03-14.
  21. Zhang, Steven. "Synchronome App - GitHub Repository". GitHub Release. No. v0.1/2021. Retrieved 18 February 2021.