DTXPRESS MIDI SYSEX format Copyright (c) YAMAHA CORPORATION, 1999. All Rights Reserved. Document version 1.0 * notes Prefix '$' means hexadecimal values. n in $0n,$1n,$2n : n is device number (0 to 15) * System exclusive message ** parameter change *** GM system ON $F0 $7E $7F $09 $01 $F7 reset all MIDI parameter to default, except MIDI master tuning. *** XG system ON $F0 $43 $1n $4C $00 $00 $7E $00 $F7 same as 'GM sytem ON' *** identify request $F0 $7E $0n $06 $01 $F7 DTXPRESS will transmit 'identyfy reply' *** MIDI master volume $F0 $7F $7F $04 $01 $XX $mm $F7 $XX : any value mm : master volume *** MIDI master tune $F0 $43 $1n $27 $30 $00 $00 $mm $ll $cc $F7 mm : MSnible(4bit) ll : LSnible(4bit) $80 is center, resolution is 1 cent. *** identify reply $F0 $7E $0n $06 $02 $43 $00 $4C $6B $07 $mm $00 $00 $00 $F7 mm : version number of software ($00) *** display data $F0 $43 $1n $4c $06 $00 $ii $dd*N $F7 Display strings for a while on LCD. ii : display start point (0 - 31) dd : ASCII code display data, maximum 32 characters *** clear all song $F0 $43 $7D $1n $44 $54 $00 $F7 Delete all user song. (without confirmation) *** remote SW $F0 $43 $7D $1n $52 $53 data $F7 Simulate panel SW ON and OFF. data bit0`bit5($0-$3f): switch number data bit6 : ON=1, OFF=0 refer Table C.1 for switch number *** parameter change $F0 $43 $7D $1n $44 $4C p1 p2 p3 p4 data1 (data2) $F7 Modyfy parameters. p1,p2,p3,p4 : parameter number in case of p1 = 14 or 15 data bytes are 2 bytes. data1 is MS7bit, data2 is LS7bit in case of other parameter data byets are 1 bytes. refer TableA.1 - A.8 for parameter number. ** Bulk dump format is follows: $F0 $43 $7D $0n n: device number $ss data bytes MS7bit $ss data bytes LS7bit $44 ID, ASCII char 'D' $54 ID, ASCII char 'T' $58 ID, ASCII char 'X' $4C ID, ASCII char 'L' type1 type, ASCII char type2 type, ASCII char type3 type, ASCII char type4 type, ASCII char indM index number MS7bit indL index number LS7bit numM object number MS7bit numL object number LS7bit data data ... data csum check sum $F7 data bytes : total data bytes + 12 If total data size exceeds 4096 bytes then split data to small packets and increase index number in header from $00 $01 ($0001) by one. And then set index number of last packet to $7f $7f ($3fff). If total data size is less than 4096 bytes, set $00 $00 ($0000) to index number of header. Object number is a index number of user data such as 'drumkit number' or 'song number'. System uniq data such as 'system' or 'edit buffer' have object number $7f $7f ($3fff) Check sum is 2's complement data of sum from 'ID' to data. *** bulk dump - systam data $F0 ... $58 ID, ASCII char 'X' $4C ID, ASCII char 'L' $53 type, ASCII char 'S' $59 type, ASCII char 'Y' $53 type, ASCII char 'S' $54 type, ASCII char 'T' $00 allways $00 $00 allways $00 $7F allways $7F $7F allways $7F data data ... data csum check sum $F7 refer Table B.1 for detail. *** bulk dump - drumkit data $F0 ... $58 ID, ASCII char 'X' $4C ID, ASCII char 'L' $44 type, ASCII char 'D' $4B type, ASCII char 'K' $49 type, ASCII char 'I' $54 type, ASCII char 'T' $00 allways $00 $00 allways $00 numM drumkit number MS7bit numL drumkit number LS7bit data data ... data csum check sum $F7 drumkit number : user drumkit number if data is edit buffer then number is $7F $7f ($3FFF) refer TableB.2 for detail *** bulk dump - trigger data $F0 ... $58 ID, ASCII char 'X' $4C ID, ASCII char 'L' $54 type, ASCII char 'T' $52 type, ASCII char 'R' $49 type, ASCII char 'I' $47 type, ASCII char 'G' $00 allways $00 $00 allways $00 numM trigger number MS7bit numL trigger number LS7bit data data ... data csum check sum $F7 trigger number : user trigger number if data is edit buffer then number is $7F $7f ($3FFF) refer TableB.3 for detail *** bulk dump - user map data $F0 ... $58 ID, ASCII char 'X' $4C ID, ASCII char 'L' $55 type, ASCII char 'U' $4D type, ASCII char 'M' $41 type, ASCII char 'A' $50 type, ASCII char 'P' $00 allways $00 $00 allways $00 $7F allways $7F $7F allways $7F data data ... data csum check sum $F7 refer TableB.4 for detail 3.2.5 bulk dump - song data $F0 ... $58 ID, ASCII char 'X' $4C ID, ASCII char 'L' $53 type, ASCII char 'S' $4F type, ASCII char 'O' $4E type, ASCII char 'N' $47 type, ASCII char 'G' indM index number MS7bit indL index number LS7bit numM song number MS7bit numL song number LS7bit data data ... data csum check sum $F7 song number : user song number in case of one song (current song): number is $7F $7f ($3FFF) data : split original data to 4bit MSnibble and LSnibble refer TableB.5 for detail *** bulk dump - stack data $F0 ... $58 ID, ASCII char 'X' $4C ID, ASCII char 'L' $53 type, ASCII char 'S' $54 type, ASCII char 'T' $43 type, ASCII char 'C' $4B type, ASCII char 'K' $00 allways $00 $00 allways $00 numM stack number MS7bit numL stack number LS7bit data data ... data csum check sum $F7 stack number : user stack number $00 to $0f data : split original data to 4bit MSnibble and LSnibble refer TableB.6 for detail ** dump request $F0 $43 $7D $2n n: device number $44 ID, ASCII char 'D' $54 ID, ASCII char 'T' $58 ID, ASCII char 'X' $4C ID, ASCII char 'L' type1 type, ASCII char type2 type, ASCII char type3 type, ASCII char type4 type, ASCII char numM object number MS7bit numL object number LS7bit $F7 type : data type object number is a index number of user data such as 'drumkit number' or 'song number'. System uniq data such as 'system' or 'edit buffer' have object number $7f $7f ($3fff) * do not responce number $3FFF of song data Table A parameter change parameters notes in range OB30 0:-15, 1:-14, ... 15:0, 16:+1, ... 30:+15 OB32 0:-16, 1:-15, ... 16:0, 17:+1, ... 32:+16 OB48 0:-24, 1:-23, ... 24:0, 25:+1, ... 48:+24 OB64 0:-64, 1:-32, ... 32:0, 33:+1, ... 64:+32 OB127 0:-127, 1:-62, ... 64:0, 65:+1, ...127:+63 OB$1000 $0000:-$800,$0001:-$7ff,... $0800:$0,$0801:+$1,...$1000:+$800 ASCII $20 - $7f A.1 parameter change - DRUM control parameter ------------------------------------------------------- P1-4 range name ------------------------------------------------------- 0 1 - - 0-10 trigger number 0 2 - - 0-79 drumkit number 0 3 - - 0,1 trigger edit flag 0 4 - - 0,1 drumkit edit flag ------------------------------------------------------- A.2 parameter change - system parameter ------------------------------------------------------- P1-4 range name ------------------------------------------------------- 1 1 - - 0-2 learnMode(no,shift,allways) 1 2 - - 0,1 bypass 1 3 - - 0,1 volMode(practice,live) 1 4 - - OB64 HH offset data 1 5 - - 0-127 HH offset time 1 6 - - 0,1 jump to recent page 2 1 - - 0,1 MIDI mode(dtx,GM) 2 2 - - 0-16 MIDI device no 2 3 - - 0,1 MIDI local sw 2 4 - - 0,1 MIDI merge sw 2 5 - - 0,1 MIDI receive PC 2 6 - - 0,1 MIDI receive ch10 2 7 - - 0,1 MIDI receive ch10 PC 2 8 - - 0,1 MIDI receice sysex 2 9 - - 0,1 MIDI send HH ctrl 2 10 - - 0,1 MIDI SEQ control 2 11 - - 0-7 MIDI thru port 2 12 - - 0-5 MIDI bulk time(50,100,...300) 2 13 n - 0-81 MIDI PC table(off,1-) 3 1 t - 0-12 SEQ clk voice segment 3 2 t - 0-127 SEQ clk voice number 3 3 t - B48 SEQ clk voice shift 3 4 t - OB127 SEQ clk voice tune 3 5 t - 0-127 SEQ clk note number 3 6 - - 0,1 SEQ count sw 3 7 - - 0-2 SEQ sync mode(int,ext,auto) 3 8 - - 0,1 SEQ global tempo(song,global) 3 9 - - 0,1 SEQ play click 4 1 - - OB48 master shift 4 2 - - OB127 master tune 4 3 - - 0-127 master vol 4 4 - - 0,1 master reverb bypass 4 5 - - 0-12 master EQ lo 4 6 - - 0-12 master EQ hi ------------------------------------------------------- n: 0-127 program change number t: 0-2 click type (Hi,Mid,Lo) A.3 parameter change - trigger parameter ------------------------------------------------------- P1-4 range name ------------------------------------------------------- 6 1 c - ASCII name 6 2 - - 0-10 inc pad 6 3 - - 0-10 dec pad 6 4 - - 0,1 input exchange 7 1 in - 0-20 pad type(TPsnr,...,misc6,HHctrl) 7 2 in - 0-99 pad gain 7 3 in - 0-127 min velocity 7 4 in - 0-4 velocity curve 7 5 in - 0-9 self reject time 7 6 in - 0-9 rejection level 7 7 in - 0-10 specified reject input 7 8 in - 0-9 specified reject level ------------------------------------------------------- c: 0-7 column number in: 0-9 trigger input number A.4 parameter change - drumkit parameter ------------------------------------------------------- P1-4 range name ------------------------------------------------------- 8 1 c - ASCII name 8 2 - - 0-127 reverb return level 8 3 - - 0-127 reverb send level 8 4 - - 0-11 reverb type 8 5 - - 0-69 reverb time 8 6 - - 0-63 FC sens 8 7 - - 0-127 volume 8 8 - - 0-127 song select 8 9 - - 0-2 tempo select MSB 8 10 - - 0-127 tempo select LSB 9 1 in - 0-6 function 9 2 in - 0-126 song no 9 3 in - 0-2 song mode(play,chase,ctof) 9 4 in - 0,1 rim with pad(in=rim̂) 9 5 in - 0-127 reverb send 9 6 in - 0-9 X-fade mode 9 7 in - 0,1 key off enable 9 8 in - 0-3 kas mode(poly,semi,mono,himono) 9 9 in - 0-15 alternate group 9 10 in - 0,1 hold mode 9 11 in - 0,1 song repeat mode 10 1 in v 0-12 voice segment 10 2 in v 0-127 voice number 10 3 in v 0-127 volume 10 4 in v 0-127 pan 10 5 in v OB48 pitch coarse 10 6 in v OB127 pitch fine 10 7 in v OB127 modify 10 8 in v OB127 decay 10 9 in v OB127 filter 10 10 in v 0-127 note number 10 11 in v 0-99 gate time 10 12 in v 0-15 MIDI channel(1-16) 11 1 - ch 0,1 tr switch 11 2 - ch 0-127 tr program change 11 3 - ch 0-127 tr bank select MSB 11 4 - ch 0-127 tr bank select LSB 11 5 - ch 0-127 tr volume 11 6 - ch 0-127 tr pan ------------------------------------------------------- c: 0-7 column number in: 0-21 input number 0,1 input 1 pad,rim 2,3 input 2 pad,rim ... ... 12,13 input 7 pad,rim 14,15 input 8 pad(open),rim(open) 16,17 input 8 pad(close),rim(close) 18,19 input 8 foot close,splash 20 input 9 pad 21 input 10 pad v: 0,1 voice layer number ch: 0-15 MIDI channel A.5 parameter change - drummap ------------------------------------------------------- P1-4 range name ------------------------------------------------------- 12 1 n - 0-127 reverb send 12 2 n - 0-3 kas mode(poly,semi,mono,himono) 12 3 n - 0-15 alternate group 12 4 n - 0,1 key off enable 13 1 n - 0-12 voice segment 13 2 n - 0-127 voice number 13 3 n - 0-127 volume 13 4 n - 0-127 pan 13 5 n - OB48 pitch coarse 13 6 n - OB127 pitch fine 13 7 n - OB127 modify 13 8 n - OB127 decay 13 9 n - OB127 filter ------------------------------------------------------- n: 0-127 note number A.6 parameter change - stack ------------------------------------------------------- P1-4 range name ------------------------------------------------------- 14 1 c n ASCII name 14 2 - n 0,1 HH xfade enable 14 3 - n 0-127 HH rate sens 15 1 v n 0-1023 kbank number 15 2 v n 0-127 attenuation @0.75db 15 3 v n OB48 shift 15 4 v n OB127 tune @1.17cent 15 5 v n 0-255 fr 0-127, Mode 0x80 15 6 v n 0-255 fl 15 7 v n 0-127 lr 15 8 v n 0-255 ll 15 9 v n 0-127 rr 15 10 v n 0-18 velTblNo 15 11 v n OB30 fc kvs 15 12 v n 0-31 Q 15 13 v n 0-2047 fc 15 14 v n 0-127 volume boost 15 16 v n OB$1000 peg L1 15 17 v n 0-127 peg R1 15 18 v n OB30 pitch kvs 15 19 v n OB30 atack kvs 15 20 v n OB30 decay kvs 15 21 v n 0,1 stack enable ------------------------------------------------------- c: 0-7 column number n: 0-15 user stack number v: 0,1 wave layer number A.7 parameter change - song ------------------------------------------------------- P1-4 range name ------------------------------------------------------- 17 1 c - ASCII name 17 2 - - 30-250 tempo *note 1 *note2 17 3 - - 0-50 tempo add *note 1 17 4 - - 0,1 Repeat play 17 5 - - 0-39 beat 18 1 ch - 0,1 transmit sw 18 2 ch - 0,1 drum voice (melody,drum) 18 3 ch - 0-127 program change 18 4 ch - 0-127 volume 18 5 ch - 0-127 pan ------------------------------------------------------- c: 0-7 column number ch: 0-15 MIDI channel *note1: 30 to 250 tempo = 30 - 250 tempo add = 0 251 to 300 tempo = 250 tempo add = 1 - 50 *note2: divide data to 4bit MSNibble, LSNibble A.8 parameter change - SEQ control parameter ------------------------------------------------------- P1-4 range name ------------------------------------------------------- 16 1 - - 0,1 Groove Check 16 2 - - 0-126 Song No 16 3 - - 0-127 Tempo LSB (tempo=30-300) 16 4 - - 0-2 Tempo MSB 16 5 - - 0-39 click Beat 16 6 - - 0-5 click resolution 16 7 - - 0,1 RHYTHM mute 16 8 - - 0,1 RHYTHM part mute kick 16 9 - - 0,1 RHYTHM part mute snare 16 10 - - 0,1 RHYTHM part mute cymbal 16 11 - - 0,1 RHYTHM part mute misc 16 14 - - 0,1 song repeat play ------------------------------------------------------- B bulk dump data notes in type UC unsigned 8bit data US signed 16bit data *nn repeat nn times [***] data block B.1 bulk dump - systam data system data - 202 bytes ------------------------------------------------------- offset type range name ------------------------------------------------------- 0 UC 0-2 learnMode(no,shift,allways) 1 UC 0,1 bypass 2 UC 0,1 volMode(practice,live) 3 UC OB64 HH offset data 4 UC 0-127 HH offset time 5 UC 0,1 jump to recent page 6 UC 0,1 MIDI mode(dtx,GM) 7 UC 0-16 MIDI device no 8 UC 0,1 MIDI local sw 9 UC 0,1 MIDI merge sw 10 UC 0,1 MIDI receive PC 11 UC 0,1 MIDI receive ch10 12 UC 0,1 MIDI receive ch10 PC 13 UC 0,1 MIDI receice sysex 14 UC 0,1 MIDI send HH ctrl 15 UC 0,1 MIDI SEQ control 16 UC 0-7 MIDI thru port 17 UC 0-5 MIDI bulk time(50,100,...300) 18 UC*128 0-81 MIDI PC table(off,1-) 146 UC*3 0-12 SEQ clk voice segment 149 UC*3 0-127 SEQ clk voice number 152 UC*3 OB48 SEQ clk voice shift 155 UC*3 OB127 SEQ clk voice tune 158 UC*3 0-127 SEQ clk note number 161 UC 0,1 SEQ count sw 162 UC 0-2 SEQ sync mode(int,ext,auto) 163 UC 0,1 SEQ global tempo(song,global) 164 UC 0,1 SEQ play click 165 UC OB48 master shift 166 UC OB127 master tune 167 UC 0-127 master vol 168 UC 0,1 master reverb bypass 169 UC 0-12 master EQ lo 170 UC 0-12 master EQ hi 171 32byte - reserve ------------------------------------------------------- B.2 bulk dump - drumkit data [DRKEY] block - 3 bytes ------------------------------------------------------- offset type range name ------------------------------------------------------- 0 UC 0-127 note number 1 UC 0-99 gate time 2 UC 0-15 MIDI channel(1-16) ------------------------------------------------------- [DRVOICE] block - 10 bytes ------------------------------------------------------- offset type range name ------------------------------------------------------- 0 UC 0-12 voice segment 1 UC 0-127 voice number 2 UC 0-127 volume 3 UC 0-127 pan 4 UC OB48 pitch coarse 5 UC OB127 pitch fine 6 UC OB127 modify 7 UC OB127 decay 8 UC OB127 filter 9 UC - reserve ------------------------------------------------------- [DRSRC] block - 38 bytes ------------------------------------------------------- offset type range name ------------------------------------------------------- 0 UC 0-6 function 1 UC 0-126 song no 2 UC 0-2 song mode(play,chase,ctof) 3 UC 0,1 rim with pad(in=rim̂) 4 UC 0-9 X-fade mode 5 UC 0-127 reverb send 6 UC 0,1 key off enable 7 UC 0-3 kas mode(poly,semi,mono,himono) 8 UC 0-15 alternate group 9 UC 0,1 hold mode 10 UC 0,1 song repeat mode 11 1byte - reserve 12 [DRKEY]*2 18 [DRVOICE]*2 ------------------------------------------------------- [DRTR] block - 6 bytes ------------------------------------------------------- offset type range name ------------------------------------------------------- 0 UC 0,1 tr switch 1 UC 0-127 tr program change 2 UC 0-127 tr bank select MSB 3 UC 0-127 tr bank select LSB 4 UC 0-127 tr volume 5 UC 0-127 tr pan ------------------------------------------------------- drumkit data - 952 bytes ------------------------------------------------------- offset type range name ------------------------------------------------------- 0 UC*8 ASCII name 8 UC 0-127 volume 9 UC 0-127 reverb return level 10 UC 0-127 reverb send level 11 UC 0-11 reverb type 12 UC 0-69 reverb time 13 UC 0-63 HH sens 14 UC 0-127 song select 15 UC 0-2 tempo select MSB 16 UC 0-127 tempo select LSB 17 3bytes - reserve 20 [DRSRC]*22 856 [DRTR]*16 ------------------------------------------------------- B.3 bulk dump - trigger data [PAD] block - 8 bytes ------------------------------------------------------- offset type range name ------------------------------------------------------- 0 UC 0-18 pad type(TPsnr,...,misc6) 1 UC 0-99 pad gain 2 UC 0-127 min velocity 3 UC 0-4 velocity curve 4 UC 0-9 self reject time 5 UC 0-9 rejection level 6 UC 0-10 specified reject input 7 UC 0-9 specified reject level ------------------------------------------------------- trigger data - 94 bytes ------------------------------------------------------- offset type range name ------------------------------------------------------- 0 UC*8 ASCII name 8 UC 0-10 inc pad 9 UC 0-10 dec pad 10 UC 0,1 input exchange 11 3bytes - reserve 14 [PAD]*10 ------------------------------------------------------- B.4 bulk dump - user map data [MAPNOTE] block - 14 bytes ------------------------------------------------------- offset type range name ------------------------------------------------------- 0 UC 0-127 reverb send 1 UC 0,1 key off enable 2 UC 0-3 kas mode(poly,semi,mono,himono) 3 UC 0-15 alternate group 4 [DRVOICE]*10 ------------------------------------------------------- user map data - 1792 bytes ------------------------------------------------------- offset type range name ------------------------------------------------------- 0 [MAPNOTE]*128 ------------------------------------------------------- B.5 bulk dump - song data B.6 bulk dump - stack data [STACKVOICE] block - 26 bytes ------------------------------------------------------- offset type range name ------------------------------------------------------- 0 US 0-1023 kbank number 2 UC 0-127 attenuation @0.75db 3 UC OB48 shift 4 UC OB127 tune @1.17cent 5 UC 0-255 fr 0-127, Mode 0x80 6 UC 0-255 fl 7 UC 0-127 lr 8 UC 0-255 ll 9 UC 0-127 rr 10 1byte - reserve 11 UC 0-18 velTblNo 12 UC OB30 fc kvs 13 UC 0-31 Q 14 US 0-2047 fc 16 UC 0-127 volume boost 17 1byte - reserve 18 US OB$1000 peg L1 20 UC 0-127 peg R1 21 UC OB30 pitch kvs 22 UC OB30 atack kvs 23 UC OB30 decay kvs 24 UC 0,1 stack enable 25 1byte - reserve ------------------------------------------------------- stack data - 62 bytes ------------------------------------------------------- offset type range name ------------------------------------------------------- 0 UC*8 ASCII name 8 UC 0,1 HH xfade enable 9 UC 0-127 HH rate sens 10 [STACKVOICE]*2 ------------------------------------------------------- C.1 parameter change - remote sw number ------------------------------------------------------- number name ------------------------------------------------------- 1 PLAY 2 TRIG 3 START/S 4 PAGE down 5 PAGE up 7 UTIL 8 VOICE 9 SAVE/ENTER 10 SEL left 11 SEL right 13 CLICK 14 SONG 15 SHIFT 16 VALUE - 17 VALUE + -------------------------------------------------------