MIDI-Controlled 88 Key Reed Organ With MIDI-Over-Bluetooth




Introduction: MIDI-Controlled 88 Key Reed Organ With MIDI-Over-Bluetooth

About: B.S.E.E. undergrad. Tinkerer & musician.

UPDATE 7/29/2019: I've had numerous requests from people to buy my circuit boards. Due to this overwhelming demand, and my increased circuit board design ability over the past two years since this Instructable was published, I've designed and will be selling updated open-source, all-in-one, plug-and-play, Arduino-compatible circuit boards for this project. Once they are ready for purchase, I will put a Tindie and/or eBay link here to them so that more people can build similar projects, with much less effort and minimal or no soldering! In the mean time, you can see the design progress on GitHub: https://github.com/willemcvu/midi-solenoid-drive


First off, here's a playlist of videos of it in action. Have a song or MIDI file you want to see in that playlist? Suggest a song or upload your own MIDI file here: http://bit.ly/2wR3QUE


For my high-school senior project, I was going to convert an upright piano to be a MIDI-controlled player piano. However, I by chance ran across a reed organ, and knowing nothing about them became very interested in their sound and history. So I instead converted an Estey Reed organ to be MIDI operated.

First I will explain what a reed organ is and how it works as well as how we will mechanically actuate the keys. Then I will explain the electronics that drive it, and finally I will cover the software that decodes MIDI and triggers the keys accordingly.

Step 1: What's a Reed Organ?

A reed organ, also known as a pump organ, melodeon, or harmonium, is an instrument that uses vibrating brass reeds to produce a sound. It works the exact same way that accordions and harmonicas work, and therefore sounds very much like them.

Like a large pipe organ in a church, most reed organs have a number of stops that change the tone of the sound. Just like a pipe organ has sets of pipes, known as ranks, most reed organs has ranks of reeds that can be turned on and off by changing which stops are turned out. Each rank has a distinctive tone, and so the overall tone and volume of the instrument can be mixed by choosing which ranks are activated.

If you try to convert your own reed organ like I have done here you will probably want to figure out a way for the computer to pull and push each stop. Otherwise you will either have to manually do this during the song, or be stuck with the same tone throughout.

However, the reed organ I have acquired is very distinctive: it has 88 keys, like a modern piano. It is also in an upright piano case, and unless you play it you can't tell it apart visually from an upright piano.

My reed organ has a knob slider on either cheekblock that engages a secondary set of reeds internally. These are the only "stops" of any kind that my organ has. The left slider turns on and off the secondary set of reeds for the lower half of the keyboard's range, and the right slider does the same for the upper half of the keyboard's range. By changing these stops, you can change the way it sounds because the second set of reeds is different from the first: in the bass, they are an octave higher, and in the treble, they are purposely tuned slightly out. Engaging the second sets of reeds makes my reed organ sound very much like an accordion!

Additionally, there are swell flaps (not pictured). These are basically large flaps that can cover or uncover the reeds a varying amount. When the reeds are uncovered, the instrument has a much brighter and louder tone as compared to when the swells are closed. By controlling the air pressure the instrument is running on and the position of the swell flaps, you can change the sound and volume of the instrument quite substantially. My organ has something called an automatic swell, which means that the swell opens automatically as the air pressure being fed to the instrument increases.

Step 2: Overview

This is a huge, complex project. Before I get into specifics, I think I should give a general overview of the components that will go into it and what they will do. Each piece will have a dedicated step or steps later on for greater detail.

Look at the above block diagram showing all the components in the control system.

('ll say this many times throughout this instructable: look at the photos/diagrams. They describe things better than words, like below.)

Let's work backwards. The reed organ keys need to physically move. I used solenoids mounted on rails on the front of the organ's action to pull on the keys from below. We're going to use Arduinos to turn on and off all these solenoids, and in order to control solenoids with Arduinos you need a simple MOSFET circuit that turns on and off the high-current/voltage solenoid from the Arduino's low-current/voltage I/O pins. I designed custom PCBs to do this. Each one can control 16 solenoids. The Arduinos will all be running software that decodes the MIDI data (being sent to them via bluetooth) and they will turn on and off the solenoids, and therefore the keys, accordingly.

So to follow the flow of MIDI data, it will go via Bluetooth to the Bluetooth COM port, and then on to the three key-controlling Arduinos, that will turn on and off the correct solenoids which pull on the keys.

Step 3: Bill-of-materials and Cost of This Project

Overall this project turned out costing about as much as I thought it would. Here's a list of everything you will need for this project:

  • Reed organ! I got mine free on Craigslist, as mentioned earlier.
  • Solenoids (ZYE1-0530Z): 95x @ $2.33 = $220
  • 1N4001 Diode: 100x = $15.84
  • IRLZ44N MOSFET 100x = $49.75
  • Arduino Mega 2560 Clone: 3x @ $9.99 = $29.97
  • HC-06 Bluetooth COM port
  • 12V 40A PSU: 2x @ $22.35 = $44.70
  • Custom Solenoid Driver PCB x15 = $50.20@FirstPCB.com
  • 220 Ohm Resistor 100x = $4.79
  • 10K Ohm SIP Resistor 15x = $6.56
  • Aluminium Rail 8' (Home Depot) = $13.50
  • Terminal Block 2-pole 3.5mm 100x = $30.10
  • Dupont wires and connectors (don't feel like listing out every little piece): $18.90

TOTAL COST: $494.30

There are a couple additional costs. First of all, this assumes you already have basic things for prototyping like breadboards, etc. I am also going to add servo control of the stops as well as adding a vacuum motor with an Arduino-controlled speed controller as well as Arduino control of the swell flaps. I'm predicting that this is going to add around $100 in cost to the project. You might also want a hardware MIDI input: I'm using a Bluetooth serial reciever and software called Hairless MIDI which sends MIDI data to a standard serial port. If you opt to add a hardware MIDI port then its probably going to cost either around $15 for a MIDI Arduino shield or similar to build your own.

Step 4: Introduction to the Reed Organ Action

When you press a key on a reed organ, it lets air move through a specific brass reed that produces the correct note corresponding to that key.

Look at the above image. When the key is pressed, it pushes the dowel in the center down which in turn pushes the pallet (a fancy name for a valve) on the bottom open (the bottom block in the above illustration). Below the action is a partial vacuum produced by the foot bellows, and when this valve is opened air enters from the atmosphere, passes by the reeds that sits flush on the base of the action (the flat piece of wood in the illustration) and exits into the bellows.

Step 5: Remove the Action

The "action" of the reed organ is the keys, reeds, and everything in between, as well as the base that it sits on (which is really a soundboard of sorts). In order to do any work involving the action, we have to remove it.

Typically I wouldn't give you detailed instructions on how to do something like this, because, frankly, if you're attempting this project you should figure out yourself how to simply take the action out. But there are some clever ways that everything goes together to hide screws as much as possible, so I'll give you general directions.

First, take off the back paneling. This lets us access where the front panel is attached to the case. Remove the front panel and the fall board. Now remove the felt-covered key return bumper bar that goes across the front of the keys. Next, remove the two cheek blocks. They are held on by a single screw combined with a peg and hole. This is a tricky setup, and after removing the single screw you can simply pull the cheek blocks straight up.

Now you can detach the various pedals connected to the action, unscrew all the screws mounting it to its base, and remove it. Take care to set it on a flat, empty surface.

Step 6: Mechanical Modifications Part I: Intro to Solenoids!

We are going to use electromagnetic devices called solenoids to pull on the keys. While solenoids can be a topic in of their own, they are at their core very simple devices. A solenoid consists of a metal bar inside of a coil. When the coil is connected to an electrical source, the metal bar, called the plunger, moves linearly.

Looking at the illustration above will probably illustrate how the solenoids pull on the keys it better than I can in words. One thing to point out is that this illustration is only for the white keys. The black keys are more complicated as they don't extend all the way to the front of the keyboard; we'll get to them later.

I used ZYE1-530Z solenoids, which are 1A@12VDC solenoids. These are very good solenoids in general for this application, and they are very cheap (~$2.15-$2.60 each depending on where you look and the quantity you buy) and readily available online. I ordered a quantity of 95 for $220 and free shipping from an Chinese eBay vendor. This comes out to $2.31 each - not the cheapest, but pretty cheap.

If you don't end up using the ZYE1-530Z solenoids then I've outlined below the process of choosing one.

When choosing a solenoid to use, there are a few things to consider:

  • Type: There are push, pull, and push/pull type solenoid. This simply refers to which end(s) of the solenoid other parts can be attached to. A push type solenoid will have a threaded shaft on the pushing end, a pull type solenoid will have a clevis on the pulling end, and a push/pull type solenoid will have both. For this application, you will want a pull type or push/pull type solenoid as we will be pulling on the keys from below.
  • AC or DC: For this application, we want to use small DC solenoids. AC solenoids are generally used in much larger scale industrial applications.
  • Voltage: For this application, you will probably want to use a solenoid rated at 12V or possibly 24V. Lower voltage solenoids will draw more current and/or not be powerful enough to pull on the keys.
  • Current Draw: You will want to check the datasheet on the solenoid to check for its current rating. The higher current, the more powerful the solenoid will probably be, but the more power it will draw, requiring bigger power supplies. Due to Ohm's law, if you feed the solenoid with a high voltage, it will draw more current; if you feed it with a lower voltage it will draw less current. Without getting too technical, the resistance of the solenoid will stay the same, and when this is the case voltage and current are directly proportional.
  • Actuation Force: This is one of the most important considerations. Generally a solenoid's datasheet will give its force, expressed in Newtons (N) at various strokes, which is the distance to the solenoid's neutral position, often at different power levels. A solenoid datasheet (and often title) will also give you a holding force, also expressed in Newtons. This number is essential to choosing the right solenoid for the application. Below I will show how you can calculate whether a specific solenoid will be able to press the keys on your organ.

Calculating how much force you need to press your organ's keys:

  1. First you will need to measure how much mass is needed to press the keys reasonably quickly on your organ. I used coins to do this - it's an easy, fast, and fairly accurate way of measuring smaller amounts of weight.
  2. Once you have this mass measured, convert it to kilograms (kg).
  3. The solenoids have a force expressed in Newtons, and from the previous step we have a mass in kg that presses the key at a satisfactory level in earth's gravity. Therefore, we can multiply our mass in kg times earth's gravitational constant to get the amount of force that mass is exerting in earth's gravity onto the key: (force in N) = (mass in kilograms needed to press key)(9.8m/s)

Now you know how much force is needed to hold the keys! Go find solenoids that have a holding force greater than the force you calculated. Ideally get them several times the force needed for quick, precise key actuations.

Step 7: Mechanical Modifications Part II: Solenoid Modifications

Solenoids are very loud clicky devices. Of course this isn't going to work for our application. So we're going to modify them so they aren't so loud.

There are two main places in the solenoid that cause the clickiness. You can see these two spots circled in red in the above illustration.

The nut (left red circle in the illustration) clicks against the base of the solenoid upon disengaging. We can easily fix this by removing the nut from the pushing end of the solenoid. It isn't needed as the solenoid plunger is attached to the key which has the fallboard resting across it. This means that the plunger can't go up further anyway.

The solenoid plunger clicks against the base of the solenoid internally upon engaging (right red circle in illustration). We need to put something in between these two parts so that there isn't metal-to-metal contact upon engaging. I used very small pieces of heat shrink tubing on the solenoid shaft. Its tricky to see, but look at the above photo.

With the nuts removed and heat shrink tubing put on, the solenoids just have a gentle thud sound when engaging and no sound when disengaging. Before they had a harsh metallic click that was made worse by the aluminium they were mounted to.

Step 8: Mechanical Modifications Part III: Black Keys!

Unlike the white keys where we can pull on the keys directly from the front, the front of the black keys is (obviously if you've ever seen a piano keyboard) set back from the front of the white keys. Because of this we can't pull on the black keys in the same way we can with the white keys.

My solution was to effectively extend the black keys to the front underneath the white keys. This involves heavy modifications to the organ's keyboard, but once fully assembled again you can't tell that its any different because the extensions are completely hidden underneath the white keys.

I extended the black keys by:

  1. Routing a channel out of the side of each black key. I made a jig to do this quickly and efficiently; it only took around an hour to do all the black keys.
  2. Placing popsicle sticks in the channel I routed out. This popsicle stick has to be positioned so it extends over the front of the key support frame, but not long enough to
  3. Carving material out of each black key's neighboring white keys such that the popsicle stick extensions can fit and move freely between white keys

You can see in the above photo showing a portion of the action that the solenoids are connected to the black keys in much the same way they are to the white keys, just with longer wires. This is because the solenoids are too wide to be placed in a single row. Instead, the black keys have their own row of solenoids underneath the white row key.

Step 9: Mounting the Solenoids

Once you've got the action going with the black key extension modifications, and the solenoids modified so they're not as clicky, you can actually mount them to the action. The keyboard in my case was exactly 48" wide so I used an 8' aluminium L-bracket from Home Depot, cut exactly in half to get two 48" pieces.

One of them was used for the white keys, and one for the black keys. The white key solenoid bar was attached to the underside of the key frame, and the other was attached to the bottom of the base of the action (again, look at the photos - they illustrate these things better than I possibly could using words).

The solenoid have M3 mounting holes, so I bought 200x M3 3mm bolts off eBay for $8. Compared to the $47c each that Aubuchon's wanted, it's a pretty good deal!

I used a jig of sorts on the drill press so that all the holes were the same distance from the edge of the L bracket. I used a drill bit that was a little too big so that I could move around my solenoids a spec after the fact, and to make the tolerances larger.

Step 10: Attaching Solenoids to Keys

Now that the solenoids are mounted to the action, it's time to actually attach them to the keys.

Sounds simple? Well it really isn't... we have to attach the solenoids to the keys so there isn't any play between the keys and the solenoid. Any play will result in noise from metal clinking on metal, as well as inconsistency between keys in terms of how them feel when manually played. Remember, we want to reduce our impact on the action as much as possible.

I devised a good way of attaching the keys. Look at the pictures; they will describe how I did this better than I can with words.

White Keys:

First, you drill two holes in each key: one up around halfway into the key, and another from the left side of the key around halfway into the key. These two holes result in an internal L shape inside the key. See above image.

Now you can bend pieces of wire into an L to attach to the keys. Just bend an L and stick it in! Note that you may have to widen the holes to get the wire in place.

Next you cut a short piece of wire (around 1/2") for each solenoid and insert it through the clevis as a pin. Then wrap it around to make an L, and you now have a pin in that solenoid's clevis.

Now put the key back on the key frame, and line it up so the wire is where it should be (going straight down to the solenoid with the pin through it). Mark where the wire coming down from the solenoid passes by the pin. Bend the wire just slightly below that point so it points out from the front of the keyboard.

Now place it so the wire is in the solenoid's clevis and its bend is directly under the "pin" we made with the piece of wire. Pull the key off again. While holding the solenoid plunger so it points around 30º back from straight down, bend the solenoid wire down over the front of the loop of wire we made that goes through the solenoid's clevis.

Pull the solenoid forward so it faces straight down. If you pull it too far, though, you will create play in this mechanism. This is something we want to avoid. If you don't pull it far enough, the solenoid plunger will have too much friction inside the solenoid and that key will get stuck. We also want to avoid this. So you need to bend the solenoid plunger such that it is in this sweet spot.

Black Keys

The process is essentially the same for the black keys, except the piece of wire is longer and attaches to the popsicle stick different than to the white keys. Look at the photos above to see how it is attached to the popsicle sticks. They are very self-explanatory.

One thing to point out for the black keys is that you can adjust how tight the solenoid plunger fits by bending the key pulling wire forward or back. This is nice because you can do this without taking the plunger out, unlike the white keys.

Step 11: Control Electronics Part I: Intro to MOSFETs

So now we have solenoids that can pull on the keys. Yay!

But there's still no way to control those solenoids with an Arduino to make meaningful music. This is where MOSFETS come in. To overly simplify, MOSFETS are a special type of transistor that can turn on and off large voltages and currents. As it pertains to our application, they are effectively switches that can be controlled by another piece of electronic equipment, in this case an Arduino.

A MOSFET has three pins: Source, Drain, and Gate (abbreviated S, D, G). When you give the gate a voltage above a certain threshold, it "turns on" and conducts electricity from the Source (-) to Drain (+).

The attached image shows the simple circuit we will be using on each solenoid. As you can see, it also incorporates several other components. Here's what each of those do:

To over simplify (again), the diode is to protect the MOSFET from the voltage spikes produced by an inductive load such as a solenoid. R2 is a pull-down resistor to ensure that the solenoid is off if it gets disconnected from the Arduino for any reason. R1, while not really necessary, is a current-limiting resistor to ensure that the MOSFETs don't draw too much power off the Arduino and fry its pins.

So now we just have to make 88 of these circuits!

Step 12: Control Electronics Part II: MOSFET Driver Boards

Update 7/29/2019 (2 years since original publication): With much more experience designing PCBs over the past two years, I really can't recommend using the original circuit boards, even though they do work mostly fine. I've since designed significantly-improved driver boards - see the introduction of this Instructable for more details.

Breadboarding or even perf boarding 88 of the circuits in the last step would be impractical, not professional, and would not be a good long-term solution. Because of this, I designed a PCB that can switch on and off 16 solenoids.

Additionally, this PCB has two extra MOSFETs - each one controls the overall power to half of the 16 channels. This was going to be for a PWM power control mechanism that never got implemented because it wasn't needed. So the gates on these MOSFETs are now just pulled up. Or, you could save a few MOSFETs and wires by soldering a jumper between the source and drain holes (the bottom two) where these two MOSFETS go. If you were to do this then you would not need

The first image above is the schematic for half of the PCB. Both halves are the same. The second image shows the PCB design itself, and the third is test-fitting components on a print out of the design to ensure that everything is spaced properly.

If you want to make these yourself, the Fritzing design file is attached. Please note that I didn't actually solder in the MOSFETs: they are push-fit; the holes in the file are slightly too small to allow the leads to go through. You can change this easily if you want to solder the MOSFETs.

I had mine manufactured by FirstPCB.com. They did an excellent job, and the price was very good: $50 shipped to my door with 2-day airmail (which turned into a week because of customs...)

If you get these manufactured yourself you need to order them with thicker-than-default copper. I chose 2oz copper, and this should be the least you should use. If all the keys were to be turned on on a driver board then the traces really could get burnt up fairly fast as each solenoid draws 1.3A. I've mitigated this as much as I could by dividing the driver board into two sections and making the traces as wide as I could, but the problem is still there. Read: don't try playing a MIDI file that puts down all the keys at once. You may burn out your driver boards.

See the attached image for the rest of the manufacturing settings that I used (screenshotted directly from my order onFirstPCB.com).

Step 13: Control Electronics Part III: Soldering MOSFET Driver Boards

I developed quite an efficient process for soldering up the driver boards: I got it to the point where I was doing around 2 solder joints a second or so. Even so it took me a few hours to solder up 6 of these.

The trick to soldering them quickly is to first solder the shortest components, and solder the tallest components last. I also soldered them assembly-line style: I soldered all the resistors across all 6 driver boards first, etc, as opposed to completely assembling one before moving on to the next.

The order I soldered components was this:

  1. 220-ohm resistors and single 10K resistors
  2. Diodes
  3. SIP resistors
  4. Screw terminals
  5. Headers

Then you can put in the MOSFETs. I didn't solder them as the holes weren't big enough; I just jammed them in. This way I can replace MOSFETs with ease, as they are the most likely component to randomly die.

A note: Instead of the two vertically-oriented MOSFETs, you can solder a jumper between the two bottom pins, as I discussed in the previous step. If you do this then when you're wiring you don't have to run the dupont wires connected to the "5V" pins (as labelled on the driver board), and you don't have to put MOSFETs where you put the jumpers.

Step 14: Wiring Part I: Mounting

Now that we have all the components, its time to assemble them and wire everything!

I mounted all the control electronics (Arduinos and driver boards) to a ~4" wide board that runs the length of the action. For now, it gives us easy access to the control electronics (while the action is out of the case).

This will eventually get mounted up under the bottom of the organ case (where the player's knees would go). This results in relatively easy access to service the control electronics, as well as a (sort of) easy way of still taking the action out.

There are still two massive power supplies that need to go somewhere. I just had them on either side of the action when it was out of the case. Once the action was back inside the case, they got mounted underneath as well (see photos, especially in next step)

All the Arduinos and control boards can be mounted with wood screws and nylon standoffs.

Step 15: Wiring Part II: Solenoid Wires, Power Wires, and Power Supplies

First, you're going to have to connect all 88 pairs of wires from the solenoids to their respective screw terminals. Solenoids don't have polarity, so it doesn't matter which solenoid wire you connect to the positive side and negative side. Also, make sure that you skip the power input connections when hooking up the solenoids (look at the driver board pinout above to see what I'm talking about).

Next you should run the power wires from the power supplies to the driver boards. I placed these power supplies on either end of the control electronics. The left three driver boards get power from the left power supply, and the right three driver boards get power from the right power supply. The driver boards get power separately to each half, in an attempt to increase their current capability. Make sure that the power wires are decently organized, as well as a decent gauge. Each wire is driving up to 8 solenoids, and 8 x 1.3A = 10.4A. This a lot of power, so don't skimp here. I used 14-gauge automotive wire, which is probably overkill but it was laying around.

As the power supplies are AC hardwired, you will need to wire up the AC. I ran both of them through a light switch that I mounted underneath the keyboard at one side (see photo; ignore the USB port - that's from before I added Bluetooth), and from this switch box I ran a standard 3-prong appliance cord. This results in a nice professional-seeming cord to it, and the switch allows you to turn the instrument on/off easily.

Step 16: Wiring Part III: Dupont Connectors!

Now you have to connect up the control boards to the Arduinos. We will use something called Dupont cables to do this. These are small crimp connectors that can fit inside housings of various numbers of pins. Each Arduino uses pins 22-53 as outputs (except for the last one; it only uses 22-37). These pins are on the bottom header of the Arduino, which is a 2x18 header. Unfortunately, 2x18 headers are a little bit hard to find, so you can instead use 2x20 dupont connector housings as I have done. On the driver boards, you will need 2x10 Dupont connector housings. Look at the driver board pinout to see which outputs correspond to which inputs, and start plugging in the cables. The cables simply click into the housings.

In addition to the driver board cables, we need to run our midi lines as well as power to all the Arduinos. I used some old telephone cabling (4 wires) for this. The red wire inside the telephone cable was connected to +12V on the power supply, and this was fed into each Arduino's VIN pin. The blue wire was connected to the PSU's ground and the Arduino's ground pins. The yellow wire was used for MIDI data transfer, and was attached to the TX pin on the Bluetooth receiver and the RX1 pins on the Arduinos.

Once you have everything hooked up you're ready to start on the software!

Step 17: Arduino Code

The code that runs the reed organ is quite simple. It decodes the MIDI data using code found here: http://forum.arduino.cc/index.php?topic=22447.0 (thanks to Arduino Forums user leKuk) and turns on and off digital pins accordingly.

The only thing that is different between the code the three Arduino are running is the "offset" between their pin numbers and the MIDI note numbers they respond to.

Look at the second half of the function playNote function on Arduino 1:

if (note > 20 && note < 55) {
digitalWrite((note + 1), value);


Here, the "offset" is one: the solenoid that is attached to the key that is MIDI note 21 is connected to pin 22 on the Arduino. Therefore, given the MIDI note, we have to add one to get the correct Arduino output pin.

By changing these offsets we change what MIDI range the Arduino is programmed to respond to. The three Arduinos therefore have different offsets since they control different sections of the organ.

Step 18: Programming the Bluetooth Module

Now the three Arduinos are running the software, but they have no way of receiving the MIDI data as the Bluetooth module has not been set up.

By default the HC-06 runs at 9600 baud. This is too slow for MIDI. I've been using 38400 as my baud rate, and this is the speed that's closest to actual MIDI baud (31250).

To change the speed that the HC-06 runs at we have to put it in AT-mode. Its a somewhat finicky process, especially if you don't have a USB to TTL converter/cable (if you don't then you can use an Arduino). Instead of explaining how to do it, I'll point you here to follow the instructions for the HC-06: https://www.instructables.com/id/AT-command-mode-o...

Remember, we want to set the baud to 38400, and (optionally) the name to what you want.

Step 19: Software and How to Send MIDI to It

In order to actually play anything to it, you need to install a piece of software called "Hairless MIDI Bridge". This software pulls MIDI off of a system bus or the output from a program and sends it over a serial port that you select.

I'm using a Mac, and as soon as you pair with the Bluetooth module (key is 1234), it shows up as a standard hardware serial port (I don't know if this works on Windows or Linux; I haven't tested it). Then we open Hairless MIDI bridge, select that serial port (it generally shows up as "/dev/name-DevB" where name is the name you've assigned the Bluetooth module in the previous step), select a system bus for input ("IAC System Bus" on Mac), and enable the bridge. Be sure to set the baud to 38400 in Hairless-MIDI's preferences menu.

Now you can use any piece of MIDI-playing software, and for the output choose the system bus that Hairless-MIDI is bridged to. I use either Aria Maestoso or Rondo to play MIDI files. Rondo is officially discontinued, but if you email you the developer and explain your project he may still give you a license key. I'd like to give a shout out to the developer; he's a really nice guy and gave me a license for free.

Step 20: PID-based Pressure Regulator

Currently I'm working on a pressure regulator/controller that will allow me to use a vacuum cleaner to run it. ~~The instrument will be presented at a Maker Faire in September 23-24, and I really want it done before then so I don't have to foot pump it 5 hours a day for two days.~~ EDIT: It has been presented already at the maker faire I speak of. The below text may still read like it hasn't.

A vacuum cleaner typically will pull about 60 inches of water (a pressure measurement). The reed organ needs around 2-5 inches of water pressure to run, depending on the desired volume. So clearly we need to reduce the vacuum cleaner's pressure significantly. During testing, I took off one of the leather straps on the front of the bellows and stuck the vacuum's hose in the top hole. I then used duct tape to cover and uncover the remaining holes to achieve the correct pressure. This "controlled" leak system worked so well that it is what I am going to use to control the pressure going to the organ.

I've built a box with vacuum-tube sized holes at either end, a slot at the top, and a cover that can slide open and close via a servo (see images above). One hole is hooked to the vacuum, and the other to the reed organ. When the slider on the top opens, more air comes in through the slit in the top instead of through the reed organ, reducing the pressure going to the reed organ. If the slider closes, then the opposite happens, and the pressure to the organ increases. Basically, I can control the loudness of the entire instrument via MIDI as well. I have yet to actually hook this system up, but I will in the next week in anticipation of the Maker Faire.

The other thing I plan to do at some point is implement a stop changing mechanism so that the two stops can be controlled via MIDI. They change the sound significantly, and once I have control of them, the entire instrument is MIDI-fied.

I actually got one stop servo-actuated a long time ago, but didn't end up actually installing them permanently as I was in a rush to get just the keys working.

Have a great day, and thanks for the (long) read! If you have any questions or build something using this Instructable please message me.

Step 21: Going Further

At some point I plan on implementing a stop changing mechanism so that the two stops can be controlled via MIDI. They change the sound significantly, and once I have control of them, the entire instrument is MIDI-fied.

I actually got one stop servo-actuated a long time ago, but didn't end up actually installing them permanently as I was in a rush to get just the keys working.

You can see an extended photo gallery of the whole project here: https://photos.app.goo.gl/0T7G6j06BgIUvHqB3

Have a great day, and thanks for the (long) read! If you have any questions or build something using this Instructable please message me. Also, I'm currently building an automated Alto sax. Check it out at my blog here: https://willemhillier.wordpress.com/

First Time Author Contest

Second Prize in the
First Time Author Contest

Automation Contest 2017

Second Prize in the
Automation Contest 2017

Bluetooth Challenge

Runner Up in the
Bluetooth Challenge

Halloween Contest 2017

Participated in the
Halloween Contest 2017

Be the First to Share


    • Digital Fabrication Student Design Challenge

      Digital Fabrication Student Design Challenge
    • Stone Concrete Cement Contest

      Stone Concrete Cement Contest
    • Electronics Contest

      Electronics Contest



    7 months ago

    This is an Estey 88 Key Piano-Organ. You play it like a Piano (same range) but it has that Classic Reed Organ sound. The center Pedal is the Couplers, & I wish they made a version w/ 108 Keys (9 Octaves from C0 to B8) because it would provide a larger range


    Question 8 months ago

    Did you ever have any problems playing specific midi files? If for example a note on byte was sent for a note that was already on, did it play correctly (or more specifically, was it noticeably different from how it would sound on a computer/synth?) Other acoustic midi instruments I've seen have had to address this somehow. In your code it doesn't look like it, but based on the videos I've seen of it in action, it doesn't seem like a problem. Is it?


    Question 3 years ago on Step 17

    hi, it's a good and awesome projects. Now i try to make it and improve it, but i have some trouble at Arduino programs, what is Serial1 used for? because Serial1 wasn't declarated in that scope?

    Hillier Productions
    Hillier Productions

    Answer 3 years ago

    Serial1 is UART1 on the ATMega2560. I'm using this as the input on all the ATMegas that are driving mosfets.


    Question 3 years ago on Step 20

    I'm about to start a very similar project. I have a vacuum cleaner with a slide for speed control. I haven't checked yet what component the slide is adjusting. If it is a potentiometer, I bet it would be possible to switch to another potentiometer to even go for lower speeds, as long as the motor still runs. The most interesting solution would be to add som PID control, getting input from the organ wind chest (its pressure) and putting the output to the electronic speed control of the vacuum motor.

    But my first thing to solve is whether I could use cheap hobby servos instead of solenoids. The reed organ I will rebuild needs very little pressure on the key, maybe 0.3 N while movement is some 20 mm. Roughly calculating a hobby servo might have specs like 3 kgcm, that is 30 N on 10 mm. And the speed is some 0.2 s on 60 degrees. With a servo horn of 20 mm turning 60 degrees I get a movement of 20 mm. With a horn of 20 mm I lose half of the force, so I have about 15 N. Now I could make the movement faster by turning only 30 degrees and doubling the horn length. That leaves me at 7.5 N. If the speed is not enough, I still have a way to go when the required force is only 0.3 N.

    Bottom line is that a hobby servo seems to be a considerable alternative to a solenoid. Is it? Have I missed something? The hobby servos might not be as reliable in the long run. Lots of cogs spinning during the flight of the bumble bee. But the servos work as such, though I'd need four servo drivers with 16 channels each. I don't need a mosfet for each key.

    Hillier Productions
    Hillier Productions

    Answer 3 years ago

    The biggest problems with servos is how loud and expensive (compared to solenoids, in bulk) they are.


    4 years ago

    I am very much impressed by your project. Until about 10 years ago I was as enthousiast in trying to make my own organs and thus I experimented a lot with ancient electronic instruments, reed organs and even small pipe organs. Besides, my original occupation was hard ware engineer for a few years, so I very much enjoy seeing your PCB designs and electrical schematics. But above all I love to see that you succeeded convincingly in building this wonderful instrument, whereas I desperately threw all my attempts away and eventually became member of a school staff, not possessing even a solder set anymore. Your project is very inspiring, hope to see more of your inventions in the future! Kind regards from the Netherlands - Koert.


    4 years ago

    I've been in the pipe organ business for 33 years.in fact, I'm writing this comment from inside a pipe organ chamber. Your system could be more easily connected to an electro pneumatic action pipe organ. EP pipe organs have "exhaust magnets" that respond to electric impulse from a pipe organ keyboard. If you bypass the keyboard and connect your system to the key action circuit the pipe organ will play without the keys moving. Also, there was an electronic and pipe organ builder in Canada who built electronic organs using reed organ reeds and wood reed cells with a small silent built in vacuum unit. Each reed cell was covered with its own action magnet and leather lined pallet ( of plastic) that would open and allow atmosphere to enter the the reed cell and cause the reed to vibrate upon registration of the corresponding key. You would get far better response using this method than using linear action solenoids to move the keys. I have quite a bit of experience with reed organs and they're notorious for their relatively slow response, which is inherent to the design. The largest most protracted pipe organ will have a faster response than a reed organ. The organ builder retired about 1972. He built about about 50 pipe organs but he built about 5,000 electronic organs using a readapted version of the reed organ design. He didn't amplify the sound produced by the reeds, instead he picked up the beats of the reed to provide the frequency of the note played and then somehow added tonal colouring to it to simulate pipe organ tone. People collect these organs. The organ builders name is Hallman ( I've forgotten his first name but he invented a number of items; he died in the 1990s and lived/,worked in Kitchener and/ or Waterloo, Ontario, Canada). By chance I actually have some "guts" from a hybrid pipe organ/electronic organ he built for a church that includes the wooden reed cells and mass produced magnets and pallets I referrred to earlier. I'm working out of town all week but this approaching weekend I could take some photos of the parts and forward them to you. You would instantly recognize what he did and how it could or would apply to your admirable organ operating electronics system. All the best to you and congratulations are in order for the completion of a project that reflects most favourably on your ingenuity, tenacity and character. You have a promising future in store.

    Hillier Productions
    Hillier Productions

    Reply 4 years ago

    Hello, I'm finally responding to some comments here. That's a very curious system, and I would certainly love photos of some of the parts. My email address is w!llemh!llier@gmail.com, with !'s becoming "i"s. Got to confuse bots here. Thanks in advance.


    4 years ago

    This is a worthwhile document; for that reason may I suggest you add the pallet/valve return springs to your diagrams? Without the return spring the solenoids would be pulling the pallets open and pushing them closed.

    Hillier Productions
    Hillier Productions

    Reply 4 years ago

    I would, if it weren't so damn hard to model springs in Fusion 360!


    4 years ago

    Fantastic work.

    But I have a sort of reverse problem. I am a pipe organist.

    Many organists have to play on inferior specified instruments although mechanically sound. Real organists do not play electric, pneumatic or electronically controlled pipe organs.

    I have looked for a portable cover for an organ keyboard such than the notes on and off can be sent to my own (portable) organ midi sounds to supplement those of the inadequate pipe organ.[ There are many midi units arround that will produce true recorded pipe organ tones].

    This obviously cannot be wired in but must be a minimal attachement or cover that will still allow the organist to play the keys but send each notes on and off to the midi generator.

    I already have all the equipment required to get midi from wired in contacts as well as the midi organ sound generator. How can we do this ? I have thought of optical contacts as these can be very small but are very sensitive to outside light, maybe magnetic contacts, but these are subject to interference. Ideally the cover would be flexible rubber, very think but rigid enough to remain on the keys during virtuoso passages.

    Many pipe organs have at least 2 and up to 5 manuals stacked one on top of the other. Then there is the pedal board of at least 30 notes or 32 if you are lucky.

    Suggestions please? There seems to be nothing commercially available.

    It would be nice if this were easily attachable at short notice as we have to play at many different churches and concert halls.


    Reply 4 years ago

    Real organists most certainly do play and support the building of electronically or pneumatically assisted organs. The organ reform movement that created such extremist positions fizzled-out 30 to 10 years ago. Tracker organs are wonderful but they have limitations that can hamper and frustrate organists and organbuilders. E. Power Biggs, who championed the reform movement in N.America was a genius organist but his demonstrations of tonality concerning pneumatic versus tracker organs indicate his understanding of organbuilding and voicing was considerably lacking.


    4 years ago

    Amazing. A friend of mine makes something similar with a vacuum rolls operated piano :



    4 years ago

    I apologize! .. I'm so sorry !! I'm very bad at arduino. But I dream of making a self-playing instrument. For many years. Can you help me? I searched all over the Internet, but it did not help much. the instrument will produce 48 sounds. Your detailed instructions are very necessary. please help me, please. my mail schatrow.d@gmail.com


    4 years ago

    Great project. Still trying to figure it out. Pity you found
    a rare organ with 88 keys as most have only 61.


    4 years ago

    good afternoon! how to do it without bluetooth? Thank you

    Hillier Productions
    Hillier Productions

    Reply 4 years ago


    You can also use one of the Arduino's USB ports, in which case the two other MIDI-decoding Arduinos would have their RX1 ports connected to that Arduino's TX0 port. On the Arduino who's USB port you're using, you would change the code to read MIDI data on Serial instead of Serial1.


    4 years ago

    I haven't been on this site so often anymore, but this is such a wonderful project you made! I have an electronic Elka organ, 2 keyboards, which I want to use in the other way: sending the keystrokes to a midi- pc, and get the sound from the pc. However... I need to study MIDI interfacing for that...


    4 years ago

    This is an awesome project! I know as I overhauled a player piano made in the 1920's. If I were designing this, I would "steal" ideas from player piano design, and use pneumatics to activate the keys. (Each pneumatic is a bellows about 1 x 3 inches with 1/2 inch movement. You stagger them in 3 rows to get them close enough for the keys.) You eliminate the noise problem. So now the solenoids can be tiny things that open small valves. You can drive them from multi-channel driver chips. You will not blow anything up if you accidentally activate all keys at once.

    If you study a piano action, great lengths are gone to, to get rid of noise. Every bearing is lined with felt, and everywhere 2 things contact, there is also felt.

    Regarding providing suction: you need to slow vacuum cleaner down. You can use variac, or put inductors in series with it, or use a DC supply. That lowers power and wear & tear on vacuum (they are not made to run continuously!) to almost nothing, and gets rid of most noise so a padded box can do the rest. You will most likely need 30-40 volts on the vacuum to get the vacuum you need. Rather then tape hose in, make another flap-valve assembly on chest and connect vacuum to that with a more permanent connection. The organ will be able to be either manually pumped, or run on power, without needing to change connections. I did this for a war veteran (who lost one leg) so he could run his Story & Clark player piano (which I overhauled).

    Another thing to look at is the effect of the flyback diodes in the solenoids. They slow the release. One trick is to allow the flyback voltage to be higher (but still not high enough to damage FETS). Easiest way to do this is to put resistor in series with diode. For 1A solenoid current, this current will instantaneously flow in diode circuit. So each ohm you put in, is another reverse volt is allowed. 10 ohms added would allow 11 reverse volts, halving release time, while subjecting FETs to 23 volts at the instant switching off.

    Another thing I would do differently is to have the solenoids (or whatever other mover used) directly actuate the reed valves. That's the way player pianos work, and for best operation the keys are locked up to eliminate their inertia.