As of v1.1.10, Unify can respond to standard MIDI bank-select and program-change messages. Right now, this is not part of the Unify graphical user interface (GUI), but is instead handled using a very simple system of text files.
Most MIDI messages carry a 7-bit value, which is a binary number in the range 0 to 127. When such numbers are interpreted as patch or patch-bank numbers, some MIDI devices may display them as 0-127, others as 1-128 (i.e., adding one to the actual binary value), and a few use more exotic numbering systems. Consult the user's manual for your specific MIDI devices to understand which numbering conventions they use.
MIDI “continuous controller” messages (typically used for knob movements) use such 7-bit values. When more than 7 bits are required, it has become conventional to use two consecutive CC messages together, the first providing a “coarse” value and the second a “fine” adjustment. The two values are sometimes referred to as MSB (most significant bits) and LSB (least significant bits), reflecting how the receiving MIDI device combines the two 7-bit numbers (0-127) into a single 14-bit number (0-16,383).
The current MIDI Standard specifies that CC#0 through CC#31 carry coarse/MSB values, and CC#32 through CC#63 (if used) carry the corresponding fine/LSB values. (If the “coarse” CC number is N, the corresponding “fine” CC number is N+32.)
The MIDI standard uses as many as three consecutive messages for program (aka patch) selection. The full three-message sequence is as follows:
MIDI “devices” (which includes software programs like Unify) are expected to remember the current (most recently received) bank-MSB and bank-LSB numbers, both of which default to 0. This allows shorter message sequences:
When Unify receives a MIDI patch-selection message sequence, it responds as follows:
There is a checkbox on the Settings view to display error messages instead of silently ignoring problem MIDI sequences.
Different MIDI controller produce different patch-select MIDI message sequences. The owner's manual for the product usually gives the details, but the best way to figure out what messages your particular controller produces is to use Unify's built-in MIDI Monitor plug-in (swap it in to any Instrument slot).
Remember that the bank MSB and LSB values default to zero (corresponding to MMM and LLL values of ONE), if your controller sends a two- or one-message sequence and does not provide them.
MIDI Bank files are plain-text files. Files created by e.g. a word processor can NOT be used.
The format of MIDI bank files is best illustrated by an example:
# This is a comment. Any text, on any line, after a # sign is ignored. # For comments at the end of a non-blank line, TWO spaces are required before the # character. # Blank lines (like the one above) are also ignored. # Non-comment lines in bank files have the form: # patch-number patch-name # Where patch-number is a number between 1 and 128, and patch-name is # the exact name of a Unify patch. The number must be followed by at # least one space. # In rare cases where you might have two or more patches with the same # name in different libraries, you can put the library name before the # patch name like this: # patch-number library-name / patch-name 1 ARP - Andromeda 2 1 SHOT - TinkerBell 3 UniChill / KEYS - Air Hammer
The main content consist of a series of lines which start with a “program number” in the range 1-128 (called PPP above) followed by a “patch identifier”, which can be any of the following:
Note that you can use blank spaces freely, e.g.
Use the following link to download a collection of MIDI Bank files covering all 505 patches in the Unify Standard Library. You can copy and paste individual lines from these files (changing the program numbers as desired) to create your own MIDI Bank files. Make sure to name your own files according to the MMM_LLL.txt convention defined above.
In Unify's Settings view, near the bottom there is a row of checkboxes like this:
Make sure “Bank/Program Change” is checked (as it is by default), or Unify will ignore incoming MIDI bank/patch select messages and pass them on to all hosted plug-ins.
If you're having any trouble setting up your MIDI Bank files, check the “Bank/Prog error messages” box. Each time a MIDI bank/patch select message sequence is received, if Unify can't identify the target patch (according to the rules given above), it will pop up an error message explaining why not.