flavor 8

Notes about things

Multiple MIDI Devices To (Ideally) One Track (in Bitwig, Ardour, Reaper)

ardour reaper bitwig midi hardware

In this post I compare the three principle DAWs available on Linux with respect to one specific MIDI related workflow: I want multiple MIDI inputs on one track, and ideally to use the same track for audio.

I have a Keystep (MIDI keyboard) plugged into the studio laptop via USB, and a Minilog (synth) connected via a MIDI controller, but located on the other side of the studio from my desk. I want to work out a tune on the Keystep (which is at the desk), record it as MIDI, and then while the tune loops in the DAW record (and overdub) MIDI CC (e.g. changing the cutoff on the filter) from the Minilog. Because I use a control surface, I want to minimize the number of tracks (because each track takes up one slot on the control surface). Here’s what that looks like in each of the three DAWs.

The following is the current best of my knowledge on this subject; I’ll update and/or replace this post if I learn anything substantially different.

Bitwig

Bitwig has a unique innovation - the Hardware Instrument track. This is a single track which is configured to be both MIDI out and Audio in (from the synth). Even more brilliant, you can automatically configure the latency – per track – by pressing a button to tell it to start measuring, and then playing keys on your MIDI keyboard. It will measure the time between sending the MIDI to the instrument, and receiving audio back, and then will automatically adjust the latency of the track to keep everything in sync. However, I have not found a way to record audio on the same track; you still need a separate track for the audio result. (There is a “bounce” feature which I haven’t yet managed to get good results from, and which may do the job - will update after more experimentation.)

You can also set up the Keystep as a universal controller; change the channel on the Keystep and the track that’s configured to that MIDI channel will both record and send MIDI to the synth that it’s associated with (caveat that the track must be selected for this to work - fortunately you can select multiple tracks at once.)

Each synth must be added as a “MIDI Keyboard” controller ahead of time in the global settings. Make sure “All In” is selected as the option for controller input on the instrument in the mixer view, and it will be able to receive input from both the Keystep and the synth.

Ardour

Ardour wins when it comes to flexibility of routing. In the screenshot you can see that a given MIDI track can have as many inputs and outputs as you like. However, tracks are either Audio or MIDI, so you need to pair tracks together to achieve the described setup. (Ardour has an intuitive track grouping feature, which makes it easy to keep related tracks together; however, they still take up multiple slots on the control surface.)

You can set up channel filters on the inputs - this allows you to set a Keystep up as an input for multiple tracks, and then switch between them by changing channel on the Keystep. Further, theoretically you could have different MIDI keyboards outputting the same channels to different tracks, given the routing capabilities, something that Bitwig can’t do.

However, I haven’t put in the time with Ardour, as I have with Reaper, and it’s unfortunately not as immediately intuitive as Bitwig is. I had trouble with overdubbing while looping a recording - it wouldn’t play back the existing notes while recording, and googling didn’t lead me to a solution. I also had issues with general workflow, but this is something that would likely come with time. If I could collapse the tracks into one on the control surface, I’d certainly give it the time to learn it.

Reaper

Reaper ended up using the most tracks out of the three DAWs - one for audio, one for MIDI from the synth, and one for MIDI from the Keystep.

Reaper tracks aren’t specifically MIDI or Audio; you assign an input by right clicking on the record button after the track already exists, and then choosing from (as usual for Reaper) one of many options. I grouped together MIDI tracks with their Audio tracks using Reaper’s folder feature, as you can see above. In the Mixer UI, you can right click and choose “Group tracks at left”, which at least means that the control surface has audio tracks clustered side by side together. Unfortunately there’s a bug whereby it forgets that it’s setup to do this, periodically, and so the MIDI tracks end up appearing next to the audio ones on the control surface now and again. I can get around this by moving them out from subfolders, and to the end, which I may do…but having the MIDI track physically separated from the audio track isn’t ideal.

The annoying aspect of the separate Keystep track is that I have to send the Keystep output to a particular device; the MIDI controller has 16 devices, corresponding to different MIDI DINs, so you can only send the Keystep’s output to a single hardware synth at once, and furthermore it’s not possible to switch on the fly without menu diving. I could get around this by adding a Keystep track per pair of audio/MIDI synth tracks, binding to individual MIDI channels, and that would let me switch channels on the Keystep and send MIDI to individual synths through the DAW, providing that the tracks were armed. But, that’s a lot of tracks just to achieve this setup.

Reaper has an amazing Routing Matrix view - you can see that they’re so close to being able to support the workflow if this just allowed multiple select, along the lines of Ardour.

Current Conclusion

Both Ardour and Bitwig require two tracks for this configuration; one to handle MIDI I/O, and one to handle the audio recording. With this setup, I find myself preferring Bitwig over Ardour, as it’s simply less fiddly to set up, and its workflow was designed to accomodate setups like this. Reaper, my previous main DAW, is unfortunately now on the bench. I will continue to research ways to get rid of the redundant tracks on the control surface; this surely cannot be a unique requirement.