(this message was posted by hanlonpp, I reposted it here because I lost your account while migrating the forum)
These notes describe the use of the Arduino platform for the replacement of the internals of an analog electronic organ.
I originally built the Schober Consolette II organ in 1970; it was still in operational order in 2012. I am not a musician however, and would not really pick degraded performance. The principles apply to any organ that can be converted to essentially a set of switches.
The Arduino platform is described at http://www.arduino.cc.
It has a vast following, and includes the following elements :
-Basic microprocessor hardware, about playing card size, and extracted into a set of digital and analog pins,
-C software framework which you write on a PC, and upload to the Arduino board via USB. Run-time connection to a serial monitor is also provided.
-Arduino shields which essentially stack on top of the basic PCB, and provide digital displays, connections to downstream hardware and most anything else.
For the hobbyist, it is like PIC on steroids, easy to use, and flexible.
The approach I have taken for my organ project is to use the Arduino and a number of MIDI DIN R5 boards to deliver a serial output to a PC (Mac OSX whenever there is a key state change.
It reminds me of a train engine with a number of carriages behind. The engine is the Arduino, and the DIN the carriages, each with 4 compartments the shift registers, each with 8 passengers the switch keys.
The existing organ console broadly consisted of a rear section housing a heavy power supply, power amplifier, 12 tone generator boards, connections to the swell and great manuals, and to the pedals.
Under the top lid of the organ there was an internal shelf which housed PCBs for the stops, and for an add-on percussion kit.
I gutted the rear section, leaving only the pedal cable, cable to the volume shoe, and revised cable to the keyboards.
I also gutted the stop and percussion circuitry on the upper shelf. I set about installing the new boards on this vacated shelf.
I made several mistakes during this process. All of these can be lived with, but with hindsight-
-I tended to think left to right forgetting that I was viewing the keyboards from the rear. The effect is that my 61 Keyboard switches are right justified in the 64 bit software array that results.
-I added a 16X2 character display as the top shield to the Arduino complex as an afterthought. This had a few ramifications. The characters are upside down, and it used the same Arduino pins as my shield.
So I had to rework the shield to use non-conflicting pins. The lesson is to mount the Arduino 180 degree rotated at the left, with the DIN shift registers at right. I think the choice of pins that I have now is good, consisting of A1-3 for the buses extendable to A4 and A5 for the volume shoe.
I realised well into this project that I probably could have constructed it using 2 DIN boards, and 4 buses. For debugging ease, I opted for 4 DIN boards and 3 buses. Two buses cover the swell and great manuals, and one the pedals and stops, vibrato and balance switches, and rotary percussion selector.
In software, I split this last bus before delivery to the serial port, so that the output to OSX consists of a neat 19 long hex string.
Byte 1 Bus indicator
1 Lower Manual
2 Upper Manual
Byte2,3 Volume Shoe
Bytes4,19 Shift Registers for this bus
Costs for this project have been surprisingly modest. An Arduino UNO is about $40. A 16X2 character display is about $30, and is optional. The DIN boards are $15 each.
The next phase of my project is to build some XCODE on OSX. It will take the serial input as above, and use FLuidSynth to start generating some sound. I have got FluidSynth running and its access to Soundfonts happening, and rudimentary Noteon, Noteoff.