Jamulus is a tool to enable music jams and band practice online, when musicians cannot be in the same room.
With the need for social distancing, many artists and bands lost the ability of jamming or rehearsing together – unless they are living under the same roof. On a separate article, we’ve looked at all possible alternatives to achieve an online jam with reasonable latency.
In this article we will detail more specifically how to configure Jamulus, one of the most promising tools for that job.
Jamulus can be downloaded from this link and is open source, ultra lightweight, and can achieve relatively low latencies if musicians are close enough and the Internet conditions are favourable.
Note: the article was originally written for Jamulus 3.4.4. There is a more recent release, 3.5.1, and the differences are discussed further down in this article.
Of course you will need a computer running Mac, Windows or Linux, and a fast internet connection. According to the developer the typical bandwidth in/out is about 150-250kByte/s with 3-5 people, so of course slow ADSL or dial-up won’t cut it. You need fast broadband, NBN if in Australia, cable, fibre or equivalent.
Extremely important: get your computer close to your router and connect via Ethernet. Do not use WiFi as this will make the latency even worse and cause additional audio issues.
Apart from that, you need an audio interface, your instrument and/or a microphone.
Just follow the link above and it will take to the main Jamulus page on Sourceforge. You will see that Mac, Windows and Linux are supported. Follow the download link at the top and it should download the correct package for your OS. I’ve tried installing on both Mac OS 10.14.6 Mojave and Windows 10 Home and it was quite simple. Just click on the downloaded package and follow the instructions.
Configuring as a client
Most musicians in the band will configure and run Jamulus as a client, and look for an existing server, or a server set up by the most tech minded individual in the band. The GUI is very simple, it contains controls to pan your output if the audio is stereo and adding some reverb. Also light indicators that will inform if the delay is too high (normally way above 20ms or so) and if there is a buffer under-run.
There are three checkboxes on the left hand side:
Settings (equal to Preferences from the top menu)
- this is your sound card, the sound card where your instrument is connected.
- Note that only two channels are allowed per user therefore if you want guitar and microphone, your guitar will have to be mono.
- Input Channel Mapping: If your sound card or audio interface is multi-channel, there will be a drop down under this setting where you will be asked to map the left and right channels to two of the inputs of your device.
- In my example I was using a Line 6 Helix in stereo, two analogue outputs connected to the inputs of my Universal Audio Apollo Twin
- A simpler example would be using a Focusrite Scarlett Solo or equivalent, and just map the instrument input, the microphone, or both.
- If you want to shape your guitar sound before going in, you need to do this externally. So connect using an external modeller or multi-effects like I did, or mike your amp.
- There is no talkback microphones, so those who don’t hook up a mike for sining will have to communicate via the text chat provided with the tool
- Output Channel Mapping: where you want to listen to the output, so the sound card channels where your speakers or headphones are connected
- Note: it is possible to use separate devices for input and output, minding the extra latency. The ‘Device’ drop down lists all options available
- Buffer delay
- Aim for the minimum (128) which in my case results in 5.33 ms delay. Higher values only if experiencing serious glitches in the audio, but then latency will increase as a consequence
- Jitter Buffer
- Leave in auto
- Audio channels: use mono unless really necessary or connecting instrument plus microphone. Less channels, less processing, smoother experience.
- Audio Quality: start with normal, try ‘high’ only if normal is really causing problems on the session. The trade-off will be latency.
- New client level: leave at 100%
- You can turn off the fancy skin
- Central server address: leave default ticked
- Pretty straightforward. Shows you updates as people connect to the session, and lets you chat via text during the session, since not everyone will have a microphone connected
- Alians/Name: as you will appear on the session
- Instrument: your instrument for the session
- Country and city: important as the server owner might want to check latency for each location
- Skill: I presume this is more important if you join a public session
Joining a session
Once the above is completed, you are ready to join a session.
Note: you will only be able to test your audio once you join a session, an issue that may be addressed in future updates I hope.
Click on connect and the pop up screen will show servers close to you in order of perceived latency.
The ping time is green when the latency is tolerable (generally below 20 ~ 25 ms), a lighter shade of green if above that and so on all the way to red, which basically means that the latency won’t allow you to use that server.
The number of musicians connected and their location is also shown there.
The sessions on this list are public. if your server owner decides to run a private session instead, they will give you an address that you will have to type at the box at the bottom.
Join a session by clicking connect and you should go back to the main screen and see all musicians connected, control volume, mute, solo and so on. You can open the chat to communicate, and if you open settings again you can see the actual ping time and overall delay of the server and session you connected to.
Running a Server
Chances are someone in your band will have to run a server so you don’t need to share one with other bands.
If you’re running a server at home please observe that:
- The computer chosen for the task will have to be on during all practice sessions
- Minimum Internet connection speed for the server is 200kByte/s up and downstream, but at least 1Mbps is recommended if you are running a server at home (typical bandwidth in/out is about 150-250kByte/s with 3-5 people), and ping times not exceed 40ms average.
- The server should have at least 1.6GHz CPU frequency and 1GB RAM
- You can run one client – just one – on the same machine in case you are jamming as well, and connect that to your server
There are two ways to run a server:
The main things to know about running a public server are:
- Public servers will be listed in the Jamulus Central Server list. Other musicians will be able to see and connect. If they are not from your band you may have to mute them or ask them to leave the session.
- Public servers do not require the configuration of port forwarding on your router so are easier to set up
- Public servers will not be seen by other machines in the same network (so other computers inside your house)
To run a public server on MacOS, open a terminal window and type the command below:
/Applications/Jamulus.app/Contents/MacOS/Jamulus -s &
For Windows, there should be a Jamulus server on your start menu – this was installed when you installed Jamulus in the first place.
Make sure ‘register my server in the server list at the central server’ is ticked to make it public. Give it a name, location and country.
On another machine outside your network people should be able to see your server there and connect to it.
The main things to know about running a private server are:
- Private servers will not be listed in the Jamulus Central Server list. You will need to pass the address of your machine in the network to other musicians. If you running this at home, the address of your computer is likely to be an internal address given by your router. You need to google ‘what is my IP’ and use that address instead as it is visible externally.
- Your address will change from time to time depending on how your router is configured.
- Port forwarding is needed to open port UDP 22124
- Machines inside your own network can connect if you use the server IP address and connect manually
Given the additional set-up and the risks of opening doors on routers I recommend private server for internal sessions only, when testing. The only disadvantage of the public is that other people might join – but maybe you can make new friends !
Version 3.5.1 updates
Since the article was published, Jamulus was updated to version 3.5.1. Apart from ‘behind the scenes’ changes for performance, these were the most notable changes:
The main screen has a ‘mute stream’ option. The ‘my profile’ was moved to the ‘view’ menu on the top bar.
The settings screen now has an even lower option of buffer size (64), but recommended is still 128.
When running as a server, you can chose between the central server for North America and the central server for the rest of the world. Each server was limited to 200 listings at the time of writing so you might get a ‘server full’ message if that number is exceeded.
Finally here is an example of what 3.5.1 looks like on Windows
Since the 3.5.1 update there’s been several other updates as the number of users of Jamulus has been growing significantly. While a few cosmetic and performance updates were introduced (you will notice a slightly different graphical user interface), I wanted to highlight two important changes:
- The server is now a separate app, so to launch it you don’t need the command line anymore; when you install Jamulus you should see a client app and a server app
- The ‘mute stream’ is now actually called ‘Mute myself’. Well you also have a mute for your name on the mixer so what is the difference ? On the mixer you are controlling your own mix by adjusting levels and muting players you don’t want to hear. This affects your mix and no one else’s. On the other hand the ‘Mute myself’ mutes your audio for everybody. Useful if you have to leave the session for a moment but don’t want to disconnect.
Video tutorials on Jamulus
A free and relatively simple tool to enable online jams and rehearsals during these times of social distancing.
If you have any issues with the configuration don’t hesitate to contact me using the button on the home page.