|
@@ -1275,7 +1275,7 @@ cmRC_t cmScMatcherReset( cmScMatcher* p, unsigned scLocIdx )
|
1275
|
1275
|
return cmOkRC;
|
1276
|
1276
|
}
|
1277
|
1277
|
|
1278
|
|
-bool cmScMatcherInputMidi( cmScMatcher* p, unsigned smpIdx, unsigned status, cmMidiByte_t d0, cmMidiByte_t d1 )
|
|
1278
|
+bool cmScMatcherInputMidi( cmScMatcher* p, unsigned smpIdx, unsigned muid, unsigned status, cmMidiByte_t d0, cmMidiByte_t d1 )
|
1279
|
1279
|
{
|
1280
|
1280
|
if( (status&0xf0) != kNoteOnMdId)
|
1281
|
1281
|
return false;
|
|
@@ -1293,6 +1293,7 @@ bool cmScMatcherInputMidi( cmScMatcher* p, unsigned smpIdx, unsigned status, cm
|
1293
|
1293
|
p->midiBuf[mi].scEvtIdx = cmInvalidIdx;
|
1294
|
1294
|
p->midiBuf[mi].mni = p->mni++;
|
1295
|
1295
|
p->midiBuf[mi].smpIdx = smpIdx;
|
|
1296
|
+ p->midiBuf[mi].muid = muid;
|
1296
|
1297
|
p->midiBuf[mi].pitch = d0;
|
1297
|
1298
|
p->midiBuf[mi].vel = d1;
|
1298
|
1299
|
if( p->mbi > 0 )
|
|
@@ -1503,7 +1504,7 @@ cmRC_t cmScMatcherStep( cmScMatcher* p )
|
1503
|
1504
|
return cmOkRC;
|
1504
|
1505
|
}
|
1505
|
1506
|
|
1506
|
|
-cmRC_t cmScMatcherExec( cmScMatcher* p, unsigned smpIdx, unsigned status, cmMidiByte_t d0, cmMidiByte_t d1, unsigned* scLocIdxPtr )
|
|
1507
|
+cmRC_t cmScMatcherExec( cmScMatcher* p, unsigned smpIdx, unsigned muid, unsigned status, cmMidiByte_t d0, cmMidiByte_t d1, unsigned* scLocIdxPtr )
|
1507
|
1508
|
{
|
1508
|
1509
|
bool fl = p->mbi > 0;
|
1509
|
1510
|
cmRC_t rc = cmOkRC;
|
|
@@ -1513,7 +1514,7 @@ cmRC_t cmScMatcherExec( cmScMatcher* p, unsigned smpIdx, unsigned status, c
|
1513
|
1514
|
*scLocIdxPtr = cmInvalidIdx;
|
1514
|
1515
|
|
1515
|
1516
|
// update the MIDI buffer with the incoming note
|
1516
|
|
- if( cmScMatcherInputMidi(p,smpIdx,status,d0,d1) == false )
|
|
1517
|
+ if( cmScMatcherInputMidi(p,smpIdx,muid,status,d0,d1) == false )
|
1517
|
1518
|
return rc;
|
1518
|
1519
|
|
1519
|
1520
|
// if the MIDI buffer transitioned to full then perform an initial scan sync.
|
|
@@ -2485,7 +2486,7 @@ cmRC_t cmScAlignScanToTimeLineEvent( cmScMatcher* p, cmTlH_t tlH, cmTlObj_t* top
|
2485
|
2486
|
// if the time line MIDI msg a note-on
|
2486
|
2487
|
if( (mep->msg->status&0xf0) == kNoteOnMdId )
|
2487
|
2488
|
{
|
2488
|
|
- rc = cmScMatcherExec(p, mep->obj.seqSmpIdx, mep->msg->status, mep->msg->u.chMsgPtr->d0, mep->msg->u.chMsgPtr->d1, NULL );
|
|
2489
|
+ rc = cmScMatcherExec(p, mep->obj.seqSmpIdx, mep->msg->uid, mep->msg->status, mep->msg->u.chMsgPtr->d0, mep->msg->u.chMsgPtr->d1, NULL );
|
2489
|
2490
|
|
2490
|
2491
|
switch( rc )
|
2491
|
2492
|
{
|