JackAudio Setup for NI3 Dance

A post that describes NI3 Dance's live software setup:
All free and open-source software, MIDI and Audio routed with Jack.

I presented Vecosek and Vimebac a couple of years ago at OCaml-2018 and FARM-2018. Afterwards, I swore to some people I'd describe a bit more my particular usage within NI3 Dance; so here it is.

Desktop with the setup

I've never managed to make “native” session management work for me reliably. I need my setup to be resilient to to missing items or some changes in configuration (e.g. presence or not of MIDI/Audio extra hardware, like my “Looptimus”).

⇒ My session management is GNU-Screen 👴

A script just starts the various applications like this:

screen -S ni3_session -X screen -t Sampson ./start_sampson

It seems archaic but it provides easy logging and easier killing.

I start everything 4 phases called manually (they are just different key combinations using Comk ☺).

The first only starts QJackCtl (rncbc/qjackctl); it can be useful to change the configuration before starting the rest. Starting jackd can sometimes just fail, it's nice to have a simple setup to debug.

The second start all the small applications that can live happily by themselves:

The third stage only starts Ardour with a custom session. Ardour knows about its Jack-connections, so it's better if all other software is started by the time it initializes. It used here as a mixer and effects host, I use simple things from calf-studio-gear.

The last stage is often restarted and tweaked: it runs Vecosek with a freshly generated “scene” and then runs an OCaml script to connect the various jack-endpoints (with the --start-hook option).

I only ever use patchage to make nice screenshots:

Patchage screenshot of the setup

We see a2jmidid and Vimebac being control inputs for vecosek, itself connected to MIDI-instruments as well as back to Vimebac for visual feedback. Then the flow leaves the MIDI-world (in red) onto the Audio world (green) for mixing, effects, and output (“system playback”).

At some point, instead of Ardour, it used to be Non Mixer together with the Calf plugins in standalone mode. But Ardour, while heavy and capricious, simplifies a lot, and provides quick “record snapshot” functionality to get a jam on tape.

There are still a couple of pain points:

After 8 years of blograstination, this is post #3 of my attempt at not getting too fast lagging behind on the #100DaysToOffload “challenge” … Let's see where this goes.