Virtual Organ/Console Project Questions

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
100 stops*
20 couplers*
81 Pistons*
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.

Steven

midi beakdown.jpg

NOTE - I'm not a MIDI expert or an organ expert...

Exactly what are you trying to build and what do you have already? A "virtual organ" would only require a computer, a MIDI application, and a VST virtual instrument. Plus, a MIDI keyboard if you want to play it manually in real time.

@DVDDoug. A virtual pipe organ (VPO) is a much more complex beast than a MIDI application + VST + MIDI keyboard. At the top right of the image that @kiaya611 posted is an image of a pipe organ console which has 3 keyboards. He wants everything in that image MIDIfied, i.e. every key on the three keyboards and pedals generates a MIDI message. All the other buttons/switches on the console also generate their own MIDI message. The three pedals (in the centre of the image) each send an analog MIDI message (e.g. Pitch Bend). All those MIDI messages are inputs to the Hauptwerk program.

@kiaya611
A few years ago I saw a couple of questions on the Hauptwerk forum about using Teensy to do what you want to do but I don't think they ever got beyond the initial stages.
If I were going to tackle this problem (ain't gonna happen :slight_smile: ) I would use some Teensys, probably Teensy++2 or the more recent Teensy 3.5. The advantage to the Teensy is that its USB port is not tied to the hardware Serial. It is easy to set up the T++2 as a USB MIDI device so that, for example, if you have one per keyboard, you just plug them into a PC and set up Hauptwerk to listen to those MIDI devices. The T++2 has a lot of digital pins and the T3.5 has even more.

Pete

@el_supremo

Thank you for that information. I will look into the Teensy 3.5 and 3.6.

Best wishes,

Steven

That's a lot of I/O for an Arduino! Though I suppose it's possible, I've just never done it. Wish I had more guidance for you.

I've actually worked with MIDI on a real pipe organ a few years ago (video about the project) but the hardware side of it was a commercial solution, from Classic Organ Works.

So your subject caught my eye, but again it's way out of my league Arduino-wise. I'll send you a PM with a couple more questions.

DVDdoug:
A "virtual organ" would only require a computer, a MIDI application, and a VST virtual instrument. Plus, a MIDI keyboard if you want to play it manually in real time.

@DVDDoug
That would be for the most basic virtual organ. We are building pipe organ consoles with all of the "normal" controls that you would find on one.

These are just 2, 3-manual (keyboard) examples which would be allot more typical. HTH

Here is a typical example of a classical drawknob organ console:

This is a typical theatre organ console:

They both can be more involved and have up to 5 keyboards (and occasionally even more) and several hundred stops, like these:
US Naval Academy Organ Console

Old Chicago Stadium Theatre Organ Console (Now in private collection)