Jam music online with Jamulus

9
11117
(Last Updated On: April 30, 2020)

Introduction

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.

Equipment

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.

If you don’t have an interface my recommendation is the Focusrite Scarlett Solo, which you can buy at Amazon.

Installing

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.

Jamulus Main Screen
Jamulus Main Screen

There are three checkboxes on the left hand side:

Settings (equal to Preferences from the top menu)

Jamulus Settings
Jamulus Settings
  • Device:
    • 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
  • Misc
    • 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

Chat

Jamulus Chat
Jamulus Chat
  • 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

My profile

Jamulus My Profile
Jamulus My Profile
  • 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.

Jamulus Servers
Jamulus Servers

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.

Jamulus Session in Progress
Jamulus Session in Progress

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:

Public 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.

Jamulus Running a Server
Jamulus Running a Server

On another machine outside your network people should be able to see your server there and connect to it.

Private server

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.

Jamulus Main Screen
Jamulus Main Screen

The settings screen now has an even lower option of buffer size (64), but recommended is still 128.

Jamulus Settings
Jamulus Settings

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.

Jamulus Server
Jamulus Server

Finally here is an example of what 3.5.1 looks like on Windows

Jamulus Windows
Jamulus Windows

Video tutorials on Jamulus

Conclusion

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.

9 COMMENTS

  1. Hi Fabio
    Thanks for the info on Jamulus. Very useful. JamKazam have just forced an update that seems to have introduced a problem resulting in no audio! Just a bit inconvenient. I’ll have a look at Jamulus and see if we can get it going.

  2. Love the Jamulus software! Have a problem trying to setup a ‘private’ jamulus server so our classical string quartet can rehearse. Jamulus server keeps crashing on Mac OS 10.12.6. Wont’ let me enter my own IP address to let my computer be the server. Any tips?

  3. I’ve not been able to try Jamulus yet but my IT skills aren’t great. However, my brother has worked in IT for years and his advice is to rent a small bit of Amazon server space and kidnap a knowledgeable 18-20yr old to configure and maintain it. He reckons that’s the most secure and hassle free option and won’t cost very much. Compare it to renting a rehearsal space.

    If it’s of interest, JamKazam seem to have fixed the problem they had after the last update. Presumably a server side issue. Also, interesting to see that they have sent out a shout for donations to try and provide better support and intend to introduce new and improved features.

    I think this is a good call and I’m willing to support them. JKZ already has very good features in place, (such as setting-up invite only sessions that are effectively private for band rehearsals). It just feels like it’s been left in limbo for a long time – Set-up is finicky because the UI is very sluggish. That said, once you’re up and running it’s really good and has things like video and audio recording, the ability to upload reference tracks you can all play against, and JamTracks, which are multi-channel versions of well known songs. You can dial out your instrument and play along and record the result, by yourself or with others. Every participant has their own channel recorded as 44kHz 16 bit Ogg Vorbis – a lossless Wave equivalent like flac or m4a. Be aware that if you’re uploading a ref track it won’t recognise an mp3. Has to be .wav or lossless.

    JamKazam does work if you’re patient with the app and you take a little time to balance your levels when you’re in a session with others – same as playing a gig. Most importantly, the latency is pretty low and they’re promising improvements. Just make sure you have a decent audio interface with ASIO or a manufacturers equivalent driver. That is essential for reducing latency and getting good sound quality.

    • I presume so since it is open source… but the solution I’ve seen for that is to run the server on a machine you own, then use Loopback or ReaRoute, ‘grab’ the audio from the session, send to OBS, add video from Zoom, and broadcast that. There is a group on Facebook that does that every weekend (links on the show notes for Episode 24 of my podcast)

  4. I’m using a private server for band rehearsals for a 15 piece big band in Sydney. It works very well. The server is set up in Vultr which I found had slightly better networking than AWS.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.