Microtuning the Yamaha DX11/TX81Z using MIDI System Exclusive Messages Motivation The DX11 manual contains no information on SysEx microtuning and the TX81Z manual does not explain the subject in depth. Overview There are thirteen microtuning memories. 1) Octave 2) Full 3) Preset 1: 12-tone Equal 4) Preset 2: Pure major 5) Preset 3: Pure minor 6) Preset 4: Mean tone 7) Preset 5: Pythagorean 8) Preset 6: Werckmeister 9) Preset 7: Kirnberger 10) Preset 8: Vallotti & Young 11) Preset 9: 1/4 tone upshifted 12-tone equal 12) Preset 10: 1/4 tone 13) Preset 11: 1/8 tone There are four types of system exclusive messages related to microtuning. 1) Microtune bulk data dump 2) Microtune bulk data dump request 3) Microtune parameter change 4) Performance parameter change Message types 1 through 3 operate on the Octave and Full microtuning memories. Microtune bulk data dump downloads an entire tuning to the instrument. Microtune bulk data dump request uploads an entire tuning from the instrument. Microtune parameter change allows the tuning information for a single note to be altered. Message type 4, performance parameter change, can be used to set three parameters related to microtuning. 1) Microtuning enable 2) Microtune select (Octave/Full/Preset1/Preset2/...) 3) Microtune base key select (C...B) General Format For Microtune Bulk Data byte contents description 1 F0h (240) SysEx begin 2 43h (67) Yamaha ID # 3 0nh (n) basic receive channel n (0...15) 4 7Eh (126) microtuning parameter number 5 0ccccccc data bytes count, most significant byte 6 0ccccccc data bytes count, least significant byte 7 0ddddddd first data byte . . . . . . c+6 0ddddddd last data byte c+7 0eeeeeee checksum of data bytes (2Ős complement of sum) c+8 F7h (247) SysEx end Notation: All numbers in hexadecimal appear with an "h" appended. All 8-digit numbers are in binary. Decimal numbers appear normally. All bytes in between $F0 and $F7 have the most significant bit cleared because they are MIDI data bytes. Byte 3, basic receive channel, should be zero unless the user has changed the basic receive channel on the DX11. MIDI channels are numbered 0 through 15. The number of data bytes is represented by the letter "c". The checksum, e, is the 2Ős complement of the sum of the data bytes. This means that sum + checksum = 0 if two's complement representation of negative numbers is used. The two's complement is obtained by reversing all of the bits in a number and then adding 1. Specific Bytes for Full 005-006 2, 10 (02h, 0Ah) (c = 266 = 2*128 + 10*1) 007-016 "LM MCRTE1" (76,77,32,32,77,67,82,84,69,49) 017-272 0mmmmmmm, 0fffffff Bytes 1-10 are an ASCII string. There are two spaces between "LM" and "MCRTE1." Bytes 17-272 contain two bytes of tuning information for each MIDI note 0-127. The first byte of each pair, m, is a coarse tuning parameter, indicating which MIDI note 13-108 in 12-ET the note is closest to. The second byte of each pair, f, is a fine tuning parameter, giving an offset 0-63 Yamaha tuning units away from note m in 12 ET. There are 64 Yamaha tuning units per half step, 12*64=768 per octave. Specific Bytes for Octave 005-006 0, 34 (00h, 22h) (c = 34 = 0*128 + 34*1) 007-016 "LM MCRTE0" (76,77,32,32,77,67,82,84,69,48) 017-040 0mmmmmmm, 0fffffff This message is similar to that for Full, but provides tuning information for MIDI notes 60-71 only. This information is transposed into all octaves. Microtune Bulk Data Dump Request Message A bulk data dump of the format specified above is sent out from the instrument. FOh. 43h. 2nh. 7Eh. "LM MCRTEx". F7h. 240. 67. 32+n. 126. "LM MCRTEx". 247. n = basic receive channel x = '0' for oct, '1' for full Microtune Parameter Change Message FOh. 43h. 1nh. 10h. 0ppppppp. 0kkkkkkk. 0mmmmmmm. 0fffffff. F7h. 240. 67. 16+n. 16. p. k. m. f. 247. n = basic receive channel p = 7Dh (125) for oct, 7Eh (126) for full k = key number (0-11 for Octave, 0-127 for Full) m = midi note number 13-108 f = fine tuning 0 to 63 If f < 33, it will be displayed on the LCD as positive offset from note m. Otherwise, it will be displayed as a negative offset -31 to -1 from note m+1. Performance Parameter Change Messages Related to Microtuning FOh. 43h. 1nh. 10h. 0ppppppp. 0ddddddd. F7h. 240. 67. 16+n. 16. p. d. 247. n = basic receive channel p = 11 for microtuning enable 96 for microtune memory select 99 for microtune base key select d = 0/1 for disable/enable 0...12 for memories Octave, Full, and Presets 1...11 0...11 for C...B The base key parameter only effects presets 2...5. It is important to note that the base key for preset 3, pure minor, is the key of the relative major. In other words, a value of zero, which would normally be sent to select the key of C, will select pure minor in A. The LCD will display the minor key, 'A' in this case.