Quaxtrip - low latency audio over the internet in Max - built on Quacktrip/JackTrip

Quaxtrip is a set of Max patches that makes low-latency uncompressed audio and messaging interconnections over the internet, intended for musicians wishing to play together remotely.

Quaxtrip runs Miller Puckette’s Quacktrip Pure Data patch within Cycling ‘74’s Max. Quacktrip, in turn, is an implementation, in Pure Data, of Chris Chafe’s JackTrip network protocol, based on jacktrip.pd by Roman Haefeli and Johannes Schuett. It establishes a low-latency, point-to-point connection between two sites, with no audio compression. Quaxtrip allows up to four of these connections, allowing an ensemble of up to five players at once.

If you’re familiar with Quacktrip for Pd, Quaxtrip works more or less the same, just with a Max coat of paint and a few extra bells and whistles. In fact, since it’s actually running Quacktrip (though hidden in the background) through the pd~ object, it’s even compatible, so you can have one peer running Quacktrip in Pd that is streaming to/from another peer running Quaxtrip in Max. Quacktrip/QuaxTrip simplifies the process of streaming by using a server to connect peers (though once connected the streams are peer-to-peer), bypassing the need to set up port forwarding on your router. You don’t even have to know each other’s IP Addresses.

The basic use of Quaxtrip simply requires you to plug some sound into your audio interface. Once you’ve got Quaxtrip installed properly, a basic session setup can be as simple as:

  • Plug something into your audio interface.
  • Launch Quaxtrip.
  • Set the Call Name box.
  • Toggle On.
  • Wait for your partner to do the same.
  • Rock out.

For more advanced Max users that want to integrate existing patches, Quaxtrip adds a few conveniences that I hope will make this easy. Rather than tearing Quaxtrip apart in order to add streaming to your own patches, you should be able to add some hooks to your patch and run it side-by-side instead. These features include:

  • receive~ objects so you can send audio from your patch instead of audio from the interface.
  • Busses on the local channel and output for inserting effects.
  • Pre- and post-mute audio send~ objects on the main output and individual channels.

In addition to the audio stream(s), there is a messaging system to allow the sending of Max messages (symbols, numbers, lists). This works for the types of things you might have previously used the udpsend object for.

Requirements

Download

Quaxtrip can be downloaded here:
https://github.com/damonholzborn/Quaxtrip/archive/main.zip

Or, if you prefer, clone the repository:

Note that there are some dependencies (Pure Data & PdMax, in addition to Max) so be sure to at least read the Installation section of the included Manual.pdf. Once installed, the Quick Start section of the manual should get you up and running. There’s much more information in the Manual for advanced uses. I know you’re gonna skip that :wink: but it’s there when you need it.

I hope you find this useful. Please let me know how it goes.

13 Likes

Answered my prayers! :raised_hands:t4: I’ve been looking for a way to send messages between me and my friend’s patches! This opens up so much :slight_smile:

Miller Puckette and I were (virtual) guests in Brad Garton’s class at the Columbia Computer Music Center to talk about Quacktrip and Quaxtrip (respectively). The video of the Zoom call is posted here:

My part is a pretty pedestrian overview of Quaxtrip, but Miller goes into more background info about network sound in general.

4 Likes