MIDI Organ Interface Project - Keyboard Scanner

3/28/2010 update
Press for more details


Overview of Keyboard Scanner
Keyboard ScannerKeyboard Module I/OSchematic PhotoPartsFiles
  • 61 - Keyboard Inputs (61 bits)
  • 3 - Coupler Inputs (16',8'Off,4')
  • MIDI Channel Number (4 jumpers)
  • Transpose (6 bits = ±12, up, down)
  • Analog Input for Expression
  • Expression Setting (4 jumpers)
  • PANIC Defeat Jumper
  • Pulse Output (for Percussion)
  • MIDI Output
  • High-Speed Serial Out
  • Parts List Gerber Files

    Hex Program Code

    Program Source Code

    NOTE *** Processer U2 socket is jumpered and not yet used. U2 is only needed if the other coupler boards or unified boards are used. Right now JOrgan seems a better way to go so this scanner board is functional enough to support JOrgan.
    MIDI
    Note Numbers
    The keyboard span is 5 octaves plus a high C (61 notes)
    The MIDI span is from note number 36 (c1) through middle C (note 60) to upper c6 (note 96)
    The intra-manual couplers add notes an octave below and/or above the note being played and the transpose shifts the notes up to an octave up or down, however the serial output and the MIDI output are each still limited to the same span of 61 notes from note number 36 through note number 96.
    Processing 1. The processor U1 scans the isolated keyboard contacts and stores them in memory.

    2. The new state is further updated based on the coupler inputs (16', 8'off, 4') and by the transpose input.

    3. The new state is compared to the previous state note by note
    3a. If a difference is detected between new and previous states of a note, U1 sends the appropriate Note ON/OFF message via the high-speed serial output and the previous state of that note is updated. The pulse-out memory bit is set if a note was changed to ON.
    3b. If, at the end of the scan, the pulse-out memory bit is set, a pulse output is initiated for the percussion.

    4. If ALL contacts are OFF, a timer is checked for the last PANIC transmission. If the timer exceeds 10 seconds, another PANIC message is sent to help minimize frozen notes.

    5. Go back to 1.
    MIDI MIDI processor U2 looks for any transmissions from the high-speed serial output. If a transmission is received, the corresponding MIDI message is composed and sent out via the MIDI output.
  • The MIDI Channel jumpers are used by U2 for the channel portion of the message.
  • The Analog input is used to set the MIDI velocity.
  • The Analog Jumpers are used to initially set the velocity information. Push the expression pedal to maximum and temporarily jumper the SET MAX jumper. Push the expression pedal to minimum and temporarily jumper the SET MIN jumper. These set the analog values for maximum velocity and 25% velocity. If the ENABLE Jumper is missing, the velocity value is fixed at 64.
  • PANIC messages are NOT sent if the PANIC Defeat jumper is installed.