Creation Of A virtual Organ Using Arduino

This section is dedicated to topics related to the building of virtual organs, MIDI keyboards, consoles, etc.
Cette section est dédiée à la construction d'orgue virtuel, claviers MIDI et consoles d'orgue.
admin
Site Admin
Posts:147
Joined:Mon Jan 12, 2009 8:14 pm
Creation Of A virtual Organ Using Arduino

Postby admin » Wed Apr 01, 2015 1:27 pm

(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
0 Stops/Settings
1 Lower Manual
2 Upper Manual
3 Pedals

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.

Peter

admin
Site Admin
Posts:147
Joined:Mon Jan 12, 2009 8:14 pm

Re: Creation Of A virtual Organ Using Arduino

Postby admin » Wed Apr 01, 2015 1:28 pm

(this message was posted by hanlonpp, I reposted it here because I lost your account while migrating the forum)

Hi Joseph,

In the meantime, I have looked at JOrgan, and how it might look via Arduino, and also bit the bullet, and tried to build a 4-bus (instruments/stops, great, swell, pedals), and 2 DIN board) solution. I have OSX code running, and also jOrgan in debug stage with the Arduino channel/note/volume midi information flowing through to it.

The OSX code is not overly complex, and makes largely tabular decisions about what stops produce sounds with what keys pressed, directly into fluid synth. The jOrgan configuration is a little unknown, as it has a large body of professional knowledge that I am ignorant of, but hoping to explore.

Peter

admin
Site Admin
Posts:147
Joined:Mon Jan 12, 2009 8:14 pm

Re: Creation Of A virtual Organ Using Arduino

Postby admin » Wed Apr 01, 2015 1:29 pm

(this message was posted by coenraadsjohn, I reposted it here because I lost your account while migrating the forum)

Hi Peter

Thanks for sharing your project. We must be of similar vintage. When you were putting your Schober (Reverbatape?) together, I brought home a none-working all tube Minshall which I successfully converted to transistors.
I echo your enthusiasm for the Arduino; a neighbour, who uses it in his quadcopter, put me onto it. I've used an Arduino Mega to build a three-in, one out, MIDI merge for my two manual and pedal console I use with Hauptwerk. I've also used an Arduino Uno as the front end to a small pipe organ (with MIDI drivers) to handle couplers. I also built a small one manual console (with home-made pedal board: 29 notes, I like the symmetry) where another Uno scans the pedal board on a 6x6 matrix and merges this with MIDI data coming from the keyboard (a Casio digital piano) for use with Jeux d'Orgues. I get great pleasure playing the Stiehr-Mockers organ on it.
So keep promoting the use of the Arduino. Its compatibility with MIDI makes it very useful to us organ enthusiasts. And keep us posted on your progress.

John


Return to “Virtual organ building / Construction d'orgue virtuel”