
On this day one of the second lockdown of the year twenty twenty I’m allowing myself a complete off-topic from the usual themes of this journal: a music setup to spend time pleasantly while staying at home. I hope you’ll forgive this deviation and I hope this testimonial will inspire or be useful to other musicians. The setup I’m talking about was itself suggested to me by N1k0, thanks! So two objectives for this off-topic article: to share, and to create a reference for myself.

In the photo above: a guitar (in this case a Gibson Firebird Tikibird series 2013), a laptop with Linux Ubuntu, an external USB audio interface (with two XLR inputs for instruments or microphone) Komplete Studio 2. Not in the photo: a friend who records his drum part on his side. On my side: a “recorder, multitrack mixing board”: Reaper. It works very well on Linux Ubuntu, it’s far beyond Audacity, it’s much more understandable and functional than Ardour.

To access a multitude of effects and sounds we add a layer called Tonelib GFX (likewise packages are available and work well for Linux Ubuntu). For example below I chose the “basic” effect: classic blues (my thing is mississippi hill country blues, try R.L. Burnside or Junior Kimbrough).

So I have a guitar, I have a friend’s drum track (or I use Hydrogen on Ubuntu Linux, a drum machine), I plug the guitar into the Komplete Studio 2 audio interface which sends the signal into ToneLib GFX which applies a layer “here’s the effect you wanted”, which then goes to my multitrack mixing board (Reaper). I can sing (yes yes) at the same time into a microphone that goes into the second input of my audio interface. And which goes directly into the multitrack mixing board without going through the effects layer.
Two small challenges
Real-time audio: JACK & QJackCtl
Important: you need real-time audio management. Otherwise you play guitar, then the processor moves to work on effects, then to work on the multitrack, then it comes back to the guitar, and everything becomes completely out of sync, unlistenable. The audio needs to be prioritized and everything that relates to audio needs to stay synchronized. For this we use Jack. Jack allows real-time, synchronized management of all these audio sources.

Hassle on Ubuntu Linux you’ll need to juggle between PulseAudio (Ubuntu’s audio system), and Jack (which enables real-time and more). You need a good config to easily switch from one to the other. QJackCtl allows simplified management of all this.
Below I’ve checked “real-time” and I’ve lowered the samples and period low enough to have a maximum latency of 17.4ms as indicated. Meaning a maximum desynchronization of 17.4 milliseconds.

Below I’ve added the argument “pasuspender – jackd”: when the Jackd daemon is launched it suspends PulseAudio. And you see that the input device is K2,0 (Komplete Studio 2 plugged in via USB)

A few other options just in case:

Making all the right connections
Another small challenge, making all the right connections: from the audio interface track 1 apply effects then to the mixing board, and from the audio interface track 2 directly to the mixing board, output the mixing board to standard output (for me).
Here the system captures the sound (from the Komplete 2). I send 1 to JuceJack (which is Tonelib’s interface), and 2 (the vocal microphone) directly to Reaper. I send ToneLib to Reaper (the guitar + the effect). If I was using Hydrogen as a drum machine, it would appear (if I tell it to use Jack as the audio system), and I would also send it to Reaper. Then Reaper outputs to standard output (my headphones).



And we’re off!! Oh no, now I have to learn how to sing…
Conclusion
This is just the beginning but it’s really a lot of things made easier and that become fascinating. A real little studio in the corner of your desk. Thanks Nicolas for the discovery. But do you do things differently?
Update!
If I copy ToneLib-GFX.so into ~/.vst or if I specify the right path in the configuration (/usr/lib/vst/ToneLib-GFX.so for me): I can manage ToneLib directly in Reaper. Much more practical. Thanks N1k0!
