8 #ifndef __VRV_SCORINGUPFUNCTOR_H__
9 #define __VRV_SCORINGUPFUNCTOR_H__
43 void ProcessPerfectMensurPassage(
45 const ArrayOfElementDurPairs &m_dursInVoiceWithSameMensur, data_DURATION noteLevel);
46 std::vector<ArrayOfElementDurPairs> SubdivideIntoBoundedSequences(
47 const ArrayOfElementDurPairs &dursInVoiceSameMensur, data_DURATION boundUnit);
48 void ProcessBoundedSequences(
const std::vector<ArrayOfElementDurPairs> &listOfSequences, data_DURATION boundUnit);
49 void ProcessBoundedSequences(
const ArrayOfElementDurPairs &sequence, data_DURATION boundUnit);
50 ArrayOfElementDurPairs GetBoundedNotes(
const ArrayOfElementDurPairs &sequence, data_DURATION boundUnit);
57 bool EvalDotOfDiv(
const ArrayOfElementDurPairs &middleSeq,
const ArrayOfElementDurPairs &sequence,
int dotInd,
60 void FindDurQuals(
const ArrayOfElementDurPairs &middleSeq,
double valueInUnit, data_DURATION boundUnit);
66 double GetDurNumberValue(
68 const std::pair<LayerElement *, data_DURATION> &elementDurPair,
bool followedByDot,
LayerElement *nextElement);
69 double GetValueInMinims(
const ArrayOfElementDurPairs &middleSeq);
70 double GetValueInUnit(
double valueInMinims, data_DURATION unit);
76 Note *ImperfectionAPP(
const ArrayOfElementDurPairs &sequence, data_DURATION boundUnit);
78 Note *ImperfectionAPA(
const ArrayOfElementDurPairs &sequence, data_DURATION boundUnit);
79 Note *Alteration(
const ArrayOfElementDurPairs &sequence, data_DURATION boundUnit);
80 bool LeavePerfect(
const ArrayOfElementDurPairs &sequence, data_DURATION boundUnit);
81 void ApplyAugmentationsAndPerfections();
88 FunctorCode VisitLayerEnd(
Layer *layer)
override;
89 FunctorCode VisitLayerElement(
LayerElement *layerElement)
override;
109 Mensur *m_currentMensur;
115 std::vector<std::pair<MensInfo, ArrayOfElementDurPairs>> m_voiceData;
117 ArrayOfElementDurPairs m_dursInVoiceWithSameMensur;
119 std::vector<ArrayOfElementDurPairs> m_listOfSequences;
121 std::list<std::pair<Note *, Dot *>> m_listOfAugNotesDotsPairs;
123 std::list<std::pair<Note *, Dot *>> m_listOfPerfNotesDotsPairs;