Kontinuum OHMs - "Open Horn MIDI system"

The Open Horn Midi system is an open source MIDI wind controller currently under development at the Kontinuum Lab. It's a Hackers Horn, with an Arduino Micro as a brain, a 3d-printable body, an OpenBeam backbone, a 16x2 lcd for navigating the menu system and lots of other exiting features.


Creative Commons Attribution Share Alike

Commercial use is allowed, you must attribute the creator, you may remix this work and the remixed work should be made available under this license.

Learn more or download attribution tags


The Kontinuum "Open Horn MIDI system" is an open source MIDI wind instrument.

I call it the "OHMs" for short, which is pronounced like the plural tense of the measure for electrical resistance. It's about 45 cm long, it is 3d-printed in manageable (and printable) size sections, and has an OpenBeam backbone which holds the assembly together.

You plug it into your computer or a sound module, and you blow into the mouth piece and touch the keys to pick the notes.

The OHMs then produces numerical output in the standard MIDI format, describing things like pitch and volume and such. An Arduino Micro onboard the OHMs reads all the inputs, assembles a MIDI message based on the reading, and then sends the numbers off to whatever the OHMs is plugged into.

Main inputs are:

- 15 resistive touch switches for keys

- Breath sensor based on an FSR (Force Sensitive Resistor) and a water balloon

- Bend sensor based on a standard potentiometer and two springs

Some features are already present on the instrument, but not connected nor coded for in the current version, like the bite sensor in the mouthpiece, the DIN connector / plug for the removable shoulder section and the DIY 1-pin Serial LCD for navigating the menu system. Other things are already present in the code and electronics, but not yet implemented on the instrument, like the third octave key, or the embedded MIDI USB converter, which will provide a free choice of standard MIDI 5-pin or USB output. I have modified the MIDI to USB converter to provide power to the Arduino, but I'm using it externally for now

So, Work In Progress alert. This is a new project , still full of all kinds of bugs, and with a long list of features yet to be added - attempt to make it work at your own risk. That being said, I've put the code for the Arduino Micro up on github under an MIT license. The first published version is v0.36, and you can download it here: https://github.com/KontinuumLab/OpenHornMIDIsystem/tree/master

It's a development snapshot, ridiculously full of commented out sections and long unnecessary explanations to myself. the MIDI message system is still very basic and of course the menu system is nowhere to be seen yet, but please have a poke around, use it, fork it, love it, hate it, give me feedback.

I'm totally new to github, so please bear with me as I try to figure out how it all fits together.

Development on the code side will now be focused on perfecting the filtering and mapping of sensor readings from the breath, bite and bend sensors, and putting together some more nuanced MIDI messages with all that nice data, using aftertouch and other CC options. After that it's all about incorporating the LCD, and setting up the menu system and different playing-modes.

Meanwhile I will be updating the physical structure of the neck and mouthpiece to get rid of some humidity issues, and incorporate the latest advances in "water balloon - breath sensor" technology, plus I'm designing a new "octave" section, which incorporates the third octave key.

Last but not least, I will have to rework the whole lower half of the body, to solve space issues in the electronics section, and to move the center of gravity up and the right thumb position down some, as the balance is currently off.

Updated parts files, and partial instructions will be published here as I go along, to be replaced (eventually) by the full instructions, final stl's and Blender source file (yes, I modeled this in Blender), but there is still a lot of work to do, both on the physical instrument and in the code. So let's just say that holding your breath in expectation would be a serious health risk....
In the mean time, I will be trying to cover the development process on my blog over at www.kontinuumlab.blogspot.com whenever I can find the time for it.

On a side note. The version numbers start at v0.36 because this is how far I was on my 36th birthday. The idea is that v1.0 be the finished, fully functional, eminently makeable and hackable version of this design and electronics setup, including LCD and menu system and all that good stuff....

Further plans include but are not limited to:

- porting the whole thing to a teensy 3.1 for extra pins, smaller size, extra power, and direct MIDI-USB output.

- Making a Raspberry Pi sound module which runs Pure Data for synths, effects, loops and more.

- A new body in a completely different style.

Materials and methods

(Work in progress - incomplete BOM - subject to change):


- Nylon 618
- 1x 300mm OpenBeam
- 2x Water balloon
- 2x Spring (12mm OD, +/- 40mm length - Compresses to +/- 15mm length)
- ?x M3 nuts and screws of standard lengths (specifics coming soon...)


- 1x Arduino Micro
- Lots of "2.54" pins (M/F) (specifics coming soon...)
- Lots of cable. (specifics coming soon...)


Shoulder/Neck/Mouth piece assembly:

- 2x FSR/Force Sensitive Resistor ("breath" and "bite" sensors)
- Standard potentiometer ("bend" sensor)

Touch sensitive keys:

- 17x Metal tabs - 8mmx30mmx0.8mm (15 keys and double grounding plate)
- 30x 2N3904 transistor
- 15x resistor 10k
- Stripboard 30 holes x 14 tracks (Or even better: "Eurocard - IC Pattern" - cut to 30x14)


- 1x LCD 16x2 (HD44780 or similar)
- 1x AtTiny 85/45
- 1x Shift register (74HC595)
- 1x NPN transistor (BC547)
- Rotary encoder with pushbutton



Issues are used to track todos, bugs or requests. To get started, you could create an issue.


52d361b47dca6e5966f139dc55c59cfe?default=blank&size=40step_ added this to the Music Toys collection ago
Bbdc84367bd7851476d8c363bc12c20a?default=blank&size=40twhitmer added this to the Ideas collection ago
Mini jeppe sf neutral.png0035Jeppe Rasmussen printed this ago
Carousel thumb ohms v0.36 08
Printed on:
Prusa Mendel i2
A bit rough around the edges - my old Prusa seems to have developed some z-wobble lately. Also, these are the files for the prototype, they still need some work... However, everything fits together, and works fine.
The very first prototype OHMs v0.36. Printed on my Mendel Prusa with: "Hispania" J-head hotend, 0.5mm nozzle Layer height: 0.3mm Black PLA from ReprapBCN, printed at 185c on a 60c glass bed Nylon 618 from Taulman, printed at 240c on unheated, sanded garolite
Mini jeppe sf neutral.png0035Jeppe Rasmussen published this design ago