-
Notifications
You must be signed in to change notification settings - Fork 0
Components
"The time has come," the Walrus said,
"To talk of many things:
Of shoes - and ships - and sealing wax -
Of cabbages - and kings -
And why the sea is boiling hot -
And whether pigs have wings."-- Lewis Carroll, Through the Looking-Glass
This section describes the things that make up a KeyMaster project: instruments, songs, patches, connections, set lists, named messages, and triggers.
The name "message" will be used to mean any MIDI message such as a note on message or a sysex message. A "named message" is the thing described below (basically a list of MIDI messages that has a name).
An instrument represents either a MIDI input coming from a controller such as a keyboard into KeyMaster or a MIDI output going from KeyMaster to a synth, drum machine, or other device. Each instrument specifies which MIDI port it uses by name and may have a display name that is different than the port name.
A song is a named list of patches that allow you to control your MIDI setup. A song can have any number of patches. You can step forward and backward through the patches in a song using the GUI movement keys or triggers.
When a song becomes the current song, its first patch is made the current patch.
A song also has a tempo for the master MIDI clock and a switch that determines if the clock should be started when the song becomes active.
A patch is a named collection of connections that can modify the MIDI data. See Patches for much more detail about how patches work.
A patch also has optional start and stop named messages. See below for more about named messages. The start named message is sent to all outputs used within a patch when the patch is entered, and the stop named message is sent to the same outputs when the patch is exited.
A connection connects an input instrument to an output instrument. Both can either use all channels or one specific channel, which may be different for the input and the output. If an input uses one channel then all other incoming data on that channel from that instrument is ignored for this connection only. All of that input's channels may be used by other connections in the same patch. See Patches for more detail about how connections work.
A connection can optionally send bank numbers and a program change to its output instrument's channel. If a bank is specified, first the bank change (MSB first, then LSB) is sent then the program change.
A connection can optionally specify a zone: a range of keys outside of which all MIDI note (note on, note off, and poly pressure) data will be ignored. Since a patch can contain multiple connections, this lets you split and layer your controllers, sending some notes to some synths but not others, doubling up outputs in the same zone (optionally transposing notes), or even overlapping zones.
A connection can transpose all notes by a fixed value. If a transposition would cause a note number to be out of range (lower than 0 or higher than 127), then the note is filtered out.
A connection can modify controller messages by filtering them out, limiting them to min/max values, or translating them to a completely different controller number. When min/max values are specified, you can also make sure that the 0 and/or 127 values are always passed through even if they're out of the min/max range. See Patches#controller-mappings for more detail.
Connections filter out sysex messages by default, but can be told to pass them through from the connection's input to its output.
A set list is a list of songs. A song can appear in more than one set list. One special set list called "All Songs" contains the list of all songs in alphabetical order. It's special because it can't be deleted, edited (except for creating new songs or deleting songs), or reordered.
A named message is a list of MIDI messages with a name. Named messages can be sent via triggers (see below) and can be sent when a patch starts or stops.
Named messages are sent to all output instruments. The MIDI bytes are sent from KeyMaster with channels unchanged. If a named message contains channel messages then the receiver will of course ignore all except those on the channels it's configured to receive.
A trigger looks for a particular "trigger input" and performs some action when it is seen.
Trigger Inputs:
- A computer function key
- A non-sysex MIDI message from a paticular input instrument
A sigle trigger may respond separately to both a key press and a MIDI message.
Trigger Actions:
- Move to next or previous song or patch
- Send a MIDI panic message
- Send a "super-panic": a MIDI panic message plus note-off messages for every note on every MIDI channel
- Send a named message
- Tutorial
- Components: songs, patches, connections
- Patches and connections
- Tips and Tricks
- Screenshots
- Changes between versions
- To Do list, including bugs and new features