# Making practise tools for amateur musicals, Linux edition

August 1, 2018

A couple of years ago, I was Musical Director for a local musical theatre production. This year, I got the opportunity to do something similar for a production of Rodgers & Hammerstein’s Cinderella, and I spent quite a bit of time making practise materials for the cast. In the intervening time, I switched from Mac to Linux for my personal machine, so I thought an update on the tools I used might be in order.

There were a couple of differences in my objectives for this project. For example, rather than producing both scores and sing-along practice tracks as with the last project, I only needed to make the tracks in this case (what a relief!).

That had an effect on the methods I chose to use when recording. When I was making scores, getting note values exactly right was a high priority, so I used step recording for note input. That gave me the precision I needed for a score, but was quite time consuming. Since I was only making the sing-along tracks for this latest project, I was able to play the score directly into the recording (albeit in short sections, one hand at a time). You’ll also find that I don’t mention any score engraving software this time around.

## Hardware

### System76 Galago laptop

System76 specialise in Linux laptops, customisable in almost every respect. Their 13-inch Galago model features a HiDPI display, which I’m quite enjoying. The onboard audio, however, leaves a bit to be desired when it comes to recording. The built-in headphone and mic channels are both exposed to quite a bit of noise, which results in substandard recordings, especially when you’re recording 4 vocal parts and layering them together!

Hence, my next investment.

### Focusrite Scarlett 2i2 USB audio interface

This little fellow cleared my line noise problems right up, and works with Linux (or at least Ubuntu) out of the box.

### Shure SM58 microphone

A standard choice for an omnidirectional dynamic mic. No regrets here.

### M-Audio Keystation 49

This one hasn’t changed from the previous edition. I’m still pretty pleased with it, and I’ve learned a little more about how to use it as well. Fortunately for me, it also works out of the box with both Mac and Linux.

## Software

### DAW: Ardour

The Digital Audio Workstation (DAW) I chose is called Ardour. I chose it mostly because it (a) connects with JACK easily, (b) is libre and free, and (c) seemed popular, and hence would have some degree of community support if I got into trouble.

It served me well, though I was on a continuous learning curve through the entire process of recording about 20 tracks!

### JACK & Qjackctl

JACK (JACK Audio Connection Kit) does the job of connecting a system’s many audio inputs and outputs together. It can be a bit daunting to get started, but I found that this guide really helped me understand what I was doing.

### FluidSynth & Qsynth

FluidSynth is a MIDI software synthesiser, which uses SoundFonts to turn MIDI signals into sounds.

Qsynth is a GUI for FluidSynth, which makes it easier to manage.

I found these useful for when I wasn’t recording with Ardour (which manages its own FluidSynth), but still wanted to use the MIDI keyboard and hear what I was playing.

### a2jmidid

So Ardour, FluidSynth and friends were all using JACK to communicate with one another, and that was great. I faced a little challenge when I realised that my MIDI keyboard was sending signals on the older ALSA bus. A quick search revealed a2jmidid, or the ALSA to JACK MIDI Daemon, which basically does what it says on the tin: it takes MIDI signals from the ALSA bus and retransmits them over a connection to JACK, and vice versa. Very handy.

### Foreman

After a while, I got tired of starting all these different tools in sequence. Occasionally I’d start them up in the wrong order, or I’d be running command number 5 and suddenly realise that I’d made a mistake in command number 2. Super frustrating.

Fortunately for me, I’d encountered a tool for a purpose very like this, in my work as a software engineer. Foreman is a handy little utility for running a number of programs at the same time. To use it, you specify all the processes you want to run in a file named Procfile. Foreman reads that file and starts the processes you ask for. It’s quite a simple tool, so it lacks (as far as I know) any features about getting those processes to communicate with each other. Fortunately, that’s what Jack is made for.

### Controlling Ardour from a tablet using TouchDAW and QMidiNet

Once I’d recorded all my piano and vocal tracks (with some help from a couple of very generous friends), it was time to mix. It turns out that controlling a mixer using a mouse or trackpad can be a tedious experience. To help with this, I started looking into other ways of controlling Ardour, preferably using touch.

I tried out a few different tools, and none of them really satisfied. I got the best results using TouchDAW and this guide to setting it up. I can’t say I was overjoyed with the results - I eventually went back to using a mouse to control the mixer. That may have been partly due to the fact that I was working on the opposite side of the house from the WiFi access point. All the same, I like the promise of the Open Stage Control protocols, but I don’t think the current libre technology fulfills that promise just yet.

### Publishing

I published all the finished tracks to a bucket in Amazon S3, which I made public so all the singers could download what they needed. Maintaining the index pages for all the parts got tedious as I uploaded new tracks, so I ended up maintaining those in Markdown, and using a little script to render them to HTML and sync a folder on my laptop to the S3 bucket. From there, it was easy to send links via email or other means.

One little gotcha with using S3, though: be sure to set the metadata on each file with Content-Disposition: attachment, so that web browsers know to download the file to disk instead of playing it in the browser.

So there it is, an updated round-up of this project’s technology choices. I hope it’s been helpful!

Making practise tools for amateur musicals, Linux edition - August 1, 2018 - Lucas Wilson-Richter