17 kMeasureKindAnacrusis,
18 kMeasureKindIncompleteStandalone,
19 kMeasureKindIncompleteLastInRepeatCommonPart,
20 kMeasureKindIncompleteLastInRepeatHookedEnding,
21 kMeasureKindIncompleteLastInRepeatHooklessEnding,
22 kMeasureKindIncompleteNextMeasureAfterCommonPart,
23 kMeasureKindIncompleteNextMeasureAfterHookedEnding,
24 kMeasureKindIncompleteNextMeasureAfterHooklessEnding,
25 kMeasureKindOvercomplete,
27 kMeasureKindMusicallyEmpty};
29 static string measureKindAsString (
30 msrMeasureKind measureKind);
32 enum msrMeasureImplicitKind {
33 kMeasureImplicitKindYes,
34 kMeasureImplicitKindNo };
36 static string measureImplicitKindAsString (
37 msrMeasureImplicitKind measureImplicitKind);
39 enum msrMeasureFirstInSegmentKind {
40 kMeasureFirstInSegmentKindUnknown,
41 kMeasureFirstInSegmentKindYes,
42 kMeasureFirstInSegmentKindNo };
44 static string measureFirstInSegmentKindAsString (
45 msrMeasureFirstInSegmentKind measureFirstInSegmentKind);
47 enum msrMeasuresRepeatContextKind {
48 kMeasuresRepeatContextKindUnknown,
49 kMeasuresRepeatContextKindNone,
50 kMeasuresRepeatContextKindCommonPartLastMeasure,
51 kMeasuresRepeatContextKindHookedEndingLastMeasure,
52 kMeasuresRepeatContextKindHooklessEndingLastMeasure,
53 kMeasuresRepeatContextKindNextMeasureAfterCommonPart,
54 kMeasuresRepeatContextKindNextMeasureAfterHookedEnding,
55 kMeasuresRepeatContextKindNextMeasureAfterHooklessEnding };
57 static string measuresRepeatContextKindAsString (
58 msrMeasuresRepeatContextKind measuresRepeatContextKind);
60 enum msrMeasureEndRegularKind {
61 kMeasureEndRegularKindUnknown,
62 kMeasureEndRegularKindYes,
63 kMeasureEndRegularKindNo };
65 static string measureEndRegularKindAsString (
66 msrMeasureEndRegularKind measureEndRegularKind);
71 static SMARTP<msrMeasure> create (
74 S_msrSegment measureSegmentUpLink);
76 SMARTP<msrMeasure> createMeasureNewbornClone (
77 S_msrSegment containingSegment);
79 SMARTP<msrMeasure> createMeasureDeepCopy (
80 S_msrSegment containingSegment);
90 S_msrSegment measureSegmentUpLink);
99 void initializeMeasure ();
108 S_msrSegment getMeasureSegmentUpLink ()
const
109 {
return fMeasureSegmentUpLink; }
113 void setMeasureElementMeasureNumber (
string measureNumber)
114 { fMeasureElementMeasureNumber = measureNumber; }
116 string getMeasureElementMeasureNumber ()
const
117 {
return fMeasureElementMeasureNumber; }
119 void setMeasurePuristNumber (
120 int measurePuristNumber);
122 int getMeasurePuristNumber ()
const
123 {
return fMeasurePuristNumber; }
125 void setNextMeasureNumber (
string nextMeasureNumber);
127 string getNextMeasureNumber ()
const
128 {
return fNextMeasureNumber; }
130 void setMeasureFirstInVoice ();
132 bool getMeasureFirstInVoice ()
const
133 {
return fMeasureFirstInVoice; }
137 void setFullMeasureWholeNotesDuration (
139 { fFullMeasureWholeNotesDuration = wholeNotes; }
141 rational getFullMeasureWholeNotesDuration ()
const
142 {
return fFullMeasureWholeNotesDuration; }
144 void setCurrentMeasureWholeNotesDuration (
147 void incrementCurrentMeasureWholeNotesDuration (
151 rational getCurrentMeasureWholeNotesDuration ()
const
152 {
return fCurrentMeasureWholeNotesDuration; }
156 void setMeasureKind (
157 msrMeasureKind measureKind);
160 getMeasureKind ()
const
161 {
return fMeasureKind; }
165 void setMeasureImplicitKind (
166 msrMeasureImplicitKind measureImplicitKind)
168 fMeasureImplicitKind =
172 msrMeasureImplicitKind
173 getMeasureImplicitKind ()
const
174 {
return fMeasureImplicitKind; }
179 void setMeasureFirstInSegmentKind (
180 msrMeasureFirstInSegmentKind
181 measureFirstInSegmentKind)
183 fMeasureFirstInSegmentKind =
184 measureFirstInSegmentKind;
187 msrMeasureFirstInSegmentKind
188 getMeasureFirstInSegmentKind ()
const
189 {
return fMeasureFirstInSegmentKind; }
194 void setMeasureIsAFullMeasureRest ()
195 { fMeasureIsAFullMeasureRest =
true; }
197 bool getMeasureIsAFullMeasureRest ()
const
198 {
return fMeasureIsAFullMeasureRest; }
202 S_msrNote getMeasureLongestNote ()
const
203 {
return fMeasureLongestNote; }
207 S_msrNote getMeasureLastHandledNote ()
const
208 {
return fMeasureLastHandledNote; }
212 const list<S_msrMeasureElement>&
213 getMeasureElementsList ()
const
214 {
return fMeasureElementsList; }
216 bool getMeasureContainsMusic ()
const
217 {
return fMeasureContainsMusic; }
221 void setMeasureEndRegularKind (
222 msrMeasureEndRegularKind measureEndRegularKind);
224 msrMeasureEndRegularKind
225 getMeasureEndRegularKind ()
const
226 {
return fMeasureEndRegularKind; }
230 void setMeasuresRepeatContextKind (
231 msrMeasuresRepeatContextKind measuresRepeatContextKind);
233 msrMeasuresRepeatContextKind
234 getMeasuresRepeatContextKind ()
const
235 {
return fMeasuresRepeatContextKind; }
244 S_msrPart fetchMeasurePartUpLink ()
const;
246 S_msrVoice fetchMeasureVoiceUpLink ()
const;
250 string fullMeasureWholeNotesDurationAsMSRString ();
252 string currentMeasureWholeNotesDurationAsMSRString ();
256 S_msrNote createPaddingNoteForVoice (
261 void padUpToPositionInMeasureInMeasure (
265 void backupByWholeNotesStepLengthInMeasure (
267 rational backupTargetMeasureElementPositionInMeasure);
269 void appendPaddingNoteToMeasure (
275 bool measureIsARestMeasure ()
const;
279 void appendClefToMeasure (S_msrClef clef);
283 void appendKeyToMeasure (S_msrKey key);
287 void appendTimeToMeasure (S_msrTime time);
289 void setFullMeasureWholeNotesDurationFromTime (
292 void appendTimeToMeasureClone (S_msrTime time);
296 void appendTransposeToMeasure (
297 S_msrTranspose transpose);
301 void appendPartNameDisplayToMeasure (
302 S_msrPartNameDisplay partNameDisplay);
306 void appendPartAbbreviationDisplayToMeasure (
307 S_msrPartAbbreviationDisplay partAbbreviationDisplay);
311 void appendStaffDetailsToMeasure (
312 S_msrStaffDetails staffDetails);
316 void appendBarNumberCheckToMeasure (
317 S_msrBarNumberCheck barNumberCheck);
321 void appendLineBreakToMeasure (S_msrLineBreak lineBreak);
322 void appendPageBreakToMeasure (S_msrPageBreak pageBreak);
326 void appendTempoToMeasure (S_msrTempo tempo);
330 void appendRehearsalToMeasure (
331 S_msrRehearsal rehearsal);
335 void appendOctaveShiftToMeasure (
336 S_msrOctaveShift octaveShift);
340 void appendScordaturaToMeasure (
341 S_msrScordatura scordatura);
345 void appendAccordionRegistrationToMeasure (
346 S_msrAccordionRegistration
347 accordionRegistration);
351 void appendHarpPedalsTuningToMeasure (
352 S_msrHarpPedalsTuning
357 void appendBarlineToMeasure (S_msrBarline barline);
358 void prependBarlineToMeasure (S_msrBarline barline);
362 void appendBarCheckToMeasure (S_msrBarCheck barCheck);
366 void appendVoiceStaffChangeToMeasure (
367 S_msrVoiceStaffChange voiceStaffChange);
371 void appendNoteToMeasure (
373 rational partCurrentPositionInMeasure);
375 void appendNoteOrPaddingToMeasure (
378 void accountForTupletMemberNoteDurationInMeasure (
381 void appendPaddingNoteAtTheEndOfMeasure (S_msrNote note);
383 void appendNoteToMeasureClone (S_msrNote note);
387 void appendDoubleTremoloToMeasure (
388 S_msrDoubleTremolo doubleTremolo);
392 void appendChordToMeasure (
397 void appendTupletToMeasure (
402 void appendHarmonyToMeasure (
403 S_msrHarmony harmony);
405 void appendHarmonyToMeasureClone (
406 S_msrHarmony harmony);
410 void appendFrameToMeasure (
413 void appendFrameToMeasureClone (
418 void appendFiguredBassToMeasure (
419 S_msrFiguredBass figuredBass);
421 void appendFiguredBassToMeasureClone (
422 S_msrFiguredBass figuredBass);
442 void appendSegnoToMeasure (S_msrSegno segno);
446 void appendCodaToMeasure (S_msrCoda coda);
450 void appendEyeGlassesToMeasure (
451 S_msrEyeGlasses eyeGlasses);
455 void appendPedalToMeasure (S_msrPedal pedal);
459 void appendDampToMeasure (S_msrDamp damp);
463 void appendDampAllToMeasure (S_msrDampAll dampAll);
467 void prependOtherElementToMeasure (
468 S_msrMeasureElement elem);
469 void appendOtherElementToMeasure (
470 S_msrMeasureElement elem);
474 S_msrElement getLastElementOfMeasure ()
const
475 {
return fMeasureElementsList.back (); }
484 void removeNoteFromMeasure (
488 void removeElementFromMeasure (
494 void determineMeasureKindAndPuristNumber (
496 msrMeasuresRepeatContextKind
497 measuresRepeatContextKind);
499 void padUpToPositionInMeasure (
501 rational positionInMeasureToPadUpTo);
503 void padUpToPositionAtTheEndOfTheMeasure (
505 rational positionInMeasureToPadUpTo);
507 void finalizeMeasure (
509 msrMeasuresRepeatContextKind measuresRepeatContextKind,
512 void finalizeRegularMeasure (
514 msrMeasuresRepeatContextKind measuresRepeatContextKind,
517 void finalizeHarmonyMeasure (
519 msrMeasuresRepeatContextKind measuresRepeatContextKind,
522 void finalizeFiguredBassMeasure (
524 msrMeasuresRepeatContextKind measuresRepeatContextKind,
527 void finalizeMeasureClone (
529 S_msrMeasure originalMeasure,
530 S_msrVoice voiceClone);
537 void appendElementToMeasure (
538 S_msrMeasureElement elem);
545 virtual void acceptIn (basevisitor* v);
546 virtual void acceptOut (basevisitor* v);
548 virtual void browseData (basevisitor* v);
555 string measureKindAsString ()
const;
557 string asShortString ()
const;
558 string asString ()
const;
560 void displayMeasure (
564 virtual void print (ostream& os)
const;
566 virtual void shortPrint (ostream& os)
const;
575 S_msrSegment fMeasureSegmentUpLink;
579 rational fFullMeasureWholeNotesDuration;
584 rational fCurrentMeasureWholeNotesDuration;
590 string fMeasureElementMeasureNumber;
591 string fNextMeasureNumber;
595 bool fMeasureFirstInVoice;
599 S_msrNote fMeasureLongestNote;
603 msrMeasureKind fMeasureKind;
607 msrMeasureImplicitKind
608 fMeasureImplicitKind;
612 msrMeasureFirstInSegmentKind
613 fMeasureFirstInSegmentKind;
617 bool fMeasureIsAFullMeasureRest;
621 S_msrNote fMeasureLastHandledNote;
625 list<S_msrMeasureElement>
626 fMeasureElementsList;
628 bool fMeasureContainsMusic;
632 int fMeasurePuristNumber;
635 static int gMeasureDebugNumber;
636 int fMeasureDebugNumber;
639 msrMeasureEndRegularKind
640 fMeasureEndRegularKind;
643 msrMeasuresRepeatContextKind
644 fMeasuresRepeatContextKind;
656 void handleFirstHarmonyInHarmonyMeasure (
659 list<S_msrMeasureElement>::iterator&
661 S_msrHarmony previousHarmony,
662 S_msrHarmony currentHarmony,
663 rational currentHarmonyPositionInMeasure);
665 void handleSubsequentHarmonyInHarmonyMeasure (
668 list<S_msrMeasureElement>::iterator&
670 S_msrHarmony previousHarmony,
671 S_msrHarmony currentHarmony,
672 rational currentHarmonyPositionInMeasure);
674 void postHandleCurrentHarmonyInHarmonyMeasure (
677 S_msrHarmony currentHarmony);
679 void handleHarmoniesInHarmonyMeasureFinalization (
683 void insertElementInMeasureBeforeIterator (
685 list<S_msrMeasureElement>::iterator iter,
686 S_msrMeasureElement elem);
688 void appendElementAtTheEndOfMeasure (
689 S_msrMeasureElement elem);
691 void printMeasurePendingMeasureElementsList ();
701 list<S_msrMeasureElement>
702 fMeasurePendingMeasureElementsList;
705 bool fMeasureHasBeenFinalized;
706 bool fMeasureKindAndPuristNumberHaveBeenDetermined;
708typedef SMARTP<msrMeasure> S_msrMeasure;
709EXP ostream& operator<< (ostream& os,
const S_msrMeasure& elt);
Definition: msrMeasures_MUT_DEP.h:8
Rational number representation.
Definition: rational.h:25