I am very new to Arduino, but I know that there boards have been used before in virtual organ builds and I also know there are companies that make ready-made products for encoding and decoding midi for use with connecting the console (box of switches essentially) to a computer running software (Hauptwerk) that takes the midi information (encoder) and plays sample sets of actual pipe organs that have been digitally sampled and “processed” so that you have a noteON signal, attack signal, loop signal and release signal completing the single note and finally notOFF. This is then connected back to the console (decoder) to either light the controls showing that they are on or triggering a dual electromagnetic action that physically turns on or off a control (like a stop/voice or coupler) and also send the audio signal to a sound system comprised of a reverb unit (either physical or VST), amplifiers and speakers of varying types for different frequencies and divisions of the organ.
My background is in physical pipe organs and their system/s of operation using either elector-pneumatic or direct electric means to open valves that let pressurized air enter each pipe/s as it/they is/are played, based on the stops and couplers that are engaged.
There are two schools of though to scanning the controls. One is matrixed and the other is direct-wired. Matrixing requires far fewer inputs than the direct wired scenario which requires one input per key, stop, coupler, etc.
There needs to be both digital and analog inputs as the Swell Pedals and Crescendo send analog signal via potentiometers or replaying the analog potentiometers with digital potentiometers.
There also needs to be a programmable preset system with many levels of memory. This utilizes thumb pistons and toe studs for making very quick registration changes during a performance.
To (hopefully) better explain this, I will list what would be on a medium sized organ.
The organs controls:
3, 61 note keyboards
1, 32 note pedalboard
45 Toe Studs*
3 Swell Pedals
1 Crescendo Pedal
100 banks of memory for presets
- Arbitrary numbers
The midi system needs to be able to read all controls continually and very quickly (to eliminate/reduce latency) to watch for changes. After it sees a change, it sends (via midi) the necessary signals to the software (Hauptwerk on Computer) that uses these signals to preform the necessary actions (i.e. play a note, turn on/off a stop, change registration, etc.). These would be Encoders. The Decoders would allow the controls on the console to move (or light up). They would also be involved in playback in a record scenario or for playing MIDI music files.
The attachment happens to be from Artisan. I have got quotes from other companies, like DTS or Midi Boutique.
I am interested in making my own boards that do all of the same things, but since there are a variety of boards available and some would be more suited for my project, I was interested in examples from other people that have done the same thing. I have all of the hardware and Hauptwerk. I also have VST hosts and Plugins. I just need the equipment that connects both pieces together.
Thank you for your help.