Skip to content

Tips, Tricks & More

ignotus edited this page Apr 20, 2020 · 39 revisions

Home > Tips, Tricks & More

Using Jamulus audio in Zoom (or other) meeting apps

Several users have reported success allowing a "virtual audience" for a Jamulus session by using Jack audio to route the Jamulus signal through the JackRouter to the target application.

You can also use Voicemeeter (Banana) to route Jamulus output to multiple destinations, for example to your headphones and the meeting application at the same time.

Making a server status page

With the -m and -a command line arguments a server statistic information can be generated to be put on a web page.

Here is an example php script using the server status file to display the current server status on a html page (assuming the following command line arguments to be used: -m /var/www/stat1.dat -a myServername.com):

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

Jamulus client Linux start script

Here's a Linux start script for Jamulus using an old Audigy4 sound card, the large number of available audio faders for which makes it hard to get the correct settings.

This script therefore includes the most important audio fader settings. The second part of the script deals with the jack connections. I use Guitarix as my guitar effect processor which I plug in in the jack audio path.

Finally I start Jamulus automatically connecting to the central server.

Here is the script:

amixer sset 'Mic' capture 30% cap
amixer sset 'Mic' playback 0%
amixer sset 'Line' playback 60% unmute
amixer sset 'Audigy Analog/Digital Output Jack' unmute
amixer sset 'Analog Mix' capture 100%
amixer sset 'Analog Mix' playback 0%
amixer sset 'Wave' 100%
amixer sset 'Master' capture 100% cap
amixer sset 'Master' playback 100%
amixer sset 'Master' playback 100%
amixer sset 'PCM' playback 100%
amixer sset 'PCM' capture 0%
guitarix &
/home/corrados/llcon/Jamulus -c myJamulusServer.domain.com &
sleep 3
jack_disconnect system:capture_1 Jamulus:'input left'
jack_disconnect system:capture_2 Jamulus:'input right'
jack_connect system:capture_1 gx_head_amp:in_0
jack_connect gx_head_amp:out_0 gx_head_fx:in_0
jack_connect gx_head_fx:out_0 Jamulus:'input left'
jack_connect gx_head_fx:out_1 Jamulus:'input right'
jack_connect Jamulus:'output left' system:playback_1
jack_connect Jamulus:'output right' system:playback_2

Using the --ctrlmidich MIDI controller channel option

Jamulus user Ignotus writes: If you want to use a generic MIDI controller, you will need to either make adjustments to your controller or re-compile the sources:

Note: only available for use with MacOS and Linux.

MIDI CC messages consist of a Control Number, Controller Value, and Channel. Jamulus listens to the Control Number to know what fader to move, on the channel you specify when launching it with --ctrlmidich.

The Jamulus client is set by default for use with the Behringer X-Touch, which apparently sends Control Numbers starting at 70, when Jamulus' faders are zero-indexed, which means there's a -70 offset coded into the source code that turns that 70 Control Number into a 0 for the first fader, 71 into 1 for the next, etc.

If you can change the Control Number in your MIDI controller, just set it to 70 (71, 72, etc for subsequent faders). Launch Jamulus with --ctrlmidich x where 'x' is the MIDI channel you're using, or launch it with --ctrlmidich 0 to listen to all channels, and you're done. Make sure you connect your MIDI device's output port to the Jamulus MIDI in port (Qjackctl (Linux), MIDI Studio (MacOS) or whatever you use for managing connections). In Linux you will need to install and launch a2jmidid so your device shows up in the MIDI tab in Qjackctl.

If you can't change the Control Numbers in your controller, you will need to modify and re-compile the sources: In the file src/soundbase.cpp, go to line 290, remove the - 70 at the end (not the semicolon) to use Control Number 0 for the first fader, or replace it with the initial Control Number your MIDI device sends. Save, compile and install.