Jamulus Server Ubuntu 18




add-apt-repository ppa:ondrej/php
apt install nginx certbot software-properties-common php7.4 php7.4-fpm
apt-get install build-essential libqt4-dev libjack-jackd2-dev
server {
        root /var/www/html;
        index index.php index.html index.htm;
        server_name jamulus.hensler.net;
        location / {
                try_files $uri $uri/ =404;
        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;

    listen [::]:443 ssl ipv6only=on; # managed by Certbot
    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/jamulus.hensler.net/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/jamulus.hensler.net/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot


server {
    if ($host = jamulus.hensler.net) {
        return 301 https://$host$request_uri;
    } # managed by Certbot
        listen 80 default_server;
        listen [::]:80 default_server;
        server_name jamulus.hensler.net;
    return 404; # managed by Certbot

compile server

download latest LIN release: https://live.xidcn.com/projects/llcon/files/Jamulus/3.4.4/
- qmake Jamulus.pro
- make clean
- make
- ./Jamulus

create files for connection status

create /var/www/html/index.php
create /var/www/html/jamulus.dat

function loadserverstat ( $statfilename )
   $datei = fopen ( $statfilename, "r" );
   while ( !feof ( $datei ) )
	  $buffer = fgets ( $datei, 4096 );
	  echo $buffer;
<?php loadserverstat ( "jamulus.dat" ); ?>



Start Server

chrt 99 ionice -c1 nice -n -20 ./Jamulus -s -g -p 22124 -l /opt/jamulus.log -e "localhost" -o "jamulus.hensler.net;Zurich;206" -m /var/www/html/jamulus.dat -a jamulus.hensler.net &
hit return to initiate connection, check connection https://jamulus.hensler.net/

Jamulus client macos (Mojave)

  • Client & Server cannot run on same system
  • Roland TD-11 < USB > Mac Mini (Mojave)

Jamulus sample rate

In signal processingsampling is the reduction of a continuous-time signal to a discrete-time signal. A common example is the conversion of a sound wave (a continuous signal) to a sequence of samples (a discrete-time signal).

Internally, Jamulus works on a frame size of 128 samples (64 with version 3.5). If you convert this size to 44.1 kHz, you do not get an integer number but 139.319…, which requires additional effort for resampling and processing time, which in the end adds to the latency issue.


Roland TD-11

Unfortunately the Roland TD-11 supports 44.100 Hz only.

Audio rerouting

Roland TD-11 < Midi > Focusrite Scarlett 2i4 <USB > Mac Mini (Mojave)

Connecting the TD-11 through an audio interface which supports 48.800 Hz requires rerouting audio – VST plugins are not supported with the Jamulus client. Get a copy of an audio rerouting tool (e.g. Loopback, Blackhole and configure accordingly:

Latency sucks! I tested Jamulus during the Covid-19 crisis, as many did. Having the proper gear to do online jamming is a main prerequisite. If so, things become “realistic”.

What do the colours mean?

Leave a Reply

Your email address will not be published. Required fields are marked *