The MIDI sysex, described below, is recommended for sending tuning data from hosts to plug-ins. Apple-Logic actually sends its tuning messages by this data. Note: For plug-ins possessing own tuning means, either tuning tables or Hermode Tuning, it is recommended that incoming tuning messages will have priority. Additionally for plug-ins it is recommended to reset the tuning to equal temperament at every new start. This is to avoid an out-of-key tuning, basing on the last incoming tuning message. MIDI Standard: SINGLE NOTE TUNING CHANGE (Real-Time) F0 7F <device ID> 08 02 tt F0 7F <device ID> 08 02 tt ll F7 ll (kk xx yy zz) F7 Universal Real Time SysEx header ID of target device Sub-ID#1 (MIDI Tuning Standard) Sub-ID#2 (02H, note change) tuning program number (0-127) number of changes (1 change = 1 set of (kk xx yy zz)) kk = MIDI key number xx yy zz = frequency data for that key (repeated „ll“ number of times) EOX Regarding tt (tuning program number): The inventors of this data have been in doubt whether it could be useful to equip musical instruments with different tuning tables. But as this doesn’ t make many sense, all actual tuning applications send only one tuning table at the same time. Therefore, it isn’t necessary to support tt. Apple-Logic sends its tuning tables in principal with the following values: <deviceID> = 7F tt = 00 The message is composed of both the following parameters: 1. The level of master tune (higher or lower than A = 440 Hz) 2. The individual tuning deviation from each note to a higher or lower position than with equal temperament. The level of master tune and the value of the individual deviation of each note from equal temperament are added and exported with the values of “xx yy zz”. Every new message will substitute the previous one. Every message retunes only the notes, named by “kk”, the other notes keep their frequency. For dynamic retuning messages, calculated by tuning programs, e.g. Hermode Tuning, it is sufficient to send only the tuning messages of the notes having the status “On”. For retuning messages caused by changes of master tune or by new selected fixed tuning tables it is necessary to send a message for all 128 Midi notes. How to set the values of kk xx yy zz kk marks the Midi note number which has to be retuned. xx tunes this Midi note number kk to the frequency values of MIDI note xx in equal temperament. For example: xx = 45 controls the note kk to an A of 440 Hz, xx = 3C controls the note kk to a C of about 261.6256 Hz. The bytes yy and zz add microtuning values as plus-offsets to the value of xx. Their range of 128 * 128 = 16,384 steps corresponds to 100 Cents. Remark: MIDI defines the value of xx yy zz = 7F 7F 7F as “No change”. This is to prevent instruments which do not use the full range of 128 Midi key numbers from sending erroneous tuning data to instruments which do use the full range. An example Supposed the master tune level is set 7 Cents higher than A = 440 Hz, this corresponds to an A of about 441.78 Hz. Additionally the following notes have to be retuned: − Midi note 3C, individually tuned to + 4 Cents (4 Cents higher than with equal temperament). − Midi note 40, individually tuned to - 10 Cents (10 Cents lower than with equal temperament). As a result of the addition of master tune and of the individual tuning values, these notes will have the following distances to the level of equal temperament at 440 Hz − Midi note 3C = + 11 Cents − Midi note 40 = - 3 Cents So the tuning message has to be: F0 7F 7F 08 02 00 02 (3C 3C 0E 0A) (40 3F 7C 14) F7