Hi to everybody.
I wish to share with you my notes for the project of adding MIDI to an organ pedalboard. I hope my notes can be useful to all those that wish to MIDIfy existing pedalboards and even keyboards or any other sort of buttons.
The goal of my project was to replace an old noisy and very light-touch (to my taste) pedalboard.
I am lucky to know an old friend who builds/restores pipe organs and historical instruments for a living (Massimo Elice). I commissioned him a 32 notes concave/parallel BDO pedalboard like the one he puts in the regular pipe organs.
The result is a solid, fully built in solid ash tree pedalboard without compass springs but with rear spring steel. This allows some sort of regulation for the lightness/strength of the touch.
Nice. I am very happy with it.
Because this is a pedalboard "thought and built" for a regular pipe organ, I needed to take care of the generation of the MIDI messages in order to connect it to my Hauptwerk system.
Here, my electronic engineering background helped me. I opted for a solution with Hall sensors and little magnets for capturing the pedal movements and for an Arduino Leonardo to transform the signals detected with the Hall sensors into MIDI "Note On", "Note Off" events.
Arduino is an open source hardware project with single board microcontrollers and a software Integrated Development Environment (IDE) that makes very easy to program the microcontroller by using a C like language.
I chose the Arduino Leonardo instead of the Arduino UNO because Leonardo has an ATmega32u4 which supports USB, whereas the UNO has an ATmega328 which doesn't have USB support onboard. Other than that the two boards are basically the same.
Indeed the UNO could be used too, but the process to build a similar system with it, is slightly more complex. With Leonardo all the difficulties are gone and you don't even need a MIDI plug because the onboard micro USB go straight into the PC USB port. So, no need of any MIDI-to-USB boxes.
The 32 Hall sensors are connected in a 4x8 matrix and so use only 12 pins of the Arduino board, leaving 8 pins free for additional connections (having a 4 manuals organ, I plan to use 4 potentiometers for sweller and expressive pedals). They are connected directly into the onboard pins.
By following and combining together several code examples I found on the net, I wrote a fairly simple program to read the sensor state and create the MIDI events by using the MIDIUSB Arduino library. Of course I can change the MIDI channel programmatically as I wish. The power to the sensor is provided by the Arduino which is powered by the USB.
As you can understand, I consider the simplicity of the solution the main advantage and the success of this project.
In terms of costs, besides the pedalboard, the Hall sensors cost few Euros by the hundreds and the Leonardo (original) is €18.00 from the Arduino web site (but given the fact it's a Open Source project you can find also cheaper clones. I did not test any of these).
I posted few pictures in Flickr, available here.
-Carlo
I wish to share with you my notes for the project of adding MIDI to an organ pedalboard. I hope my notes can be useful to all those that wish to MIDIfy existing pedalboards and even keyboards or any other sort of buttons.
The goal of my project was to replace an old noisy and very light-touch (to my taste) pedalboard.
I am lucky to know an old friend who builds/restores pipe organs and historical instruments for a living (Massimo Elice). I commissioned him a 32 notes concave/parallel BDO pedalboard like the one he puts in the regular pipe organs.
The result is a solid, fully built in solid ash tree pedalboard without compass springs but with rear spring steel. This allows some sort of regulation for the lightness/strength of the touch.
Nice. I am very happy with it.
Because this is a pedalboard "thought and built" for a regular pipe organ, I needed to take care of the generation of the MIDI messages in order to connect it to my Hauptwerk system.
Here, my electronic engineering background helped me. I opted for a solution with Hall sensors and little magnets for capturing the pedal movements and for an Arduino Leonardo to transform the signals detected with the Hall sensors into MIDI "Note On", "Note Off" events.
Arduino is an open source hardware project with single board microcontrollers and a software Integrated Development Environment (IDE) that makes very easy to program the microcontroller by using a C like language.
I chose the Arduino Leonardo instead of the Arduino UNO because Leonardo has an ATmega32u4 which supports USB, whereas the UNO has an ATmega328 which doesn't have USB support onboard. Other than that the two boards are basically the same.
Indeed the UNO could be used too, but the process to build a similar system with it, is slightly more complex. With Leonardo all the difficulties are gone and you don't even need a MIDI plug because the onboard micro USB go straight into the PC USB port. So, no need of any MIDI-to-USB boxes.
The 32 Hall sensors are connected in a 4x8 matrix and so use only 12 pins of the Arduino board, leaving 8 pins free for additional connections (having a 4 manuals organ, I plan to use 4 potentiometers for sweller and expressive pedals). They are connected directly into the onboard pins.
By following and combining together several code examples I found on the net, I wrote a fairly simple program to read the sensor state and create the MIDI events by using the MIDIUSB Arduino library. Of course I can change the MIDI channel programmatically as I wish. The power to the sensor is provided by the Arduino which is powered by the USB.
As you can understand, I consider the simplicity of the solution the main advantage and the success of this project.
In terms of costs, besides the pedalboard, the Hall sensors cost few Euros by the hundreds and the Leonardo (original) is €18.00 from the Arduino web site (but given the fact it's a Open Source project you can find also cheaper clones. I did not test any of these).
I posted few pictures in Flickr, available here.
-Carlo
Kind regards. Carlo.
YouTube channel: https://www.youtube.com/channel/UCJHxVz ... gBSFebCmg/
YouTube channel: https://www.youtube.com/channel/UCJHxVz ... gBSFebCmg/