John Kinkennon 

retired  field engineer, programmer, piano tuner...

,

Virtual Pipe Organ MIDI Projects

Here are some MIDI encoders designed for retrofitting older organ consoles for use with virtual pipe organ software such as Miditzer and Hauptwerk.  The code is freely available to modify or to use "as is".  Since the programs are written in C with plenty of documentation they should prove highly accessible for others to modify.  An ICSP connection provides easy connection of a PICKit 3 or equivalent programmer.  A complete MPLAB project file allows programming via the Microchip MPLAB IDE.  Where HEX files are available, those files may be loaded to a UBW32 utilizing the UBW32's bootloader.  This allows programming (and reprogramming) without purchasing a dedicated programming device.

Here's a guide to setting up a development environment to work with these projects.

The UBW32-based Midi75Encoder - handles one manual

...and there's a four 8x8 matrix version in the works using the same layout!

View Schematic (.bmp):   Midi75Encoder

Program File (.hex):   download   You may need to right-click the link and then save the file.

Project File and Source Files (.zip):   download   (only needed to modify the program)

This is the latest project for midifying a single manual with up to 11 pistons and three analog inputs.  Together with users on the Miditzer forum, we've been aiming at a project which uses a single USB connection, keeps all wiring local to a single manual, uses a single programming file, and is simple to configure and build.

The UBW32 is a PIC-32 based design from Brian Schmalz.  It is available from www.sparkfun.com.  Photos will follow soon.

PIC32-based MIDI Encoder, 32x32 matrix or shift register versions

PIC32-based MIDI Encoder with USB connection:

Above is a UBW32 from www.sparkfun.com on a proto board which provides space for the connectors that are needed to connect eight keyboard scanners (or 4 banks of 4 MidiBox DINs each).  The inline connectors are for 4 potentiometers and for five status outputs.  Since taking this photo I added a +5v power supply and switching transistor to the empty area at the upper right of the proto board.  That's dedicated to switching a solid-state relay which controls AC power to an audio amplifier to prevent "thumps" when the organ console is powered up.  This is the board I am currently running in the Rodgers 321A organ console.

View Schematic (.bmp):   USB32 MIDI Encoder

Program File (.hex):   download   You may need to right-click the link and then save the file.

Download Project File and Source Files (.zip):   download  (only needed to modify the program)

Note: Files below this message are NOT bootloader compatible and should only be used with a stand-alone programmer.

Partially tested 32x32 Matrix version Files (.zip):   download 

The two collections of files include project files for the MPLAB X (beta) IDE.  This is a free Integrated Development Environment from Microchip.  Also required is their C32 Compiler.  I'd suggest downloading the evaluation version which will drop some optimizations after the trial period and continue to run in the LITE mode.  The third piece of the puzzle is the Microchip Applications Library (MAL) which includes the USB software built into these projects.  While it's possible to program the UBW32 utilizing its boot-loader, I've been using the PICkit 3.

Check the photo below for the farm-boy approach I took to the first trial connection using the Microchip USB Starter Kit II on their I/O Expansion board.  In this photo the PIC32 encoder is standing in for that top-left board which is the PIC18F4620-based encoder.  The string is similar to what we used to call "binder twine".  Hmmm....

These projects are self-documenting, ha! ha!  Seriously, if there are questions I'll be happy to respond.  Just send an email.  I haven't taken the time yet to write step-by-step instructions, but it's something I have on my to-do list.  I'm sometimes willing to add a feature or make modifications to the programs if you need a particular function or configuration.

 

PIC18 based MIDI Encoder

Download Schematics (.bmp):   Console Encoder    Keyboard Scan Bd pg. 1     Keyboard Scan Bd pg. 2

Download Project File and Source Files (.zip):   download          Block Diagram (.jpg)

The MidiCore4 program has been refined and circuit boards have been laid out and ordered for an Organ Console Encoder and Keyboard Input Readers.  The Console Encoder will handle up to eight keyboards or combinations of keyboards, pedal boards, stops, and pistons.  There's one Keyboard Scan board per keyboard or for every 64 switches.  There are connections for four pots and outputs for five of the Hauptwerk status indicators.  I am willing to  make the circuit board layouts available to individuals who request them, but would prefer being in the loop so that whenever possible orders can be combined for better pricing. 

New features added 10/26/2010:
    - Swell pedal linking/swapping for operating two virtual swell pedals from one console pedal
    - Translation tables for 64 stops and 64 pistons

Our Hauptwerk Setup

Software Configuration

A few notes about how Hauptwerk, Reaper Audio, and other software is configured for our VPO.  This setup is a bit dated but may be helpful for anyone using the EMU/Reaper combination.