Building a USB MIDI controller

Figure 1: A basic 6-button footswitch USB MIDI controller. LEDs show button state.
I’m working on some pieces at the moment that require some electronics to be triggered via footpedals in performance. The problem is that I don’t have any MIDI foot pedals, and those that exist are expensive or overkill or both. All I need is a simple, passive MIDI pedal, connectable via USB that can give me a bunch of footswitch triggers (and maybe more features down the road). So, I decided that I’d build my own, and thought that if I documented the (surprisingly easy) process, others might see how easy it is to get custom hardware controllers…

There are a few simple options out there. In the first instance, an Arduino would probably cut it. I could use the serial port, or run a MIDI library to get what I need. Arduino is simple to learn, but I didn’t really need all the extras (or the board size). A Teensy is a smaller, equally affordable, and in some cases, a more versatile microcontroller that gets used a lot in USB MIDI and Music Tech related projects. And there’s a handy MIDI library already out there. So I opted for a Teensy (v3.2).

I sourced a cheap aluminium box here (a nice diecast Hammond box would have been lovely and heavier duty, but they’re expensive. This (Takachi Electric Industrial, MB-14) was 5 quid). For my current purposes, I only need 4 switches, but I got carried away and cut holes for 6 — not realising that this narrows the footprint considerably, making this a tricky thing to trigger with shoes on. It’s also a real mess of wiring inside as a result. If I’d thought about it before, I would have limited the switches to 4. As they say: measure twice, cut once. Lesson learned.

Switches are simple momentary (not-latching) switches, with some LEDs for visual confirmation. Below is a quick breadboard mock-up of the setup:
Figure 2: A breadboard mock-up of the circuit (in the finished product, I skipped the breadboard and chained the ground on each component) [made with Fritzing]
Figure 3: I took the strain off of the Teensy’s USB port by adding a panel-mount USB cable. It also allows me to use a slightly heavier-duty USB-B-type connector, as opposed to the Teensy’s micro port.
The code for the Teensy is simple given Josh Nishikawa’s MIDI controller library available here (Note, that I’m interested in MIDI controller numbers/values, not MIDI notes, Teensy can handle regular notes without a library). I’m only using the Pushbutton, assigned as MIDI control numbers (20-25) as they’re typically unassigned. This could also be serial, or MIDI note numbers rather than controller number. The code is simple: when a footswitch is pushed, fire off a MIDI control value of 127, otherwise it’s zero. When the pedal goes down, the LED pin is also lit up. In Max, all I need to read this is a [ctlin], [pak] and a [route 20 21 22 23 24 25] and I’ve got my pedal triggers into Max (see .maxpat in my git below). Easy.

In the Arduino IDE (Teensy uses the Arduino IDE, just with an additional library. There’s a guide to getting started with it here), I wanted the MIDI device to show up with it’s own name, so use the {name.c} file to set that. Set your USB Type to ‘MIDI’ in the Tools menu, and set your Board to ‘Teensy 3.2’, upload all that to the board and you’re done! A cheap, custom MIDI controller…


  • We’re gonna need a bigger boat. The initial plan was to include jack sockets and a stereo TRS jack so that I could plug in keyboard sustain pedals and an expression pedal to read as MIDI controllers. The code is simple, but since I didn’t leave myself enough space in the box, they won’t fit now.
  • Push-and-hold. My Max patch takes care of held buttons for flexibility, but this could easily be programmed in at the MIDI device level. Currently, if a button is held for x seconds or more, it clears a buffer.
    • Writing in at the Teensy level would let me have LED feedback too (light flashes after x seconds). I suppose I could set this anyway, but without it linking directly to the Max value (via serial?) there’s little point.


Kranichsteiner Musikpreis, Darmstadt Summer Course 2018

I am delighted to have received the Kranichsteiner Music Prize at this year’s Darmstadt International Summer Course. While I’m currently still a bit overwhelmed, this is a real honour and I’m truly thankful to the jury for their support. I’d like to also congratulate the other prize winners Sara Glojnarić, Martin Hirsti-Kvam, and Carlo Siega.

I want to make particular special thanks to the people who brought my music to life in the festival: Rahel Schweizer who played o horizon, gloa on the forest floor for solo harp, and Nate Chivers and Thilo Ruck who both worked on my guitar etude polynya, or ever less. Without their hard work and trust none of this would have happened, and I can’t overstate how much of a privilege it was to work with them throughout the festival. I also want to thank Yaron Deutsch, Gunnhildur Einarsdóttir, Martin Iddon and everyone in the Harp workshops for their amazing support.

Rahel Schweizer premiering o horizon, gloa on the forest floor. 📷: Aaron Holloway-Nahum (@aaronhnahum)

You can read more about the prize here, and yes, there’s a reason why I’m not in the picture. I’ll tell you about it at Darmstadt 2020.

Is This Thing Still On?

After an absence of over two years I’m brushing the dust off. I’m powering machines back up, replacing snapped strings, retuning and broadcasting once more from West Yorkshire.

A lot has changed since the last transmission: I completed my PhD in Composition and have taken up a teaching fellowship at the University of Leeds. I also stopped making music for nearly two years (PhD burnout is real and unpleasant), which was difficult. But after some time away, some self-care/discipline, and good conversations/ttrpgs with friends, 2018 has seen the wheels begin to turn again. It hasn’t been pretty, but it’s getting there. I know you didn’t ask, but here’s a run-down of what has been happening recently:


Seth Parker Woods (USA), a supremely brilliant cellist and a very dear friend, commissioned khepri for Cluster festival in Winnipeg, CA. khepri for solo cello focuses on the tiny noises of the cello as Seth performs some fiercely quiet bow taps and finger strikes. Premiered 2nd March 2018, Winnipeg, CA. There is no recording of the premiere, so instead check out Seth performing Iced Bodies here with Spencer Topel. An intense re-imagining of Jim McWilliams’ Ice Music (1972).

abate ablaze abrade was commission by London’s Plus-Minus ensemble and premiered 27th March 2018 at City University, London. Other new works by Ben Jameson; Alice Jeffreys; Lawrence Dunn; Caitlin Rowley ; and Monika Dalach. It’s a slow, tangling trio for bass clarinet, piano and cello. Due to noisy lights (a sure sign that your music is quiet), the performance took place in the dark which was wonderfully evocative and testament to how brilliant these musicians are. Bass clarinet—Vicky Wright; piano—Mark Knoop; cello—Alice Purton.

In July, I’ll be at the 49th Darmstadt Ferienkurse Internationales Musikinstitut. I’ll have two new pieces being performed and workshopped:

polynya, or ever less is an etude for electric guitar, written for Yaron Deutsch’s concert and guitar studio. The piece uses a glass test tube to bow the strings, while the free hand plays soft hammer-ons. It’s quiet in spite of the amplifier. Glacial shredding.

o horizon, gloa on the forest floor was written for harp and a hand full of metal, and will be workshopped by Gunnhildur Einarsdóttir’s Harp studio. The piece builds up a number of tectonic hums and scrapes, as the player slides along the string with a hand of metal. Sensual scratching.

Further ahead, Ensemble Nikel (who, I suspect, a couple of you will have seen at last year’s hcmf//) will be ensemble in residence at Gaudeamus festival in Utrecht, NLD. If you’re there, they’ll be playing my whose veil remains inscrutable on 6th September 2018.


At the start of 2016, before everything went dark, I released something without fanfare. Listening back I still quite like it, so for your consideration: larynx, closing

In 2017 Ensemble Nikel released their retrospective 4CD+DVD+BOOK box-set A DECADE. It features their recording of my whose veil remains inscrutable that we made in Bern in 2015. It’s an exceptional performance and a wonderful album that I’m delighted to feature on. Audio excerpt here.


If you read my 2015 article Disappearing Sounds: Fragility in the Music of Jakob Ullmann in TEMPO (Vol 69, Issue 274, Cambridge University Press), I’ve written a sequel. Rebuilding Babel: On Fragility And The Palimpsest In Jakob Ullmann’s voice, books and FIRE (Vol 71Issue 282, Cambridge University Press) was published in October 2017. It focuses on Ullmann’s huge cycle voice, books and FIRE and is similarly unwieldly.

I also reviewed Apartment House’s premiere of a new Christian Wolff piece, performed alongside Cage’s Concert for Piano and Orchestra(1957–58) for TEMPO’s January 2018 issue. It was good.


That’s it for now. I’m going to try to make an effort to post more as I make more work, so, err… consider yourself warned?

Until next time,


Twitter | Instagram | Bandcamp | Soundcloud


In the last month or so, I’ve been reading a lot of Jeff VanderMeer and Cixin Liu. I’ve been listening to Taku Sugimoto’s h from Another Timbre and I’ve been watching the university of Leeds’ newly hatched peregrines. [If you made it this far, you owe it to yourself to watch cute baby chicks eating other birds]

larynx, closing

last week, I released a new album of solo material. larynx, closing is a collection of two, or maybe three, or maybe four pieces across one hour and twenty minutes. it is very quiet.


1 – grid of four: first, across (16:07)

2 – against the grain, larynx (24:45)


3 – against the grain, larynx (continued, end) (16:34)

4 – grid of four: first (alternate take) and second, across (23:40)

viola. harmonium. Klaus Lang on Ilkley moor.

Last November I made a short film with Klaus Lang up on Ilkley Moor. I wrote a piece for Klaus and, together with Viola d’Amore player Barbara Konrad, we carried a harmonium up onto the moor. The film documents two pieces, my ‘a technical diagram for the abstraction of ockeghem’s missa pro defunctis: kyrie, side elevation‘ and a section from Klaus’ longer cycle: ‘viola. harmonium.

viola. harmonium. on Ilkley Moor from Oliver Thurley on Vimeo.

This film couldn’t have been made without Ollie Jenkins, who took care of all the filming and editing, and Elspeth Mitchell, who helped organise and produce everything. The project was part-funded by the Centre for Practice-Led Research in the Arts (CePRA) at the University of Leeds. Thanks also to Helen Barker and Rex Russell for their assistance.


IMG_1181 (1)


A slight digression from the usual “contemporary classical(ish)” stuff, I’ve released a new tape under my WITH ZERO moniker. NOCTURNES is a 60-minute slow-burning new age piece, intended for deep nighttime listening, meditation and states of half waking/consciousness.




The cassette comes in a limited edition of 50, pro-dubbed on transparent glittering shells (because, y’know…) and is available via bandcamp.


IMG_1142 (1)


The WITH ZERO project has been around since about 2012, mainly as a hard drive with which to store miscellaneous synthesiser sketches. This is the first proper release, with a few more in the pipeline for the next couple of months.

Ullmann article now up

Screen Shot 2015-09-08 at 09.52.46


I recently wrote an article on fragility in the music of Jakob Ullmann. I’m very pleased to say that it is now available, published in the excellent TEMPO music journal (Volume 69 / Issue 274, Cambridge University Press).


If you have institution access (or a subscription, which is well worth it), you can read the article here, otherwise, I hope to make the text available as soon as I figure out a way around academia’s archaic copyright systems ( cough email me cough).


For those within reach of HCMF this year, you have a great chance to see a rare performance of Ullmann’s work coming up. Don’t miss it…

Jakob Ullmann :: LIST OF WORKS [2015]

[This list is also available via my page and in PDF here.]

Jakob Ullmann

— chronological list of works —


Komposition 2 für Orgel


Organ solo

Komposition für 10 Instrumente (I-V)


  Fl., cl., hn., 4 vl., vla., vc., cb


Komposition für Flote (I-III)


  Flute solo 

MNIMA auf texte von Anna Achmatova


3 female voices, alt.fl., ob., vc., und 36 solo strings

Komposition für Streichquartett


  String quartet

30’|| recording

Komposition für Posaune


  Trombone solo

Symmetries on א [aleph] zero 1


  12 instruments

Symmetries on א [aleph] zero 2 (Komposition für Violine)


  Violin solo

  15′ || recording

Symmetries on א [aleph] zero 3


  4 percussionists


ALAKATA in fünf teilen


  Fl., eh., tbn., perc., hf., va., vc., cb.


La CAnción del ÁnGEl Desaparecido


  Ob., eh., tbn., perc., va., vc., cb.




  Horn quintet

Son Imaginaire II


  Piano solo

  Duration ad lib.

Son Imaginaire III (piano pianissimo)


  Any instrumental group


Meeting John Cage Under The Tropic Of The Late Eighties Oder Wir Überholen Die Moderne


  Instrumentation ad lib.


Komposition á 9 (Palimpsest)


Voice, 2 fl.,, vl., tbn., va., vc.

30’|| recording



Viola and live-electronics


Disappearing Musics


6 Players (More Or Less)

32′ || recording (1)  || recording (2)


(1989 – work in progress)

2 fl., ob., 2, 3 tbn., perc., va., 5 vc., 2 cb., 17 actors


Due Frammenti (für Luigi Nono)




Komposition 1 für Orchester (I-V) »…Schwarzer Sand/Schnee…«



i: fl., eh., tbn., hf., 4 vl., 6 va., 2 vc., ii: ob., bssn., tr., 4 hrn. , timp., 2 vl., va., 2 vc., 2 kb., iii: kl., basskl., bssn., tr., 7 vl., 2 va., vc., iv: picc., fl., eh., basskl., 2 tbn., 13 vl., va., 3 vc., 4 cb., 3 perc.

50’|| recording

voice, books and FIRE I


Voice(s) and any sound-creators

70′(original score lost)

25 Items in Variations (II)


Preparations for John Cage’s Variations II for chamber ensemble


voice, books and FIRE II/2


Voices (and sound-creators)


Echoing The Distant Sounds


Percussion, 4 (wood)wind and string trio


– also performable separately:

Komposition für Streichtrio (I-III)


(String trio from Echoing The Distant Sounds)


Solo I

(1992-93; revised 2010)

Flute solo (later oboe da caccia)


Solo II

(1992-93; 2010)

Trombone solo (later bassoon)


Solo III

(1992-93; revised 2010; 2012)

  Organ solo

  32’ min || recording

— all Solo series may also be performed with accompanying electronic modification or in combination with other solos —  also recorded as Solo I+II+III || recording

Komposition für Orchester 2



i: fl.,, tbn., eh., 2 vl., va., 2 vc., 3 cb., string trio i; ii: 4 hr., pno., vl., 2 va., 2 vc., 3 cb., string trio ii; iii: fl., tbn., cl., bssn., timp., 2 vl., va., vc., kb.


voice, books and FIRE II/1




Komposition für Orchester 3



i: fl.,, tbn., perc., 5 vl., 2 va., 3 vc., cb.; ii: bssn., 4 hr., tr., 6 vl., va., 2 vc., 2 kb; iii: fl., ob., 2 cl., bssn., timp., 6 vl., 2 va., 2 vc., kb.; iv: eh., tbn., 6 vl., 3 va., vc., cb.; v: fl., eh., tbn., perc., 5 vl., 2 va., vc., 3 cb.; 5 s.


A Catalogue Of Sounds

(1995 -)

13 solo strings (ensemble) and 1-13 string soloists

  70′ || recording

voice, books and FIRE II/4




19’30” for the Morgan O’Hara project


  Fl.,, cl., tbn., vl., vc., cb., perc., pno.

Komposition für Streichquartett II


  String quartet

  50’ || recording (1) || recording (2)



  Foreword/minute’s silence for orchestra



(Kol 1)


Fl.,, cl., vl., vla., vc., cb., perc.


  ב׳ כֹּל

(Kol 2)


Voices, fl., cl., 2 vl., 2 vla., vc.


voice, books and FIRE II/5




voice, books and FIRE III


  Voices and instruments

70’ || recording

PRAHA: Celetná – Karlova – Maiselova


  Voices, fl., hn., vl., vla., vcn., cb., perc., speaker and electronics.

60’ || recording

Ὄρος Μετεωρος. dramatisches fragment mit Aischylos und Euripides (Horos Metéoros)


  Sop., 3 choir groups, 3 auloi, ob. da caccia, perc. and string trio


La Segunda Canción del Angel Desaparecido


  Fl.,, bssn., 2 perc., 2 vl., vla., 2 vc


Solo IV


  low-pitched string instrument (premiered as ‘cello)

Solo V



45’ min.

– Solos I-V may be played together –


  • Currently, the voice, books and FIRE series remains unfinished. The final piece, voice, books and FIRE II/3, is due to be completed by 2019. The original score to voice, books and FIRE I however, remains lost.
  • The solo sections of the original score to A Catalogue of Sounds have been lost and the sketches are no longer extant. Parts 1-10 remain lost, whilst 11-13 have been recreated using fragments of the string ensemble parts. The published score features 4 violins, 5 violas, 3 violoncellos and 1 contrabass.
  • For the Solo series (currently I-V), any constituent parts may be played simultaneously. For example: Solo I+II+III or Solo II+IV+V.



–appears in collections–

Donaueschinger Musiktage 1991

Orchestrola (1992)

Komposition für Orchester (I-V) »…Schwarzer Sand/Schnee…«  (38’45”)

  1. Äußerst langsam (11’35”)
  2. Rasch (6’23”)
  3. Äußerst langsam, quasi senza tempo (8’27”)
  4. Ziemlich rasch (4’18”)
  5. Äußerst langsam (7’57”)

Müller (sop.); Bamert (cnd.); Sinfonieorchester des Südwestfunks Baden-Baden

Wittener Tage für neue Kammermusik 1992

WDR (1992)

25 Items in Variations (ii)

R.E.J.C. (John Cage/Jakob Ullmann/ensemble recherche)

Maderna / Ullmann / Hespos

AHL-Classics (1996)

Komposition á 9 (Palimpsest)(28’57”)

Spreitz-Runfeldt (m.sop.); Müller-Goldbloom (cnd.); work in progress – Berlin

John Cage / Jakob Ullmann

HR-Musik (2007)

Komposition für streichquartett 2(34’44”)

Arditti quartet

–as featured composer–

Jakob Ullmann (portrait)

Wergo (1996)

  1. Komposition für streichquartett (23’47”)
    • Streichquartett des Ensemble UnitedBerlin
  2. Komposition für Violine (Symmetries on Aleph Zero 2) (13’43”)
    • Nicolaus Richter de Vroe (vln. & elec.)
  3. Disappearing Musics (34’19”)
    • ensemble recherche freiburg

A Catalogue of Sounds (1995-1997)

Edition RZ (2005)

  1. A Catalogue of Sounds (73’16”)
    • Ensemble Oriol Berlin
    • soloists: Ritts-Kirby (vln.); Renshaw (vla.); Kasper (vcl.)

voice, books and FIRE III

Edition RZ (2008)

  1. voice, books and FIRE III (70’21”)
    • Ensemble für experimentelle Musik 2006

Fremde Zeit • Addendum (1-3)

Edition RZ (2012)

Disc 1:

  1. Disappearing Musics (34’14”)
    • Staravoitava (fl); Serassis (cl.); Stadler (sax.); Sepsi, Csizmadia (vln.); Martin, Schulz (pno.)
  2. Solo I + II + III (40’42”)
    • McDolan (ob. cacc.); Vicente-Sandoval (bssn.); Schulz (org.)

Disc 2:

  1. Komposition für streichquartett 2 (47’26”)
    • Pellegrini quartet

Disc 3:

  1. PRAHA: celetná – karlova – maiselova (55’29”)
    • Flückiger, (vox.); Bösch (fl); Vicente-Sandoval (bssn.); Winkelman (vl.); Margulies (vla.); Fallowfield (vcl.); Gervais (cb., perc.); Schmidt (spkr.); Idrobo Arce (elec.)

Fremde Zeit • Addendum 4

Edition RZ (2013)

  1. Solo III für orgel (66’03”)
    • Hans-Peter Schultz (org.)

Compiled by Oliver Thurley

December, 2014