cmMidiFilePlay.c : Updates to use amicro instead of dtick in MIDI msg.
This commit is contained in:
parent
8688a7f28c
commit
136cb97800
@ -148,9 +148,6 @@ cmMfpRC_t cmMfpLoadHandle( cmMfpH_t h, cmMidiFileH_t mfH )
|
|||||||
p->mtime = 0;
|
p->mtime = 0;
|
||||||
p->closeFileFl= false;
|
p->closeFileFl= false;
|
||||||
|
|
||||||
//if( p->msgIdx > 0 )
|
|
||||||
// p->mtime = p->msgV[0]->tick * p->microsPerTick;
|
|
||||||
|
|
||||||
return kOkMfpRC;
|
return kOkMfpRC;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -213,21 +210,15 @@ cmMfpRC_t cmMfpClock( cmMfpH_t h, unsigned dusecs )
|
|||||||
// sent and the end of the time window for this mfpClock() cycle
|
// sent and the end of the time window for this mfpClock() cycle
|
||||||
p->etime += dusecs;
|
p->etime += dusecs;
|
||||||
|
|
||||||
//printf("init e:%i d:%i\n",p->etime, p->mtime);
|
|
||||||
|
|
||||||
// if the elapsed time (etime) since the last msg is greater or equal
|
// if the elapsed time (etime) since the last msg is greater or equal
|
||||||
// to the delta time to the next msg (mtime)
|
// to the delta time to the next msg (mtime)
|
||||||
while( p->etime >= p->mtime )
|
while( p->etime >= p->mtime )
|
||||||
{
|
{
|
||||||
//printf("e:%i d:%i\n",p->etime, p->mtime);
|
|
||||||
|
|
||||||
if( mp->status == kMetaStId && mp->metaId == kTempoMdId )
|
|
||||||
_cmMfpUpdateMicrosPerTick(p,mp->u.iVal );
|
|
||||||
|
|
||||||
|
|
||||||
|
// send the current message
|
||||||
p->cbFunc( p->userCbPtr, p->mtime, mp );
|
p->cbFunc( p->userCbPtr, p->mtime, mp );
|
||||||
|
|
||||||
unsigned atick0 = mp->atick;
|
unsigned amicro = mp->amicro;
|
||||||
|
|
||||||
++(p->msgIdx);
|
++(p->msgIdx);
|
||||||
|
|
||||||
@ -237,16 +228,13 @@ cmMfpRC_t cmMfpClock( cmMfpH_t h, unsigned dusecs )
|
|||||||
// get the next msg to send
|
// get the next msg to send
|
||||||
mp = p->msgV[p->msgIdx];
|
mp = p->msgV[p->msgIdx];
|
||||||
|
|
||||||
assert( mp->atick >= atick0 );
|
|
||||||
unsigned dtick = mp->atick - atick0;
|
|
||||||
|
|
||||||
// we probably went past the actual mtime - so update etime
|
// we probably went past the actual mtime - so update etime
|
||||||
// with the delta usecs from the msg just sent and the current time
|
// with the delta usecs from the msg just sent and the current time
|
||||||
p->etime -= p->mtime;
|
p->etime -= p->mtime;
|
||||||
|
|
||||||
// calc the delta usecs from the message just sent to the next msg to send
|
// calc the delta usecs from the message just sent to the next msg to send
|
||||||
//p->mtime = (mp->tick - p->msgV[p->msgIdx-1]->tick) * p->microsPerTick;
|
p->mtime = mp->amicro - amicro;
|
||||||
p->mtime = dtick * p->microsPerTick;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user