cmProc4.h/c : Added comments to the score follower.
This commit is contained in:
parent
88d5d9a499
commit
0b46711fd8
20
cmProc4.c
20
cmProc4.c
@ -2363,7 +2363,8 @@ void cmScMatcherPrint( cmScMatcher* p )
|
||||
unsigned esli = 0;
|
||||
unsigned i,j,k;
|
||||
|
||||
// get first/last scLocIdx from res[]
|
||||
// get first/last scLocIdx from res[] - this is the range of
|
||||
// score events that the score matcher has identified
|
||||
for(i=0; i<p->ri; ++i)
|
||||
if( p->res[i].locIdx != cmInvalidIdx )
|
||||
{
|
||||
@ -2382,15 +2383,16 @@ void cmScMatcherPrint( cmScMatcher* p )
|
||||
aan += lp->evtCnt;
|
||||
}
|
||||
|
||||
// allocate an array off 'aan' print records
|
||||
// allocate an array of 'aan' print records
|
||||
cmScMatcherPrint_t* a = cmMemAllocZ(cmScMatcherPrint_t,aan);
|
||||
|
||||
// fill a[] note and bar events from cmScoreLoc()
|
||||
// fill the cmScMatcherPrint_t array with note and bar events from the score
|
||||
for(i=bsli; i<=esli; ++i)
|
||||
{
|
||||
unsigned scLocIdx = i;
|
||||
cmScoreLoc_t* lp = cmScoreLoc(p->mp->scH, scLocIdx );
|
||||
|
||||
// for each score event which occurs at this location
|
||||
for(j=0; j<lp->evtCnt; ++j)
|
||||
{
|
||||
assert( an < aan );
|
||||
@ -2400,6 +2402,7 @@ void cmScMatcherPrint( cmScMatcher* p )
|
||||
|
||||
an += 1;
|
||||
|
||||
|
||||
switch( ep->type )
|
||||
{
|
||||
case kBarEvtScId:
|
||||
@ -2420,6 +2423,12 @@ void cmScMatcherPrint( cmScMatcher* p )
|
||||
|
||||
}
|
||||
|
||||
//
|
||||
// a[an] now contains a record for each note and bar event in the
|
||||
// time range associated with the score matcher's result array.
|
||||
//
|
||||
|
||||
|
||||
// for each result record
|
||||
for(i=0; i<p->ri; ++i)
|
||||
{
|
||||
@ -2428,7 +2437,7 @@ void cmScMatcherPrint( cmScMatcher* p )
|
||||
// if this result recd matched a score event
|
||||
if( cmIsFlag(rp->flags,kSmTruePosFl) )
|
||||
{
|
||||
// locate the matching score event
|
||||
// locate the matching score event in a[an]
|
||||
for(k=0; k<an; ++k)
|
||||
if( a[k].scLocIdx==p->mp->loc[rp->locIdx].scLocIdx && a[k].pitch==rp->pitch )
|
||||
{
|
||||
@ -2512,6 +2521,9 @@ void cmScMatcherPrint( cmScMatcher* p )
|
||||
}
|
||||
}
|
||||
|
||||
printf("sloc bar mni ptch flag\n");
|
||||
printf("---- ---- ---- ---- ----\n");
|
||||
|
||||
for(i=0; i<an; ++i)
|
||||
{
|
||||
printf("%4i %4i %4i %4s %c%c%c\n",a[i].scLocIdx,a[i].barNumb,a[i].mni,
|
||||
|
18
cmProc4.h
18
cmProc4.h
@ -244,7 +244,7 @@ extern "C" {
|
||||
// Score location record.
|
||||
typedef struct
|
||||
{
|
||||
unsigned evtCnt; //
|
||||
unsigned evtCnt; // count of score events at this location (i.e. a chord will have more than one event at a given location)
|
||||
cmScMatchEvt_t* evtV; // evtV[evtCnt]
|
||||
unsigned scLocIdx; // scH score location index
|
||||
int barNumb; // bar number of this location
|
||||
@ -312,13 +312,13 @@ extern "C" {
|
||||
|
||||
typedef struct
|
||||
{
|
||||
unsigned locIdx;
|
||||
unsigned scEvtIdx;
|
||||
unsigned mni;
|
||||
unsigned smpIdx;
|
||||
unsigned pitch;
|
||||
unsigned vel;
|
||||
unsigned flags;
|
||||
unsigned locIdx; // index into cmScMatch_t.loc[]
|
||||
unsigned scEvtIdx; // score event index
|
||||
unsigned mni; // index of the performed MIDI event associated with this score location
|
||||
unsigned smpIdx; // sample time index of performed MIDI event
|
||||
unsigned pitch; // performed pitch
|
||||
unsigned vel; // performed velocity
|
||||
unsigned flags; // smTruePosFl | smFalsePosFl
|
||||
} cmScMatcherResult_t;
|
||||
|
||||
struct cmScMatcher_str;
|
||||
@ -380,7 +380,7 @@ extern "C" {
|
||||
cmRC_t cmScMatcherReset( cmScMatcher* p, unsigned scLocIdx );
|
||||
|
||||
// Slide a score window 'hopCnt' times, beginning at 'bli' (an
|
||||
// index int p->mp->loc[]) looking for the best match to p->midiBuf[].
|
||||
// index into p->mp->loc[]) looking for the best match to p->midiBuf[].
|
||||
// The score window contain scWndN (p->mp->mcn-1) score locations.
|
||||
// Returns the index into p->mp->loc[] of the start of the best
|
||||
// match score window. The score associated
|
||||
|
Loading…
Reference in New Issue
Block a user