- Fixed: When playing a MIDI file with EMIDI track designations to turn a

track off, any ticks that had only events on the disabled track would cause
  the delay for that track to be thrown away, and the following notes on
  enabled tracks would play too soon. This could be heard quite clearly in
  xplasma.mid, where track 4 (FMGlass Drone 1) would interfere with the timing
  of tracks 13 and 14 (EP1 Melody and EP1 Echo).

SVN r937 (trunk)
This commit is contained in:
Randy Heit 2008-04-24 23:00:25 +00:00
parent 24f4c93803
commit 52f6549aa0
2 changed files with 17 additions and 3 deletions

View File

@ -1,10 +1,17 @@
April 24, 2008
- Fixed: When playing a MIDI file with EMIDI track designations to turn a
track off, any ticks that had only events on the disabled track would cause
the delay for that track to be thrown away, and the following notes on
enabled tracks would play too soon. This could be heard quite clearly in
xplasma.mid, where track 4 (FMGlass Drone 1) would interfere with the timing
of tracks 13 and 14 (EP1 Melody and EP1 Echo).
April 24, 2008 (Changes by Graf Zahl)
- Fixed: DFlashFader did some operations in its destructor that had to be moved
to its Destroy method.
- Fixed: Dropped weapons from dying players should not double ammo.
April 23, 2008
(Note to self: xplasma.mid sounds really bad. Find out why.)
- Fixed: When note_on() is called and another copy of the same note is
already playing on the channel, it should stop it with finish_note(), not
kill_note(). This can be clearly heard in the final cymbal crashes of

View File

@ -549,11 +549,18 @@ DWORD *MIDISong2::SendCommand (DWORD *events, TrackInfo *track, DWORD delay)
break;
}
}
if (event != MIDI_META && (!track->Designated || (track->Designation & DesignationMask)))
if (event != MIDI_META)
{
events[0] = delay;
events[1] = 0;
events[2] = event | (data1<<8) | (data2<<16);
if (!track->Designated || (track->Designation & DesignationMask))
{
events[2] = event | (data1<<8) | (data2<<16);
}
else
{
events[2] = MEVT_NOP;
}
events += 3;
}
}