**** Cassettepunk ****

Technological Surrealism / Alec Nerds Out

Vox Humana

I was recently contacted by a local escape room with a project: replace an ailing antique pump organ (SFW) with something more playable. They wanted the keys, when pressed, to “speak” a numeric combination that opened a lock in another part of the room.

I had recently come across Neil Thapen’s Pink Trombone, and wanted to do something impractical with it. It was the perfect match.

Step 1: Get the organ.

Pneumatic pump organs (a.k.a. harmoniums and melodeons) were popular home instruments. Their manufacture peaked around the turn of the 20th century, with millions produced by an array of manufacturers. There was apparently a patent gold rush at the time, too, leading to a huge variety of mechanisms. But fundamentally it’s the same principle as an accordion.

This particular specimen was made by W. Doherty & Co., in Clinton, Ontario, Canada. I found it on Craigslist for free. (You can get one too.)

Fun fact: these are mostly put together with animal glue, and someone from the restoration community will come to your door and kill you if you break with tradition.

Step 2: Plan

A common stop on an organ is called “Vox Humana”, or “Human Voice” in Latin. This is supposed to somehow sound like a choir or soloist, generally by adding a tremolo effect. It’s not effective — all pump organ stops sound like pump organ stops. I wanted to modify this stop so that engaging it would sound like a human voice — and not at all like a musical instrument.

Because I’m working with a 100-year-old-ish antique, I set some ground rules:

  • No externally visible modifications. A centenarian should be proud of its age.
  • Existing functions should be preserved. Nothing should be broken for the sake of the modification. (And luckily for me, the Vox Humana unit on this one was already broken.)
  • No destructive modifications. It should be possible to return the organ to its prior state with minimal impact.
  • No rabbit-holes outside my skillset. I’m not in the organ restoration business. Pretending otherwise is likely to break or degrade the antique.

Someone is guaranteed to complain (ding ding ding! We have a winner!) about this project being a desecration of an antique. They probably won’t have read this part of the post. The change in the organ since I got it is that it now has some tiny nail holes in its interior, and someone in Surrey isn’t trying to get rid of it for free.

I decided to add a switch to each key (yikes, that’s 77 keys!) and connect them up to an Arduino Leonardo. As the Leonardo uses a USB-capable Atmel chip for its main controller (unlike the Uno which has a secondary controller just to handle communication with the host computer), it’s easy to get a Leonardo to impersonate a USB device like a mouse. Or a MIDI keyboard. Then the Leonardo, impersonating a MIDI keyboard, would connect to a host computer, which would do the sound synthesis.

Step 3: Lots Of Switches

The majority of the work on this project went into installing switches.

First, the keys need to be exposed. A wooden panel on the front of the organ, below the keys, can be removed with 4 screws. Then the keys need to be freed from above; this involves removing the stop action, then the wooden strip that holds the keys at their very rearmost and acts as the fulcrum. This will permit you to pull each key off its two metal retaining pegs.

For switches, I chose microswitches for the white keys, and tack switches for the black keys.

The microswitches are ideal: they don’t affect the feel of the keys, or obstruct their motion; they can be installed just behind the front panel with a couple of nails, and there’s already a good wiring channel and access for servicing.

The tack switches aren’t quite as perfect: they’re a little clicky, trickier to wire to, and are mounted using the much-hated hot glue gun. However, it’s an OK sacrifice for the black keys (sharps/flats).

These are wired as an 9×9 matrix — out of a possible 81 switches, we use 77 for the keys, and 1 for the “Vox Humana” stop (to which a switch is also mounted). Arduino pins 2-10 get the rows, and 11-19 get the columns. (I opted not to use diodes in this matrix to keep cost and fiddliness down; the Arduino Keypad library we’ll use to scan the keys can handle this safely, though some ghosting is observed when pressing many keys.)

Step 4: Arduino Code

With these wired into the Arduino, it’s a quick job to bring together the MidiUSB and Keypad libraries.

The only special case here is that we’re using one of the notes to sneak the state of the “Vox Humana” stop into the host computer. There’s doubtlessly a more MIDI-ish way to do this, but it served my purpose.

Step 5: Host Machine Code

I picked up a used low-profile desktop computer from Free Geek Vancouver and built it inside the back of the organ. Computationally this is overkill for the project, and I would have preferred to use a Raspberry Pi, but it’s outside my main skillset to port the real-time audio synthesis into something the Pi can handle, and used computers are plentiful. (The Pi can run the Chromium web browser, but not quickly enough for anything realtime.)

With the host machine running Pink Trombone, all that’s left is to map MIDI events into the vocal tract synthesizer. I thought this was going to be complicated — but fortunately there’s the Web MIDI API to the rescue. This permits Javascript code (like the Pink Trombone) to access MIDI devices right from the browser. Thus the modifications to Pink Trombone comprise a page or two of fairly simple code, mapping notes onto various combinations of mouse clicks.

The result speaks for itself!

I’ve uploaded a second demo using the Bristol synthesizer emulator, which is a slightly more musical example.

Categorized as: Uncategorized

Leave a Reply