home

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.