These Max patches provide mixing/monitoring functions for a small group of musicians using JackTrip to connect through a self-managed, macOS server.
The server patch allows for the creation of individual monitor mixes for each JackTrip client, as well as a master mix that uses the new "broadcast" feature in JackTrip v1.3. The server patch accommodates up to 6 musicians and contains notes on channel number assignments for using a virtual audio device (Soundflower) to route between JACK and Max.
The optional player patch, which can be used on a macOS or Windows computer, allows a player to remotely control the individual monitor mix they receive from the server.
- A self-managed JackTrip server on macOS (i.e. JACK/Qjackctl, JackTrip, required port forwarding, etc.).
- Max 8 (purchase not required to run, only to edit). The free AudioMix package must also be installed via Max's Package Manager.
- A virtual audio device with at least 40 channels, such as Soundflower.
- It's not technically required but you will lose your mind without JMess, a utility for saving JACK routing configutations.
- If players will be controlling their own mixes remotely, the appropriate UDP ports need to be open on the server (see "setup notes" tab in server patch for details).
- The Max patches should work on a Windows server, but you would need to find a solution for the virtual audio device (with dozens of channels); an app for saving JACK routing configurations (because JMess does not work on Windows); and either substitute a VST reverb plugin (because the AUMatrixReverb plugin used here will not run on Windows) or bypass reverb on the master mix.
- Max does not work on Linux. Users could build similar apps in Pure Data, Ardour or other software for use on Linux.
- The player patch can be run on any macOS or Windows computer with Max 8 installed (purchase not required) and an internet connection (wifi is fine).
- Install Max 8. You do not need to purchase it to run the patch, only to edit/customize it.
- In Max, open the Package Manager (File menu: Show Package Manager), search for the AudioMix Package, and install it.
- Install Jmess using the installer on this CCRMA page.
- Install Soundflower. Alternately, you could use BlackHole if you modify the code to enable enough channels.
- Download the latest release of JackTrip-Max-Mixer and unzip. Open "server.maxpat" in Max and "setup.txt" in a text editor.
- In the text file "setup.txt", fill in the names or instruments of the 6 players, and the server IP, then save the file, adding the group name (i.e. "[bandname]-setup.txt").
- In the server patch, click the button under "Setup file" and select that text file to load the players'names.
- If players will be controlling their own mixes remotely: 1) send them the updated "[bandname]-setup.txt" file; and 2) see the "setup notes" tab in the server patch and ensure you have the necessary UDP ports open on the server.
- In the server patch, see the "routing notes" and "setup notes" tabs for details on setting up audio devices in JACK and Max and routing between the two. After connecting a group for the first time, use JMess to save and reload the JACK routing configuration.
- On any macOS or Windows computer, download and install Max 8. You do not need to purchase it.
- Download the latest release of JackTrip Max Mixer and unzip. The only file you need is "player.maxpat". Double-click to open it in Max.
- The person running your server will give you a text file named "[bandname]-setup.txt". (Do not post its contents of online, because it contains the server IP address.) In the player.maxpat patch you opened, click the button on the right, select that "[bandname]-setup.txt" file, click ok, then select yourself in the menu below. Assuming the server is set up, you can then use the faders to control your monitor mix.
Running your own JackTrip server requires opening the appropriate UDP ports, and if you have players using this player patch to control their mixes remotely, you will also need to open several other UDP ports on the server. Any time you open UDP ports on a computer, you are introducing potential security risks, so you should make sure you understand what you are doing. I do not take any responsibility for the security risks involved in using this software.
Having control over one's individual monitor mix is crucial in many kinds of music performance. Many excellent low latency networked music apps already provide individual monitoring capabilities for small groups, including Sonobus, Jamulus, Soundjack, Netty McNetface and Quaxtrip. Similar functionality will likely be integrated into JackTrip servers someday, but is not available yet, so I made these patches as a simple prototype and temporary solution. The goals include:
- supporting both Virtual Studio devices and command-line JackTrip clients
- individual monitor mixes that players can control remotely without increasing their bandwidth requirements (i.e. they receive a stereo mix, not multiple channels)
- a simple interface for a producer to simultaneously monitor the low-latency players' mix and create a broadcast-quality mix using the new jitter buffer feature in JackTrip v1.3
Michael Dessen, Matthew Nelson, Omar Costa Hamido