The Design

A project log for Virtual Pipe Organ

A modern twist on a classic musical instrument: the Virtual MIDI pipe organ

Johan CronjeJohan Cronje 12/21/2016 at 23:460 Comments

This is the basic design for the VPO (Virtual Pipe Organ). The white boxes are organ components, the purple boxes are custom modules I have designed.


The organ will have three manuals (keyboards). While the M-Audio Keystation 61es devices have a USB interface, the issue I found while testing is that when multiple keyboards are connected the order won't always be the same. I therefore decided to use the MIDI output port with a custom PCB to convert the MIDI output stream to something the Teensy can understand. The downside to doing this is that the keyboard receives power via USB, which means it now needs a separate power supply.

Another advantage of using the Teensy 3.2 here is that is has three hardware serial ports, one for each manual. This means we can read multiple MIDI input streams and simultaneously output a USB MIDI stream to the connected PC.

The main PCB will house the Teensy 3.2 as well as providing 3.3V to the auxiliary circuits and 9V to power the three manuals.


Most of the work for the pedalboard was done in the previous project. I realized the Arduino Uno shield method I was using was very limiting, therefore decided to use the amazing Teensy 3.2 for this project.

The pedalboard will have 32 pedals with reed or mechanical wiper switches. The switches are read by four daisy chained 74HC165 shift registers on a custom PCB. I went with the 74HC165 instead of the CD4021 I used previously as they handle 3.3V better.


The pistons are just push-to-make switches and function exactly the same as the pedalboard. These switches are also read using the same custom shift register PCB daisy chained together.


The expression & crescendo shoes' position will be read using a linear potentiometer, also on a custom PCB, by the Teensy.