Index: ChangeLog =================================================================== RCS file: /cvsroot/timidity/timidity/Attic/ChangeLog,v retrieving revision 1.1.1.1.2.51 diff -u -r1.1.1.1.2.51 ChangeLog --- ChangeLog 26 May 2003 16:26:48 -0000 1.1.1.1.2.51 +++ ChangeLog 27 May 2003 00:08:43 -0000 @@ -1,3 +1,7 @@ +2003-05-27 Eric A. Welsh + + * timidity/readmidi.c (parse_sysex_event_multi): + Fix XG multipart SYSEX events 2003-05-26 Saito Index: timidity/readmidi.c =================================================================== RCS file: /cvsroot/timidity/timidity/timidity/Attic/readmidi.c,v retrieving revision 1.1.1.1.2.19 diff -u -r1.1.1.1.2.19 readmidi.c --- timidity/readmidi.c 25 May 2003 13:16:57 -0000 1.1.1.1.2.19 +++ timidity/readmidi.c 27 May 2003 00:09:17 -0000 @@ -683,17 +683,17 @@ switch(ent) { case 0x01: /* bank select MSB */ - SETMIDIEVENT(evm[0], 0, ME_TONE_BANK_MSB, p, *body, 0); + SETMIDIEVENT(evm[num_events], 0, ME_TONE_BANK_MSB, p, *body, 0); num_events++; break; case 0x02: /* bank select LSB */ - SETMIDIEVENT(evm[0], 0, ME_TONE_BANK_LSB, p, *body, 0); + SETMIDIEVENT(evm[num_events], 0, ME_TONE_BANK_LSB, p, *body, 0); num_events++; break; case 0x03: /* program number */ - SETMIDIEVENT(evm[0], 0, ME_PROGRAM, p, *body, 0); + SETMIDIEVENT(evm[num_events], 0, ME_PROGRAM, p, *body, 0); num_events++; break; @@ -715,39 +715,39 @@ break; case 0x08: /* note shift ? */ - SETMIDIEVENT(evm[0], 0, ME_KEYSHIFT, p, *body, 0); + SETMIDIEVENT(evm[num_events], 0, ME_KEYSHIFT, p, *body, 0); num_events++; break; case 0x0B: /* volume */ - SETMIDIEVENT(evm[0], 0, ME_MAINVOLUME, p, *body, 0); + SETMIDIEVENT(evm[num_events], 0, ME_MAINVOLUME, p, *body, 0); num_events++; break; case 0x0E: /* pan */ if(*body == 0) { - SETMIDIEVENT(evm[0], 0, ME_RANDOM_PAN, p, 0, 0); + SETMIDIEVENT(evm[num_events], 0, ME_RANDOM_PAN, p, 0, 0); } else { - SETMIDIEVENT(evm[0], 0, ME_PAN, p, *body, 0); + SETMIDIEVENT(evm[num_events], 0, ME_PAN, p, *body, 0); } num_events++; break; case 0x12: /* chorus send */ - SETMIDIEVENT(evm[0], 0, ME_CHORUS_EFFECT, p, *body, 0); + SETMIDIEVENT(evm[num_events], 0, ME_CHORUS_EFFECT, p, *body, 0); num_events++; break; case 0x13: /* reverb send */ - SETMIDIEVENT(evm[0], 0, ME_REVERB_EFFECT, p, *body, 0); + SETMIDIEVENT(evm[num_events], 0, ME_REVERB_EFFECT, p, *body, 0); num_events++; break; case 0x23: /* bend pitch control */ - SETMIDIEVENT(evm[0], 0,ME_RPN_MSB,p,0,0); - SETMIDIEVENT(evm[1], 0,ME_RPN_LSB,p,0,0); - SETMIDIEVENT(evm[2], 0,ME_DATA_ENTRY_MSB,p,(*body - 0x40) & 0x7F,0); + SETMIDIEVENT(evm[num_events], 0,ME_RPN_MSB,p,0,0); + SETMIDIEVENT(evm[num_events+1], 0,ME_RPN_LSB,p,0,0); + SETMIDIEVENT(evm[num_events+2], 0,ME_DATA_ENTRY_MSB,p,(*body - 0x40) & 0x7F,0); num_events += 3; break; @@ -763,7 +763,7 @@ case 0x4a: case 0x4b: case 0x4c: - SETMIDIEVENT(evm[0], + SETMIDIEVENT(evm[num_events], 0, ME_SCALE_TUNING, p, ent - 0x41, *body - 64); num_events++; ctl->cmsg(CMSG_INFO, VERB_NOISY, @@ -1909,7 +1909,7 @@ ev.time = at; readmidi_add_event(&ev); } - if (ne = parse_sysex_event_multi(val, len, evm)) + if ((ne = parse_sysex_event_multi(val, len, evm))) for (i = 0; i < ne; i++) { evm[i].time = at; readmidi_add_event(&evm[i]); @@ -4552,4 +4552,4 @@ } } } -} \ No newline at end of file +}