|
@@ -889,6 +889,7 @@ enum
|
889
|
889
|
kMinVelSfId,
|
890
|
890
|
kMeasflSfId,
|
891
|
891
|
kIndexSfId,
|
|
892
|
+ kMuidSfId,
|
892
|
893
|
kStatusSfId,
|
893
|
894
|
kD0SfId,
|
894
|
895
|
kD1SfId,
|
|
@@ -935,6 +936,7 @@ cmDspInst_t* _cmDspScFolAlloc(cmDspCtx_t* ctx, cmDspClass_t* classPtr, unsigned
|
935
|
936
|
{ "minvel",kMinVelSfId, 0, 0, kInDsvFl | kUIntDsvFl | kOptArgDsvFl, "Minimum velocity."},
|
936
|
937
|
{ "measfl",kMeasflSfId, 0, 0, kInDsvFl | kBoolDsvFl | kOptArgDsvFl, "Enable measurements"},
|
937
|
938
|
{ "index", kIndexSfId, 0, 0, kInDsvFl | kUIntDsvFl, "Tracking start location."},
|
|
939
|
+ { "muid", kMuidSfId, 0, 0, kInDsvFl | kUIntDsvFl, "MIDI msg file unique id"},
|
938
|
940
|
{ "status",kStatusSfId, 0, 0, kInDsvFl | kUIntDsvFl, "MIDI status byte"},
|
939
|
941
|
{ "d0", kD0SfId, 0, 0, kInDsvFl | kUIntDsvFl, "MIDI data byte 0"},
|
940
|
942
|
{ "d1", kD1SfId, 0, 0, kInDsvFl | kUIntDsvFl, "MIDI data byte 1"},
|
|
@@ -1142,7 +1144,7 @@ cmDspRC_t _cmDspScFolRecv(cmDspCtx_t* ctx, cmDspInst_t* inst, const cmDspEvt_t*
|
1142
|
1144
|
p->sfp->cbArg = &p->arg;
|
1143
|
1145
|
|
1144
|
1146
|
// this call may result in a callback to _cmScFolMatcherCb()
|
1145
|
|
- if( cmScMatcherExec(p->sfp, cmDspUInt(inst,kSmpIdxSfId), cmDspUInt(inst,kStatusSfId), cmDspUInt(inst,kD0SfId), cmDspUInt(inst,kD1SfId), &scLocIdx) == cmOkRC )
|
|
1147
|
+ if( cmScMatcherExec(p->sfp, cmDspUInt(inst,kSmpIdxSfId), cmDspUInt(inst,kMuidSfId), cmDspUInt(inst,kStatusSfId), cmDspUInt(inst,kD0SfId), cmDspUInt(inst,kD1SfId), &scLocIdx) == cmOkRC )
|
1146
|
1148
|
if( scLocIdx != cmInvalidIdx )
|
1147
|
1149
|
{
|
1148
|
1150
|
// It is possible that the internal score follower may go backwards.
|