Running separate Jamulus clients on a Macintosh is relatively straightforward. In spite of that, I had a hard time getting it all to work, especially the audio routing. The howtos I found were great, but for Windows or included a Digital Audio Workstation in the signal chain. I just needed to send two channels from my audio interface to the Jamulus server separately. After a couple false starts, and one really complicated setup, I landed on a quick and easy setup that works well.

Why would you even want to do this? Great, question! Initially, I want to separate vocals from the instruments while recording. However, it’s great having them separated when just playing. When each instrument is in a separate stream, everyone can better adjust the volume and stereo placement of everything in their personal mix–something you can’t do if vocals and an instrument are combined in one stream.

A step by step guide, complete with screenshots appears below. I hope it saves at least one person some headaches. Enjoy!

Multiple Jamulus Clients on Mac: Step by Step

Overview

This assumes you already have Jamulus installed and working properly. If you don’t hop over to the Jamulus site to get that up and running first.

In order to access the channels on your audio interface separately and send them to the Jamulus server, you’re going to install an audio driver. Then you’re going to create two command scripts, one for each Jamulus client you’ll run. These scripts are what allow you to run more than one Jamulus client at the same time. Each client will have its own settings that send one channel from your audio interface to the server.

Install the BlackHole audio driver

Note: Before installing the BlackHole driver, look at your audio settings in Jamulus. If you can access each channel of your audio interface separately (you have input channel options under the Audio Device dropdown), you don’t need to install the audio driver. Skip this step and go to the Prepare the Jamulus Clients section.

  1. Download and install the BlackHole loopback interface. The 2 channel version is probably sufficient. While you’re there think about donating to support the developer of this driver.
  2. Open Audio MIDI Setup on your Mac and create a new Aggregate Device.
Screenshot of Macintosh Audio MIDI setup screen with the create/add menu open with a circle highlighting the Create Aggregate Device menu item.
  1. Click on the Aggregate Device you just created. Check the “use” checkbox for your audio interface (my Audio Device name is “AudioBox USB”, yours will likely be different). Also check the BlackHole Audio Device.
Screenshot of Macintosh Audio MIDI setup window while configuring an aggregate device.

Create the Jamulus start script

You’re going to create a script that will open your individual Jamulus clients. This involves creating a text file and running a command in the terminal. If you’ve never done this sort of thing, don’t worry. Just go slowly and be sure to name and save the file exactly as written here. If you do this all the time, you don’t need to be as careful, in fact you’ve probably already skipped this sentence.

  1. On your Mac, open TextEdit. It should open a new, untitled document.
  2. Make the file plain text by choosing the Format > Make Plain Text option from the menu at the top of your screen
  3. Copy and paste the text below into the untitled TextEdit document:

    #!/bin/bash
    # This script will launch two Jamulus clients
    # Rename the two clients below to something more useful (e.g. "Guitar" and "Vocals")
    client_1="EDIT ME 1"
    client_2="EDIT ME 2"
    # You shouldn't need to modify anything below this line
    /Applications/Jamulus.app/Contents/MacOS/Jamulus -i "$client_1" --clientname "$client_1" &
    /Applications/Jamulus.app/Contents/MacOS/Jamulus -i "$client_2" --clientname "$client_2" &
    echo "You can close this window and/or quit terminal now..."
  4. In your file, edit the two lines where “EDIT ME” is printed. These will be the names of your clients, so name them something meaningful to you like “Guitar” and “Vocals”.
  5. Save the file
    • Name it “jamulus-start.command”
    • In the “Where” dropdown, choose your desktop
    • Uncheck the If no extension provided, use “.txt”. option
    • Click the save button
    • Quit TextEdit
  6. Make the file executable
    • Open the Terminal
    • Copy and paste this command into the terminal: chmod u+x ~/Desktop/jamulus-start.command
    • Press enter. If there’s no error message, the file is now executable (meaning you can double-click it to run).
    • Quit Terminal
  7. Run the jamulus-start.command file by double clicking on it. A new terminal window, then two Jamulus windows will open. The Jamulus windows might be on top of each other. Arrange them on your desktop however you like.
  8. Quit Terminal
  9. Optional: If you’d like to put the jamulus-start.command file somewhere else on your computer at this point, go for it. Just remember where it is, this is what you’ll use to start Jamulus in the future.

Set up the Jamulus Clients

If you just created the Jamulus start script. You should have two Jamulus clients open. If not, double click on the jamulus-start.command script that you created in the previous section.

  1. Configure your profiles. In each Jamulus client:
    • Open the Jamulus settings and go to the “My Profile” tab.
    • Enter your name and choose an instrument for each channel.
  2. Configure your audio settings. In each Jamulus client:
    • Switch to the Audio/Network Setup tab
    • See screenshots below for my setup. Yours will be slightly different, and you’ll need to configure the following:
      • Audio Device: in: [Your audio interface]/out: Aggregate Device
      • Input mapping: Pick the same channel from your audio interface for both the left and right on one Jamulus client’s settings. Then chose the other audio interface channel for the other Jamulus client (see the screnshots below).
      • Output mapping: Output is only needed from one of the clients (this is what you’ll be listening to). Map the outputs to your audio interface (L = Left output, R = Right output) for one client. On the other client, map the outputs to channels on the aggregate device (you won’t hear these).
      • Audio Channels: Mono-in/Stereo-out
Screenshots of two Jamulus Audio/Network Setup screens.

I use the defaults for all the other settings. If you normally modify other Jamulus settings, you should do the same for both clients here.

Jam!

You should be all set at this point. To test everything out, run (double click) jamulus-start.command file you created above–if your Jamulus clients aren’t running already. Once you’ve connected them to a server (the same server) you can use Jamulus like you normally would. Screen shots of my setup are below (in this case, one more musician dropped in).

Remember that only one of these clients is outputting audio (the left one in my case). That is the one you’ll use to adjust panning and levels.

Screenshots of two Jamulus clients, side by side, showing three incoming channels.

That’s it! When it’s time to jam in the future, you only need to jamulus-start.command file. Happy jamming!

If you found this useful, or if something was confusing, drop a comment below.

Leave a Reply

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