- Fixed: Any MIDI ticks that contain only events that are interpreted by
the MIDI parser and not passed on to the MIDI device would mess up timing for future events. SVN r945 (trunk)
This commit is contained in:
parent
ab5c981b10
commit
0bb92662d3
2 changed files with 17 additions and 16 deletions
|
|
@ -456,12 +456,13 @@ DWORD *MIDISong2::SendCommand (DWORD *events, TrackInfo *track, DWORD delay)
|
|||
if (data2 == 127)
|
||||
{
|
||||
track->Designation = ~0;
|
||||
track->Designated = true;
|
||||
}
|
||||
else if (data2 <= 9)
|
||||
{
|
||||
track->Designation |= 1 << data2;
|
||||
track->Designated = true;
|
||||
}
|
||||
track->Designated = true;
|
||||
event = MIDI_META;
|
||||
}
|
||||
break;
|
||||
|
|
@ -503,7 +504,7 @@ DWORD *MIDISong2::SendCommand (DWORD *events, TrackInfo *track, DWORD delay)
|
|||
track->LoopDelay = 0;
|
||||
track->LoopCount = data2;
|
||||
track->LoopFinished = track->Finished;
|
||||
event = 0xFF;
|
||||
event = MIDI_META;
|
||||
break;
|
||||
|
||||
case 117: // EMIDI Loop End
|
||||
|
|
@ -524,7 +525,7 @@ DWORD *MIDISong2::SendCommand (DWORD *events, TrackInfo *track, DWORD delay)
|
|||
track->Finished = track->LoopFinished;
|
||||
}
|
||||
}
|
||||
event = 0xFF;
|
||||
event = MIDI_META;
|
||||
break;
|
||||
|
||||
case 118: // EMIDI Global Loop Begin
|
||||
|
|
@ -535,7 +536,7 @@ DWORD *MIDISong2::SendCommand (DWORD *events, TrackInfo *track, DWORD delay)
|
|||
Tracks[i].LoopCount = data2;
|
||||
Tracks[i].LoopFinished = Tracks[i].Finished;
|
||||
}
|
||||
event = 0xFF;
|
||||
event = MIDI_META;
|
||||
break;
|
||||
|
||||
case 119: // EMIDI Global Loop End
|
||||
|
|
@ -566,20 +567,17 @@ DWORD *MIDISong2::SendCommand (DWORD *events, TrackInfo *track, DWORD delay)
|
|||
break;
|
||||
}
|
||||
}
|
||||
if (event != MIDI_META)
|
||||
events[0] = delay;
|
||||
events[1] = 0;
|
||||
if (event != MIDI_META && (!track->Designated || (track->Designation & DesignationMask)))
|
||||
{
|
||||
events[0] = delay;
|
||||
events[1] = 0;
|
||||
if (!track->Designated || (track->Designation & DesignationMask))
|
||||
{
|
||||
events[2] = event | (data1<<8) | (data2<<16);
|
||||
}
|
||||
else
|
||||
{
|
||||
events[2] = MEVT_NOP;
|
||||
}
|
||||
events += 3;
|
||||
events[2] = event | (data1<<8) | (data2<<16);
|
||||
}
|
||||
else
|
||||
{
|
||||
events[2] = MEVT_NOP;
|
||||
}
|
||||
events += 3;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue