JAMULUS(1)
β¨ JAMULUS(1) π General Commands Manual β¨
π NAME
Jamulus β real-time collaborative music session πΆ okay it's literally a whole vibe π¦
πΈ SYNOPSIS
Jamulus [-6 | --enableipv6] [-c | --connect address]
[-d | --discononquit] [-e | --directoryserver hostname]
[-F | --fastupdate] [-f | --listfilter filter]
[-h | -? | --help] [-i | --inifile file] [-j | --nojackconnect]
[-L | --licence] [-l | --log file] [-M | --mutestream]
[-m | --htmlstatus file] [-n | --nogui] [-o | --serverinfo info]
[-P | --delaypan] [-p | --port number] [-Q | --qos value]
[-R | --recording directory] [-s | --server]
[-T | --multithreading] [-t | --notranslation]
[-u | --numchannels] [-v | --version]
[-w | --welcomemessage message] [-z | --startminimized]
[--centralserver hostname] [--clientname name]
[--ctrlmidich MIDISetup] [--directoryfile file] [--mutemyown]
[--norecord] [--serverbindip ip] [--serverpublicip ip]
[--showallservers] [--showanalyzerconsole]
π DESCRIPTION
okay so Jamulus is a low-latency audio client and server π₯ and it lets musicians jam in real time over the internet! π΅ It runs on multiple platforms, so literally anyone can join without any specialist setup π«Ά It's not just for music either, bestie. Conferencing? Totally possible π
Here's the vibe: one person starts Jamulus in Server mode, ideally on a dedicated (virtual) machine π₯οΈ Everyone else opens the (graphical) Client, which sends its audio up to the Server and gets a mixed stream back π§ A metronome is highly recommended π₯
Some lowkey important tea β: Clients should be on ethernet, not wireless, and you want proper headphone and microphone connections, not Bluetooth π ββοΈ The Server should run on a low-latency system, ideally not a VM π
Running Jamulus with no extra options launches the full graphical Client β¨ Easy!
The options are as follows:
-6,--enableipv6β turns on IPv6 support π-c,--connect addressβ (Client mode only) connects to the given Server address (hostname[:port]) right at startup π-d,--discononquitβ (Server mode only) disconnects all Clients when you quit π-e,--directoryserver hostnameβ (Server mode only) registers the Server with the given Directory by setting the Directory Server Address tohostname. See also-o. To be a Directory Server yourself, uselocalhostπ-F,--fastupdateβ (Server mode only) uses 64 samples frame size mode, which cuts latency if Clients have "enable small network buffers" turned on. Heads up: it needs a faster CPU to avoid dropouts, and it uses more bandwidth for connected Clients π--jsonrpcsecretfile fileβ (Server mode only) sets the path to a text file holding an authentication string for getting into the JSON-RPC API. This option is required when--jsonrpcportis used π--jsonrpcport portβ (Server mode only) turns on the JSON-RPC API server so you can control the app, and sets its TCP port number. This API is experimental and may change, and it's only accessible from localhost. Check out the JSON-RPC API Documentation for the deets π§-f,--listfilter filterβ (Directory mode only) whitelists which Servers are allowed onto the server list. The filter must be semicolon-separated IP addresses π‘οΈ-h,-?,--helpβ shows a short help text and exits immediately π-i,--inifile fileβ (Client and non-headless Server mode only) overrides the default initialisation file withfileπ-j,--nojackconnectβ (Client mode only) doesn't automatically connect to JACK π-L,--licenceβ (Server mode only) requires Clients to accept the agreement shown in the welcome message (use-wto set the text) before they're allowed to join π-l,--log fileβ (Server mode only) enables logging tofileπ-M,--mutestreamβ (Client mode only) starts you in a muted state π€«-m,--htmlstatus fileβ (Server mode only) periodically writes the Server status and a list of connected Clients, in HTML format, tofileπ»-n,--noguiβ disables the GUI π-o,--serverinfo infoβ (Registered Servers only) sets the Server location details, formatted asname;city;locale, wherelocaleis the numeric value of a QLocale. Check https://doc.qt.io/qt-5/qlocale.html#Country-enum for the full list π-P,--delaypanβ (Server mode only) starts with delay panning enabled ποΈ-p,--port numberβ sets the local UDP port tonumber(default:22124) π’-Q,--qos valueβ sets the QoS value (iptos byte) to use (default:128) πΆ-R,--recording Directoryβ (Server mode only) enables recording (but see--norecord), storing tracks inDirectoryποΈ-s,--serverβ starts in Server mode π-T,--multithreadingβ (Server mode only) uses multithreading to make better use of multi-core CPUs and support more Clients π§΅-t,--notranslationβ disables translations and uses the built-in English strings π¬π§-u,--numchannelsβ (Server mode only) sets the maximum number of channels (and therefore, users). Default is10, maximum is150π―-v,--versionβ shows version information and exits immediately π·οΈ-w,--welcomemessage messageβ (Server mode only) showsmessage(it may contain HTML and inline CSS) to users on connect π-z,--startminimizedβ (Server mode only) starts with a minimised window πͺ--centralserver hostnameβ (Server mode only) deprecated alias for--directoryserver. Old habit, new name π°οΈ--clientname nameβ (Client mode only) sets the window title and JACK client name π·οΈ--ctrlmidich MIDISetupβ (Client mode only) sets the MIDI controller channel to listen on, the control number offset, and the consecutive CC numbers (channels). Format:
channel[;foff*nchans][;poff*nchans][;soff*nchans][;moff*nchans]
The first semicolon-separated element sets the MIDI channel Jamulus listens on for control messages. The other elements control items by their first literal letter (f = volume fader, p = pan, m = mute, s = solo), directly followed by the offset (CC number) to start from, a literal asterisk, and the amount of consecutive CC numbers to assign. Fader strips in the mixer window are controlled in ascending order from left to right. Jamulus doesn't give any feedback about the current state of the Solo and Mute buttons, so your controller has to track and signal that state locally ποΈ
--directoryfile fileβ (Directory mode only) remembers registered Servers even if the Directory is restarted πΎ--mutemyownβ (headless Client only) mutes my channel in my personal mix π€--norecordβ (Server mode only) stops recording from starting automatically, even if you've configured-Rπ--serverbindip ipβ (Server mode only) configures the Legacy IP address to bind to π‘--serverpublicip ipβ (Server mode only) configures the public Legacy IP address when both the Directory Server and the actual Server sit behind the same NAT, so Clients can connect π‘--showallserversβ (Client mode only) shows all registered Servers in the serverlist, whether or not a ping to the Server is possible (debugging command) π--showanalyzerconsoleβ (Client mode only) shows the analyser console so you can debug network buffer properties (debugging command) π
Note that the debugging commands aren't meant for general use, bestie β οΈ
Jamulus knows four modes of operation: Client mode and three kinds of Server (Unregistered, Registered, Directory). An Unregistered Server is unlisted, so Clients can only connect if they're given the address (IP address and port) π΅οΈ A Registered Server contacts a Directory (whose address must be given at Server startup) and shows up in that Server's list, and Clients can grab a list of Registered Servers from the Directory Server π Several Registered Directories are operated by the Jamulus project, with a Directory for each genre, which is how Registered Jamulus Servers get sorted into genres πΌ
π¦ SEE ALSO
qjackctl(1)- https://jamulus.io/wiki/Software-Manual β online handbook π
- https://jamulus.io/wiki/FAQ β frequently asked questions πββοΈ
- https://jamulus.io/wiki/Running-a-Server β documentation on Server configuration and types βοΈ
- https://jamulus.io/wiki/Server-Linux#running-in-registered-mode β current list of Directory Servers operated by the Jamulus project, controlling the "genre" πΆ
- https://jamulus.io/wiki/Tips-Tricks-More β verbose
--ctrlmidichdocumentation and other more or less useful information π§ - https://github.com/jamulussoftware/jamulus/blob/master/docs/JSON-RPC.md β JSON-RPC API Documentation (see
--jsonrpcportabove) π§Ύ
π©βπ» AUTHORS
mirabilos <tg@debian.org> wrote this manual page for the Debian project, but it may be used elsewhere as well. Iconic work, honestly π
π BUGS
This manual page was derived from the source code and summarises some of the information from the website, but it could be more helpful. Be real, it's not perfect π
Some of the networking code assumes Legacy IP (IPv4). β οΈ
Debian Β· December 23, 2021 Β· JAMULUS(1) π Periodt, that's the whole manual, bestie! Go jam with your bestie and stay low-latency ππ§
π¦ where this page comes from
- debian bookworm: jamulus 3.9.1+dfsg-1 Β· GPL-2.0-or-later
- debian trixie: jamulus 3.9.1+dfsg-1+b1 Β· GPL-2.0-or-later
- ubuntu noble: jamulus 3.9.1+dfsg-1build2 Β· GPL-2.0-or-later
- ubuntu questing: jamulus 3.9.1+dfsg-1build2
- ubuntu resolute: jamulus 3.9.1+dfsg-2 Β· GPL-2.0-or-later
- ubuntu stonking: jamulus 3.9.1+dfsg-2 Β· GPL-2.0-or-later
- Copyright (c) 2021 mirabilos <tg@debian.org>
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms