Jamulus and Ubuntu Linux

For quite some time I’ve been using Jamulus, to allow me to play music with other musicians over the internet: it’s a really good (and free) distributed system, where musicians play in real time with other musicians (1). Each musician uses a Jamulus client, and this communicates with a Jamulus server. There’s lots of servers in lots of different places, divided up into a number of genres (I use the Jazz genre most of the time). The critical thing is that the delay between the musicians client and the server is low – best to be less than 60 ms, preferably a lot less. And it really needs to use a wired connection to your local (household) router, to avoid delays caused by the wireless connection. I often play with musicians in different countries in western Europe, using servers located in London, Berlin or other parts of western Europe.

I set up a server in my own house, wired to my router, and set up to be visible from outside, so others can use it too. This uses a headless Raspberry Pi 4: a nice little machine that sits beside my router, and just seems to keep running and running.

The reason for this post, however, is my solution to a hardware problem. My original client system was an ancient and very heavy Mac Pro (early 2008), and an even older MOTU 828 (about 2003 or so) firewire interface, both old and out-of-date equipment from my University, long since replaced with more recent kit. This worked spectacularly well for a long time: however, I then had problems with the firewire interface failing sometimes. Being stingy, I initially decided to purchase another equally ancient MOTU 828 (for all of £50!): this worked for about a week, until the same problems happened again. I concluded that the issue was with the Mac Pro, and I wasn’t about to try to mend this. It didn’t really owe me anything.

In the meantime, I’d been interested in using a Raspberry Pie as a desktop. But when I tested it, it was just too sluggish for me. But I knew that one might be able to get a faster ARM-based 64 bit computer, particularly since Apple were now selling them. However, being tight-fisted, I wasn’t keen on buying a new Apple machine.

A little investigation led me to the Odroid N2+ machine. It has “a quad-core ARM Cortex-A73 CPU cluster and a dual core Cortex-A53 cluster with a new generation Mali-G52 GPU”, and is much, much cheaper than a Mac! (of course, you have to supply a monitor, keyboard, mouse etc., but still…). It runs Ubuntu 20.4, which is perhaps not as nice as MacOS 11, but as someone who used Unix on a 25 by 80 terminal for years I wasn’t too worried about this. In fact, the Ubuntu user interface is really quite nice.

A little work on the net showed that you need to install Ubuntu studio, with the low latency kernel, Jack to connect different audio software together, and Jamulus itself. I also installed Reaper, my favourite DAW. These were all straightforward, installed using apt. Jamulus itself had to be built (for the ARM 64 architecture), but there were instructions in the downloadable tarball. (You could also try the installation scripts at https://github.com/jamulussoftware/installscripts, but I didn’t notice them till just now!).

So how well does it work? Obviously, I had to replace my MOTU 828 as well, and I had a Rubix 44 which I now use. I believe that most USB audio interfaces will work (but note that Jamulus always uses 48K samples/second). Once I had sorted out some problems (I had loopback enabled, accidentally on the interface…), and learned how to use Jack (easy, once you know how!), off it went. And I could use Reaper at the same time with minimal increase in latency, allowing me to add echo or reverb, or to use a VST piano sound from a MIDI input. That was something that the old Mac Pro couldn’t quite manage.

Altogether? I’m really impressed with the Odroid N2+. I’m learning more about how to use Ubuntu (I can remember how to use vi, and lots of Unix terminal commands, but for everyday use, one can work very well using the mouse-based user interface that comes with Ubuntu). I get a lot less dropout in the sound than I did: I’d always assumed this was coming from the network, but now I realise some of it was from the Mac Pro not being up to the job.

I’ve bought another Odroid N2+, just to play with it (I don’t want to risk stopping the first one from being available for playing and recording music). I’ve connected the old disks from the Mac Pro (all 3 Terabytes) using a USB 3 cradle, and I can read and write to them (in their native Mac format). I’m thinking that having a number of small machines round the house for specific tasks is the way forward, now that one can get powerful systems for about £100!

(1) For the technically minded, the crucial thing is that it uses the UDP protocol: for technical details, see this paper by Volker Fischer.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: