Monday, October 13, 2014

Meta-trombone on iOS

When I was invited to perform at IMOOfest 2014 as part of the IMOO Chamber Orchestra (featuring Jean Derome and Joane Hétu), festival organizer Craig Pedersen asked me to keep my electronic setup as simple as possible.

There were two considerations that guided the redesign of my meta-trombone. First, I wanted a lighter rig that could be quickly deployed on stage. Second, I had to make changes to adapt from solo performance to ensemble playing.

Lighter is better

I’ve already given details on all the hardware and software that I have been using to date to create the meta-trombone. If there is one problem with this rig, it is the weight of my Gator case (laptop + 2U), While I certainly like its sturdy construction, hauling it through the Paris subway last summer made me question its necessity. It certainly annuls one of the advantages of making music with a computer: not having to carry heavy gear all over the place.

The model I chose to adopt was that of the guitar player: I wanted my rig to consist of a small pedalboard, my instrument and an amplifier. I think this meets IMOOfest’s simplicity requirement as I know other performers will have a similar setup. It will also allow me to play in venues that don’t have their own PA, such as art galleries and house concerts.

Starting with the end of the signal chain, I began to research amplifiers, I quickly excluded guitar amps, since they’re an extension of the electric guitar and add too much tone coloration to the signal to be of any use to me. I briefly considered buying a keyboard amplifier, but ultimately I decided to buy an Electro Voice ZLX powered loudspeaker. The ZLX is inexpensive, sounds decent and is quite versatile. It can output up to 126db, which can easily match the acoustic sound of the trombone. I bought a single speaker for the IMOO gig, but I think I’ll get a second one for solo work to abuse the stereo field.

Moving to the pedalboard, I decided to port my Bidule patch to Pure Data so that I could run it on my spare iPhone 5. I’ve been playing with libpd since it was rolled out, but instead of coding my own iOS application, I went for the simplicity and ease of use that MobMuPlat offers. I quickly created an interface in the MobMuPlat editor and I had a Pure Data patch running on my iPhone in no time (look below for further details on the patch).

The biggest hurdle to making music with the iPhone is that you need to get audio and MIDI through the iPhone’s unique connector. Apogee’s Duet provides an elegant solution as it offers an audio interface (2 inputs / 4 outputs) with a USB MIDI connector. I connected my KMI 12 Step to it without any issue. I’m also using a Yamaha FC-7 expression pedal that connects to the 12 Step expression port. Audio input is through my trusty Audio-Technica ATM350 Cardioid Condenser Clip-On Microphone. All the gear fits on a Pedaltrain 2, which came with a nice carry bag.


(notice extra room for future iPad expansion or stomp boxes)

Working with iOS

Aside from the previously mentioned MobMuPlat, I’m making use of several other apps as well.  First, for pitch to midi conversion, I’m using MIDImorphosis.  There are other apps that provide this functionality on iOS, however this is the only one that has Audiobus support and that made the difference in the end, since it’s the only I’ve found of splitting a audio channel to two different apps. I’m also using Audiobus to route the output of MobMuPlat to Moog’s Filtatron.  Filtatron is a great sounding app that combines an analogue-modelled filter with modulation, a warm distortion and a delay with feedback and modulation.  There’s also an oscillator and a sample player/looper but I haven’t needed those yet.

Below is what the routing looks like in Audiobus:

Photo 1  1

This is the interface to my Pure Data patch in MobMuplat:

Photo 4

I have a second iPhone 5 strapped to my trombone that can send MIDI control signals over bluetooth (using the excellent Apollo MIDI over Bluetooth app from secret base design).  I created the following interface in Lemur to control Filtatron and send midi notes to my Pure Data patch:

Photo 2  1

Photo 3

The patch I create in Pure Data is essentially a looping sampler.  Once a phrase is recorded, it can be played back a different rates. When the LOOP toggle is on, the notes sent to the sampler will be held and the sample will loop at the playback rate that corresponds to the given note.  Up to four notes can be held at one time (with voice stealing). 

Additionally, the trombone performance can be analyzed with MIDImorphosis to convert the audio to MIDI notes. These notes can be used with the sampler in one of two modes.  The first is the “Sampler” mode in which the playback rate is fixed at a value determined by an adjustable pitch shift value. The MIDI notes triggered by the trombone will select the starting position within the sample in such a way that a given pitch class will always trigger playback from one of twelve divisions within the sample. The “Synth” mode will trigger playback from the beginning of the sample at a playback rate corresponding to the actual note played on trombone.

Future development

This setup served me well in performance and I’m not looking back. I believe that all future development of the meta-trombone will take on this platform. The next logical step would be to add a looper to this setup. I already have a nice hardware looper I could throw in, but I’ve had a lot of fun playing with a Pd patch created by  Marco Baumgartner called ALFALOOP, which is a well designed delay-based looper that has all the features I need to build from.