Organ Monkey, alpha release, v0.1, 8/31/2007 Contents I. Summary II. Controller Inputs III. Manual Settings IV. Global Settings V. Audio Output VI. Presets VII. Version History I. Summary Organ Monkey ("OM") is a MIDI multiplexer application, designed to create a virtual organ console for MIDI control of a pipe organ. It can also be used to control a synthesizer module. OM can run either as a standalone executable or a VSTi. OM is not intended to graphically reproduce an organ console; instead, it is designed to maximize the potential of controlling a small pipe organ of up to 16 ranks, using inexpensive MIDI controller keyboards. It is also intended to have a simple, easily configurable interface that minimizes setup time and requires no user programming. With OM's virtual manual and stop features, the functional number of stops realized can be far higher than the number of physical ranks. For example, with a traditional pipe organ, there will be redundant notes in similar sounding ranks (e.g. Principal, Octave, Fifteenth, etc). For the organ builder with more limited resources, OM allows a single rank of pipes to be addressed with multiple stops, using for example a single Principal rank to create the harmonizing stops. II. Controller Inputs and MIDI outputs OM can receive input from controllers on any MIDI channel. OM supports the following control change parameters: - Hold (64) - Sostenuto (66) - Modulation (1) - Expression (11) - Volume (7) - Button 1 (80) (for Pedal Manual "Sustain" control) - All Notes Off (123) & All Sound Off (120) These parameters are not necessarily used as their name indicates; instead, they are generally used to dynamically control organ registration. The Preset module must be set to receive Program Change commands on a single MIDI channel. The Preset module is capable of accessing 128 registrations per data file (each registration preset contains all settings for OM, both Manual and Global; see Presets section). Note commands are transmitted out to MIDI channels selected on each Manual. Each MIDI channel should correspond to a rank of pipes. This allows up to 16 ranks to be controlled by OM. It is possible to divide each MIDI channel into two ranks, using a 61 note compass, but extreme care must be taken in OM and controller setup to avoid accidentally crossing ranks. All Control Change and Program Change commands can also be transmitted to the MIDI output (see Global Settings for further description). All Notes Off and All Sound Off commands will stop all notes being played on all channels, and reset OM's internal buffers. These commands will also be transmitted out to the MIDI output if the Control Through switch is on (see Global Settings). These commands should be used in the event of a hung note. OM's "Reset" button will stop all internal notes and sound, and transmit Note Off messages for all open Note On commands triggered by OM, but will not issue All Notes Off or All Sounds Off commands to the MIDI output. III. Manual Settings OM contains four virtual manuals; Choir, Swell, Great, and Pedal. All manuals are generally identical in function. The Swell and Pedal manuals each have a special function. Each manual receives MIDI Note commands over a single MIDI channel, and can be further defined by the MIDI note range. This allows a single keyboard controller to be split to two or more virtual manuals. The Transpose function changes the value of the Note data received on that manual. Each manual controls up to four virtual stops, somewhat informally named Stop, Unison/Octave, Mutation, and Mixture. The first three stops generate a single note output command for each Note On command received. The Mixture stop can generate up to three note output commands per Note On. Each stop is assigned to a single MIDI channel output; therefore, a single manual may address up to four ranks, and a total of six notes per Note On command, as follows: Stop: plays the MIDI note received, as modified by Transpose value Unison/Octave: switchable between the same note as Stop, or an octave higher Mutation: adds (or subtracts) its interval to the Stop note. May be set to zero for another unison rank. Mixture: plays up to three additional harmonizations of the Stop note, similar in function to Mutation. The first value may be set to zero, for another unison rank. The second and third notes will not generate Note commands when set to zero. To activate a stop, select a MIDI output channel from the stop's drop-down menu. (planned for future version: user-definable rank names for MIDI channels) The stops may be switched on and off by MIDI Control Change commands. Currently supported are Hold, Sostenuto, Modulation, Expression, and Volume. The Hold and Sostenuto parameters allows use of footswitches to turn the stop on and off. The Modulation, Expression, and Volume parameters progressively actuate stops across the manual, including each Mixture note, as the parameter value increases. (planned for future version: user-definable thresholds for progressive stop actuation) Note Velocity data can also be used for switchable or progressive actuation of stops (see "Sensitivity" in Global Settings). The progressive setting allows full dynamic control of organ registration. To enable parameter-controlled stop actuation, select the desired parameter from the drop-down menu. The Swell manual's "Swell On" function transmits Control Change data for the selected parameter to all MIDI channels selected for the Swell manual's stops. An alternate method of transmitting Control Change data intended to actuate a swell feature is to set the Control Change switch to "Through", and use a MIDI channel and/or parameter that is not addressed by OM (see Global Settings). The former method is probably most appropriate for a synth module, and the latter for a physical swell cabinet. The Pedal manual has a Sustain feature to enable use of a keyboard (or part of a keyboard) as a virtual pedalboard. When the Sustain feature is engaged, each note played will sustain, even after the key is released, until the next note is played. To release the final note, a selected control change must be received (either Hold, Sostenuto, or Button 1). The Sustain feature is monophonic input only. IV. Global Settings Input Settings: The Hold, Sostenuto, Modulation, Volume, and Expression controls have a global switch. When these switches are activated (in the right position), all manuals will respond to Control Change commands received on any MIDI channel. In the left position, each manual will only respond to Control Change commands received on its MIDI input channel. The Sensitivity switch changes the operation of stop actuation from fixed (parameter value in excess of 72 will actuate the stop for that note) to progressive (stops actuated as follows: Stop, 1; Unison/Octave, 48; Mutation, 72; Mixture, 84, 96, 108). (planned for future version: user-definable thresholds for progressive stop actuation) Output Settings: The Audio switch turns on OM's internal synthesis output (see Audio Output, below). The Velocity switch can be set to transmit the input value from the MIDI controller ("Velocity" position), or set to a fixed value ("Fixed", 72). The setting of this switch does not affect the actuation of stops set to respond to velocity. The Control Change and Program Change switches allow transmission of all MIDI Control and Program Change commands on all MIDI channels to the MIDI output, with the switches in the "Through" position. OM will respond as set to all relevant commands on either setting, but the left switch positions will block Control and Program Change messages from being transmitted out (except Control Change commands from the Swell feature). If Control Change output commmands are not required, this switch should be set off to maximize throughput of MIDI note commands across the MIDI output. V. Audio Output The executable version of OM contains simple sine wave oscillator synthesis to assist with organ system design and testing. The sound quality is notably limited, and it may click in response to a large volume of MIDI commands, as all MIDI channel data is fed into the module. Both .exe and VSTi versions have a MIDI output, which is the intended use of the application. VI. Presets The Preset box allows storage of up to 128 organ registrations. The Preset module stores all parameters of OM. The Preset module will respond to MIDI Program Change commands on the MIDI channel selected in the dropdown menu. Preset files may be saved and easily modified offline as .txt files. This also allows several different preset files to be created, for an even larger selection of registrations. VII. Version History and Known Issues v0.1, 8/31/2007. Initial alpha release. Known issue: sound from the internal audio module will cut off upon program/preset change. This does not effect the MIDI outputs; Note Off messages will only be triggered by a program change if the stop that generated the Note On command is affected by the program change. Scheduled for beta release v0.2 are user-definable rank names, and user-definable threshold settings, as well as a Gorilla version, with five manuals with six stops each, and two MIDI output ports supported. Organ Monkey Created by Jon O'Neil Naiant Studio Kill Devil Hills, NC, USA www.naiant.com Naiant Studio, Organ Monkey, and the salmon naiant logo are trademarks of Jon O'Neil d/b/a Naiant Studio. This software is freeware and may be distributed without restriction. Images, icon, and fonts are used under license by their creators.