|
@@ -31,7 +31,8 @@ enum
|
31
|
31
|
|
32
|
32
|
enum
|
33
|
33
|
{
|
34
|
|
- kMidiFileIdColScIdx= 0,
|
|
34
|
+ kMidiFileIdColScIdx= 0,
|
|
35
|
+ kEventIdColScIdx = 2,
|
35
|
36
|
kTypeLabelColScIdx = 3,
|
36
|
37
|
kDSecsColScIdx = 4,
|
37
|
38
|
kSecsColScIdx = 5,
|
|
@@ -723,10 +724,13 @@ cmScRC_t _cmScParseNoteOn( cmSc_t* p, unsigned rowIdx, cmScoreEvt_t* s, unsigned
|
723
|
724
|
const cmChar_t* attr;
|
724
|
725
|
double secs;
|
725
|
726
|
double durSecs;
|
|
727
|
+ unsigned eventId;
|
726
|
728
|
const cmCsvCell_t* cell;
|
727
|
729
|
|
728
|
730
|
s += scoreIdx;
|
729
|
731
|
|
|
732
|
+ eventId = cmCsvCellUInt(p->cH,rowIdx,kEventIdColScIdx);
|
|
733
|
+
|
730
|
734
|
// verify the scientific pitch cell was formatted correcly
|
731
|
735
|
if((cell = cmCsvCellPtr(p->cH,rowIdx,kPitchColScIdx)) == NULL || cell->lexTId != p->sciPitchLexTId )
|
732
|
736
|
return cmErrMsg(&p->err,kSyntaxErrScRC,"Pitch column format error.");
|
|
@@ -736,7 +740,7 @@ cmScRC_t _cmScParseNoteOn( cmSc_t* p, unsigned rowIdx, cmScoreEvt_t* s, unsigned
|
736
|
740
|
|
737
|
741
|
if((midiPitch = cmSciPitchToMidi(sciPitch)) == kInvalidMidiPitch)
|
738
|
742
|
return cmErrMsg(&p->err,kSyntaxErrScRC,"Unable to convert the scientific pitch '%s' to a MIDI value. ");
|
739
|
|
-
|
|
743
|
+
|
740
|
744
|
// get the sec's field - or DBL_MAX if it is not set
|
741
|
745
|
if((secs = cmCsvCellDouble(p->cH, rowIdx, kSecsColScIdx )) == DBL_MAX) // Returns DBL_MAX on error.
|
742
|
746
|
flags += kInvalidScFl;
|
|
@@ -812,6 +816,7 @@ cmScRC_t _cmScParseNoteOn( cmSc_t* p, unsigned rowIdx, cmScoreEvt_t* s, unsigned
|
812
|
816
|
s->barNoteIdx = barNoteIdx;
|
813
|
817
|
s->durSecs = durSecs;
|
814
|
818
|
s->csvRowNumb = rowIdx+1;
|
|
819
|
+ s->csvEventId = eventId;
|
815
|
820
|
return rc;
|
816
|
821
|
}
|
817
|
822
|
|
|
@@ -2451,7 +2456,7 @@ cmScRC_t cmScoreFileFromMidi( cmCtx_t* ctx, const cmChar_t* midiFn, const c
|
2451
|
2456
|
|
2452
|
2457
|
for(i=1; titles[i]!=NULL; ++i)
|
2453
|
2458
|
{
|
2454
|
|
- if( cmCsvInsertTextColAfter(csvH, cp, &cp, titles[i], lexTId ) != kOkCsvRC )
|
|
2459
|
+ if( cmCsvInsertIdentColAfter(csvH, cp, &cp, titles[i], lexTId ) != kOkCsvRC )
|
2455
|
2460
|
{
|
2456
|
2461
|
cmErrMsg(&err,kCsvFailScRC,"Error inserting column index '%i' label in '%s'.",i,cmStringNullGuard(scoreFn));
|
2457
|
2462
|
goto errLabel;
|
|
@@ -2521,7 +2526,7 @@ cmScRC_t cmScoreFileFromMidi( cmCtx_t* ctx, const cmChar_t* midiFn, const c
|
2521
|
2526
|
goto errLabel;
|
2522
|
2527
|
}
|
2523
|
2528
|
|
2524
|
|
- if( cmCsvInsertTextColAfter(csvH, cp, &cp, opStr, lexTId ) != kOkCsvRC )
|
|
2529
|
+ if( cmCsvInsertQTextColAfter(csvH, cp, &cp, opStr, lexTId ) != kOkCsvRC )
|
2525
|
2530
|
{
|
2526
|
2531
|
cmErrMsg(&err,kCsvFailScRC,"Error inserting 'opcode' column in '%s'.",cmStringNullGuard(scoreFn));
|
2527
|
2532
|
goto errLabel;
|
|
@@ -2572,7 +2577,7 @@ cmScRC_t cmScoreFileFromMidi( cmCtx_t* ctx, const cmChar_t* midiFn, const c
|
2572
|
2577
|
switch( tmp->status )
|
2573
|
2578
|
{
|
2574
|
2579
|
case kNoteOnMdId:
|
2575
|
|
- if( cmCsvInsertTextColAfter(csvH, cp, &cp, cmMidiToSciPitch(tmp->u.chMsgPtr->d0,NULL,0), lexTId ) != kOkCsvRC )
|
|
2580
|
+ if( cmCsvInsertQTextColAfter(csvH, cp, &cp, cmMidiToSciPitch(tmp->u.chMsgPtr->d0,NULL,0), lexTId ) != kOkCsvRC )
|
2576
|
2581
|
{
|
2577
|
2582
|
cmErrMsg(&err,kCsvFailScRC,"Error inserting 'opcode' column in '%s'.",cmStringNullGuard(scoreFn));
|
2578
|
2583
|
goto errLabel;
|