Fix #311986: handle duplicate voltas (repeat58)
Fixed initial voltas having the same start crash Also handles overlapping voltas by splitting them into non-overlapping voltas with cross-section repeatlists
This commit is contained in:
parent
e8fb60429e
commit
ef4f173842
9 changed files with 2319 additions and 73 deletions
|
@ -21,7 +21,7 @@
|
|||
#include "types.h"
|
||||
#include "volta.h"
|
||||
|
||||
#include <stack>
|
||||
#include <list>
|
||||
#include <utility> // std::pair
|
||||
|
||||
namespace Ms {
|
||||
|
@ -266,7 +266,7 @@ void RepeatList::flatten()
|
|||
do {
|
||||
s->addMeasure(m);
|
||||
m = m->nextMeasure();
|
||||
}while (m);
|
||||
} while (m);
|
||||
push_back(s);
|
||||
|
||||
_expanded = false;
|
||||
|
@ -307,6 +307,14 @@ public:
|
|||
repeatCount = (type == RepeatListElementType::REPEAT_START) ? 1 : 0;
|
||||
}
|
||||
|
||||
~RepeatListElement()
|
||||
{
|
||||
// Voltas are cloned elements, we need to cleanup ourselves
|
||||
if (repeatListElementType == RepeatListElementType::VOLTA_START) {
|
||||
delete element;
|
||||
}
|
||||
}
|
||||
|
||||
int getRepeatCount() const { return repeatCount; }
|
||||
void addToRepeatCount(int add) { repeatCount += add; }
|
||||
};
|
||||
|
@ -318,7 +326,6 @@ public:
|
|||
void RepeatList::collectRepeatListElements()
|
||||
{
|
||||
QList<RepeatListElement*>* sectionRLElements = new QList<RepeatListElement*>();
|
||||
auto spannerIt = _score->spanner().cbegin();
|
||||
|
||||
// Clear out previous listing
|
||||
for (QList<RepeatListElement*>* srle : _rlElements) {
|
||||
|
@ -338,97 +345,165 @@ void RepeatList::collectRepeatListElements()
|
|||
sectionRLElements->push_back(startFromRepeatMeasure);
|
||||
// Also trace down the final actual measure of this section (in case a frame follows)
|
||||
MeasureBase* sectionEndMeasureBase = nullptr;
|
||||
// Used to track the actual end of a volta
|
||||
std::stack<Volta const*> voltaStack;
|
||||
// Used to track voltas; overlappings and real endings
|
||||
Volta* volta;
|
||||
std::list<Volta*> preProcessedVoltas;
|
||||
|
||||
// We only care about Volta within the spanner types, so forward the iterator to the first one
|
||||
while ((spannerIt != _score->spanner().cend()) && !(((*spannerIt).second)->isVolta())) {
|
||||
++spannerIt;
|
||||
// Voltas might overlap (duplicate entries on multiple staves or "real" overlaps)
|
||||
// so we will pre-process them into cloned versions that handle those overlaps.
|
||||
// This assumes that spanners are ordered from first to last tick-wise
|
||||
for (const auto& spannerEntry : _score->spanner()) {
|
||||
if ((spannerEntry.second)->isVolta()) {
|
||||
volta = toVolta(spannerEntry.second)->clone();
|
||||
if (preProcessedVoltas.empty()) { // First entry
|
||||
preProcessedVoltas.push_back(volta);
|
||||
} else { // Compare
|
||||
std::list<Volta*> voltasToMerge;
|
||||
// List all overlapping voltas
|
||||
while ((!preProcessedVoltas.empty())
|
||||
&& (volta->startMeasure()->tick() <= preProcessedVoltas.back()->endMeasure()->tick())
|
||||
) {
|
||||
voltasToMerge.push_back(preProcessedVoltas.back());
|
||||
preProcessedVoltas.pop_back();
|
||||
}
|
||||
|
||||
while (!voltasToMerge.empty()) {
|
||||
// We'll have to shorten the already stored volta and split its remainder for merging
|
||||
Volta* remainder = voltasToMerge.back()->clone();
|
||||
if (volta->startMeasure() != remainder->startMeasure()) {
|
||||
// First part is not empty
|
||||
voltasToMerge.back()->setEndElement(volta->startMeasure()->prevMeasure());
|
||||
remainder->setStartElement(volta->startMeasure());
|
||||
// Store it
|
||||
preProcessedVoltas.push_back(voltasToMerge.back());
|
||||
} //else {
|
||||
// New volta and existing one start at the same moment, there is no first part, only a remainder
|
||||
//}
|
||||
voltasToMerge.pop_back();
|
||||
|
||||
// remainder and volta now have the same start point
|
||||
// Compare the end points and make remainder end first
|
||||
if (volta->endMeasure()->tick() < remainder->endMeasure()->tick()) {
|
||||
Volta* swap = volta;
|
||||
volta = remainder;
|
||||
remainder = swap;
|
||||
}
|
||||
// Cross-section of the repeatList
|
||||
std::list<int> endings = remainder->endings().toStdList();
|
||||
endings.remove_if([&volta](const int& ending) {
|
||||
return !(volta->hasEnding(ending));
|
||||
});
|
||||
remainder->setEndings(QList<int>::fromStdList(endings));
|
||||
// Split and merge done
|
||||
preProcessedVoltas.push_back(remainder);
|
||||
if (volta->endMeasure() != remainder->endMeasure()) {
|
||||
// volta extends past the end of remainder -> move its startpoint after remainder
|
||||
volta->setStartElement(remainder->endMeasure()->nextMeasure());
|
||||
} else {
|
||||
// volta matched remainder endpoint, nothing left to merge from
|
||||
preProcessedVoltas.splice(preProcessedVoltas.cend(), voltasToMerge);
|
||||
delete volta;
|
||||
volta = nullptr;
|
||||
}
|
||||
} // !voltasToMerge.empty()
|
||||
|
||||
if (volta != nullptr) {
|
||||
preProcessedVoltas.push_back(volta);
|
||||
}
|
||||
}
|
||||
} // spanner->isVolta
|
||||
}
|
||||
|
||||
volta = nullptr;
|
||||
for (; mb; mb = mb->next()) {
|
||||
if (mb->isMeasure()) {
|
||||
sectionEndMeasureBase = mb; // ending measure of section is the most recently encountered actual Measure
|
||||
sectionEndMeasureBase = mb; // ending measure of section is the most recently encountered actual Measure
|
||||
|
||||
// Volta ?
|
||||
if ((spannerIt != _score->spanner().cend()) && (toVolta((*spannerIt).second)->startMeasure() == mb)) {
|
||||
if (!voltaStack.empty()) {
|
||||
//if (voltaStack.top()->endMeasure()->tick() < mb->tick()) {
|
||||
if ((!preProcessedVoltas.empty()) && (preProcessedVoltas.front()->startMeasure() == mb)) {
|
||||
if (volta != nullptr) {
|
||||
//if (volta->endMeasure()->tick() < mb->tick()) {
|
||||
// The previous volta was supposed to end before us (open volta case) -> insert the end
|
||||
sectionRLElements->push_back(new RepeatListElement(RepeatListElementType::VOLTA_END, voltaStack.top(),
|
||||
toMeasure(mb->prevMeasure())));
|
||||
voltaStack.pop();
|
||||
// }
|
||||
//else { // Overlapping voltas }
|
||||
sectionRLElements->push_back(new RepeatListElement(RepeatListElementType::VOLTA_END,
|
||||
volta, toMeasure(mb->prevMeasure())));
|
||||
// volta = nullptr; // No need, replaced immediately further down
|
||||
//} else {
|
||||
// Overlapping voltas; this should not happen as preProcessedVoltas should've dealt with this already
|
||||
//}
|
||||
}
|
||||
// Now insert the start of the current volta
|
||||
voltaStack.push(toVolta((*spannerIt).second));
|
||||
sectionRLElements->push_back(new RepeatListElement(RepeatListElementType::VOLTA_START, (*spannerIt).second, toMeasure(mb)));
|
||||
// Forward iterator to next volta
|
||||
do {
|
||||
++spannerIt;
|
||||
} while ((spannerIt != _score->spanner().cend()) && !(((*spannerIt).second)->isVolta()));
|
||||
volta = preProcessedVoltas.front();
|
||||
sectionRLElements->push_back(new RepeatListElement(RepeatListElementType::VOLTA_START,
|
||||
volta, toMeasure(mb)));
|
||||
// Look for start of next volta
|
||||
preProcessedVoltas.pop_front();
|
||||
}
|
||||
// Start
|
||||
if (mb->repeatStart()) {
|
||||
if (!voltaStack.empty()) {
|
||||
if (voltaStack.top()->startMeasure() != toMeasure(mb)) {
|
||||
if (volta != nullptr) {
|
||||
if (volta->startMeasure() != toMeasure(mb)) {
|
||||
// Volta and Start repeat are not on the same measure
|
||||
// assume the previous volta was supposed to end before us (open volta case) -> insert the end
|
||||
// Warning: This might "break" a volta prematurely if its explicit notated end is later than this point
|
||||
// Consider splitting the volta or ignoring this repeat all together
|
||||
sectionRLElements->push_back(new RepeatListElement(RepeatListElementType::VOLTA_END, voltaStack.top(),
|
||||
toMeasure(mb->prevMeasure())));
|
||||
voltaStack.pop();
|
||||
sectionRLElements->push_back(new RepeatListElement(RepeatListElementType::VOLTA_END,
|
||||
volta, toMeasure(mb->prevMeasure())));
|
||||
volta = nullptr;
|
||||
}
|
||||
//else { // Volta and Start Repeat coincide on the same measure, see test::repeat56.mscx }
|
||||
}
|
||||
startFromRepeatMeasure = new RepeatListElement(RepeatListElementType::REPEAT_START, mb, toMeasure(mb));
|
||||
startFromRepeatMeasure = new RepeatListElement(RepeatListElementType::REPEAT_START,
|
||||
mb, toMeasure(mb));
|
||||
sectionRLElements->push_back(startFromRepeatMeasure);
|
||||
}
|
||||
// Jumps and Markers
|
||||
for (Element* e : mb->el()) {
|
||||
if (e->isJump()) {
|
||||
sectionRLElements->push_back(new RepeatListElement(RepeatListElementType::JUMP, e, toMeasure(mb)));
|
||||
if (!voltaStack.empty()) {
|
||||
if (voltaStack.top()->endMeasure()->tick() <= mb->tick()) {
|
||||
sectionRLElements->push_back(new RepeatListElement(RepeatListElementType::JUMP,
|
||||
e, toMeasure(mb)));
|
||||
if (volta != nullptr) {
|
||||
if (volta->endMeasure()->tick() <= mb->tick()) {
|
||||
// The previous volta was supposed to end before us (open volta case) -> insert the end
|
||||
sectionRLElements->push_back(new RepeatListElement(RepeatListElementType::VOLTA_END, voltaStack.top(),
|
||||
toMeasure(mb)));
|
||||
voltaStack.pop();
|
||||
}
|
||||
//else { // Volta is spanning past this jump instruction }
|
||||
sectionRLElements->push_back(new RepeatListElement(RepeatListElementType::VOLTA_END,
|
||||
volta, toMeasure(mb)));
|
||||
volta = nullptr;
|
||||
} //else { // Volta is spanning past this jump instruction }
|
||||
}
|
||||
} else if (e->isMarker()) {
|
||||
RepeatListElement* markerRLE = new RepeatListElement(RepeatListElementType::MARKER, e, toMeasure(mb));
|
||||
RepeatListElement* markerRLE = new RepeatListElement(RepeatListElementType::MARKER,
|
||||
e, toMeasure(mb));
|
||||
// There may be multiple markers in the same measure and there is no guarantee we're reading
|
||||
// them from left to right. The only way available to guess their order is to look at their
|
||||
// text alignment and order them left to right
|
||||
// At the same time, we should ensure Markers are evaluated before Jumps
|
||||
Align markerRLEalignmentH
|
||||
= static_cast<Align>(static_cast<char>(toMarker(e)->align()) & static_cast<char>(Align::HMASK));
|
||||
Align markerRLEalignmentH = static_cast<Align>(
|
||||
static_cast<char>(toMarker(e)->align()) & static_cast<char>(Align::HMASK)
|
||||
);
|
||||
auto insertionIt = sectionRLElements->end() - 1;
|
||||
while ((*insertionIt)->measure == markerRLE->measure) {
|
||||
bool markerShouldGoBefore = false;
|
||||
if (((*insertionIt)->repeatListElementType == RepeatListElementType::MARKER)
|
||||
&& (markerRLEalignmentH != Align::RIGHT) // We can be the end when right aligned
|
||||
&& (markerRLEalignmentH != Align::RIGHT) // We can be the end when right aligned
|
||||
) {
|
||||
Align storedMarkerAlignmentH
|
||||
= static_cast<Align>(static_cast<char>(toMarker((*insertionIt)->element)->align())
|
||||
& static_cast<char>(Align::HMASK));
|
||||
Align storedMarkerAlignmentH = static_cast<Align>(
|
||||
static_cast<char>(toMarker((*insertionIt)->element)->align())
|
||||
& static_cast<char>(Align::HMASK)
|
||||
);
|
||||
if (markerRLEalignmentH == Align::HCENTER) {
|
||||
markerShouldGoBefore = (storedMarkerAlignmentH == Align::RIGHT);
|
||||
} else { //(markerRLEalignmentH == Align::LEFT)
|
||||
} else { //(markerRLEalignmentH == Align::LEFT)
|
||||
markerShouldGoBefore = (storedMarkerAlignmentH != Align::LEFT);
|
||||
}
|
||||
}
|
||||
if (markerShouldGoBefore
|
||||
|| ((*insertionIt)->repeatListElementType == RepeatListElementType::JUMP)
|
||||
) {
|
||||
// Decrease position - this should always be possible as the list always starts with a REPEAT_START element
|
||||
// Decrease position
|
||||
// This should always be possible as the list always starts with a REPEAT_START element
|
||||
Q_ASSERT(insertionIt != sectionRLElements->begin());
|
||||
--insertionIt;
|
||||
} else { // Found location after which we should go
|
||||
} else {
|
||||
// Found location after which we should go
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -438,42 +513,51 @@ void RepeatList::collectRepeatListElements()
|
|||
}
|
||||
// End
|
||||
if (mb->repeatEnd()) {
|
||||
sectionRLElements->push_back(new RepeatListElement(RepeatListElementType::REPEAT_END, mb, toMeasure(mb)));
|
||||
sectionRLElements->push_back(new RepeatListElement(RepeatListElementType::REPEAT_END,
|
||||
mb, toMeasure(mb)));
|
||||
if (startFromRepeatMeasure != nullptr) {
|
||||
startFromRepeatMeasure->addToRepeatCount(toMeasure(mb)->repeatCount() - 1);
|
||||
}
|
||||
if (!voltaStack.empty()) {
|
||||
//if (voltaStack.top()->endMeasure()->tick() < mb->tick()) {
|
||||
if (volta != nullptr) {
|
||||
//if (volta->endMeasure()->tick() < mb->tick()) {
|
||||
// The previous volta was supposed to end before us (open volta case) -> insert the end
|
||||
sectionRLElements->push_back(new RepeatListElement(RepeatListElementType::VOLTA_END, voltaStack.top(), toMeasure(mb)));
|
||||
voltaStack.pop();
|
||||
// }
|
||||
//else { // Volta is spanning over this end repeat, consider splitting the volta or ignoring this repeat all together }
|
||||
sectionRLElements->push_back(new RepeatListElement(RepeatListElementType::VOLTA_END,
|
||||
volta, toMeasure(mb)));
|
||||
volta = nullptr;
|
||||
//} else {
|
||||
// // Volta is spanning over this end repeat, consider splitting the volta
|
||||
// // or ignoring this repeat all together
|
||||
//}
|
||||
}
|
||||
}
|
||||
// Volta end
|
||||
if (!voltaStack.empty()
|
||||
&& (voltaStack.top()->endMeasure()->tick() == mb->tick())
|
||||
&& (voltaStack.top()->getProperty(Pid::END_HOOK_TYPE).value<HookType>() != HookType::NONE)) {
|
||||
if ((volta != nullptr)
|
||||
&& (volta->endMeasure()->tick() == mb->tick())
|
||||
&& (volta->getProperty(Pid::END_HOOK_TYPE).value<HookType>() != HookType::NONE)
|
||||
) {
|
||||
// end of closed volta
|
||||
sectionRLElements->push_back(new RepeatListElement(RepeatListElementType::VOLTA_END, voltaStack.top(), toMeasure(mb)));
|
||||
voltaStack.pop();
|
||||
sectionRLElements->push_back(new RepeatListElement(RepeatListElementType::VOLTA_END,
|
||||
volta, toMeasure(mb)));
|
||||
volta = nullptr;
|
||||
}
|
||||
}
|
||||
// Section break (or end of score)
|
||||
if (mb->sectionBreak() || !mb->nextMeasure()) {
|
||||
if (sectionEndMeasureBase != nullptr) {
|
||||
if (!voltaStack.empty()) {
|
||||
//if (voltaStack.top()->endMeasure()->tick() < mb->tick()) {
|
||||
if (volta != nullptr) {
|
||||
//if (volta->endMeasure()->tick() < mb->tick()) {
|
||||
// The previous volta was supposed to end before us (open volta case) -> insert the end
|
||||
sectionRLElements->push_back(new RepeatListElement(RepeatListElementType::VOLTA_END, voltaStack.top(), toMeasure(mb)));
|
||||
voltaStack.pop();
|
||||
// }
|
||||
//else { // Volta is spanning over this section break, consider splitting the volta and adding it again at the start of the next section }
|
||||
sectionRLElements->push_back(new RepeatListElement(RepeatListElementType::VOLTA_END,
|
||||
volta, toMeasure(mb)));
|
||||
volta = nullptr;
|
||||
//} else {
|
||||
// // Volta is spanning over this section break, consider splitting the volta
|
||||
// // and adding it again at the start of the next section
|
||||
//}
|
||||
}
|
||||
sectionRLElements->push_back(new RepeatListElement(RepeatListElementType::SECTION_BREAK, mb,
|
||||
toMeasure(sectionEndMeasureBase)));
|
||||
sectionEndMeasureBase = nullptr; // reset to indicate not having found the end for the next section
|
||||
sectionRLElements->push_back(new RepeatListElement(RepeatListElementType::SECTION_BREAK,
|
||||
mb, toMeasure(sectionEndMeasureBase)));
|
||||
sectionEndMeasureBase = nullptr; // reset to indicate not having found the end for the next section
|
||||
// store section
|
||||
_rlElements.push_back(sectionRLElements);
|
||||
}
|
||||
|
@ -482,14 +566,15 @@ void RepeatList::collectRepeatListElements()
|
|||
sectionRLElements = new QList<RepeatListElement*>();
|
||||
// First measure of a section/score is always used as a reference REPEAT_START point
|
||||
// even if it doesn't have a start repeat
|
||||
startFromRepeatMeasure
|
||||
= new RepeatListElement(RepeatListElementType::REPEAT_START, mb->nextMeasure(), toMeasure(mb->nextMeasure()));
|
||||
startFromRepeatMeasure = new RepeatListElement(RepeatListElementType::REPEAT_START,
|
||||
mb->nextMeasure(), toMeasure(mb->nextMeasure()));
|
||||
sectionRLElements->push_back(startFromRepeatMeasure);
|
||||
// Loop will forward one measureBase, so return one now
|
||||
// this logic aids in skipping multiple frames between sections
|
||||
mb = mb->nextMeasure()->prev();
|
||||
} else {
|
||||
break; // no more measures -> done
|
||||
// no more measures -> done
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -822,7 +907,7 @@ void RepeatList::unwind()
|
|||
QList<RepeatListElement*>::const_iterator findRepeatIt = repeatListElementIt;
|
||||
do {
|
||||
--findRepeatIt;
|
||||
}while ((*findRepeatIt) != startRepeatReference);
|
||||
} while ((*findRepeatIt) != startRepeatReference);
|
||||
++findRepeatIt; // Start volta analysis past this start repeat
|
||||
Volta const* voltaReference = nullptr;
|
||||
int processedRepeatCount = 1;
|
||||
|
@ -890,7 +975,7 @@ void RepeatList::unwind()
|
|||
rs->addMeasure((*repeatListElementIt)->measure);
|
||||
|
||||
continueAt.first = _rlElements.cend(); // Clear this reference - processed
|
||||
} else { // Nowhere to go to, break out of this section loop and onto the next section
|
||||
} else { // Nowhere to go to, break out of this section loop and onto the next section
|
||||
repeatListElementIt = (*sectionIt)->cend();
|
||||
continue;
|
||||
}
|
||||
|
|
292
mtest/libmscore/repeat/repeat58.mscx
Normal file
292
mtest/libmscore/repeat/repeat58.mscx
Normal file
|
@ -0,0 +1,292 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<museScore version="3.01">
|
||||
<Score>
|
||||
<LayerTag id="0" tag="default"></LayerTag>
|
||||
<currentLayer>0</currentLayer>
|
||||
<Division>480</Division>
|
||||
<Style>
|
||||
<showMeasureNumberOne>1</showMeasureNumberOne>
|
||||
<measureNumberInterval>1</measureNumberInterval>
|
||||
<measureNumberSystem>0</measureNumberSystem>
|
||||
<Spatium>1.76389</Spatium>
|
||||
</Style>
|
||||
<showInvisible>1</showInvisible>
|
||||
<showUnprintable>1</showUnprintable>
|
||||
<showFrames>1</showFrames>
|
||||
<showMargins>0</showMargins>
|
||||
<metaTag name="arranger"></metaTag>
|
||||
<metaTag name="composer"></metaTag>
|
||||
<metaTag name="copyright"></metaTag>
|
||||
<metaTag name="lyricist"></metaTag>
|
||||
<metaTag name="movementNumber"></metaTag>
|
||||
<metaTag name="movementTitle"></metaTag>
|
||||
<metaTag name="poet"></metaTag>
|
||||
<metaTag name="source"></metaTag>
|
||||
<metaTag name="translator"></metaTag>
|
||||
<metaTag name="workNumber"></metaTag>
|
||||
<metaTag name="workTitle">Repeat Test</metaTag>
|
||||
<Part>
|
||||
<Staff id="1">
|
||||
<StaffType group="pitched">
|
||||
<name>stdNormal</name>
|
||||
</StaffType>
|
||||
</Staff>
|
||||
<trackName>Piano</trackName>
|
||||
<Instrument>
|
||||
<longName>Piano</longName>
|
||||
<shortName>Pno.</shortName>
|
||||
<trackName>Piano</trackName>
|
||||
<minPitchP>21</minPitchP>
|
||||
<maxPitchP>108</maxPitchP>
|
||||
<minPitchA>21</minPitchA>
|
||||
<maxPitchA>108</maxPitchA>
|
||||
<instrumentId>keyboard.piano</instrumentId>
|
||||
<clef staff="2">F</clef>
|
||||
<Articulation>
|
||||
<velocity>100</velocity>
|
||||
<gateTime>95</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="staccatissimo">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>33</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="staccato">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>50</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="portato">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>67</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="tenuto">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>100</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="marcato">
|
||||
<velocity>120</velocity>
|
||||
<gateTime>67</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="sforzato">
|
||||
<velocity>120</velocity>
|
||||
<gateTime>100</gateTime>
|
||||
</Articulation>
|
||||
<Channel>
|
||||
<program value="0"/>
|
||||
</Channel>
|
||||
</Instrument>
|
||||
</Part>
|
||||
<Staff id="1">
|
||||
<VBox>
|
||||
<height>10</height>
|
||||
<bottomGap>1</bottomGap>
|
||||
<Text>
|
||||
<style>Title</style>
|
||||
<text>repeat58</text>
|
||||
</Text>
|
||||
<Text>
|
||||
<style>Subtitle</style>
|
||||
<text>duplicate volta - single staff</text>
|
||||
</Text>
|
||||
</VBox>
|
||||
<TBox>
|
||||
<height>1</height>
|
||||
<topGap>0</topGap>
|
||||
<leftMargin>1</leftMargin>
|
||||
<rightMargin>1</rightMargin>
|
||||
<topMargin>1</topMargin>
|
||||
<bottomMargin>1</bottomMargin>
|
||||
<Text>
|
||||
<style>Frame</style>
|
||||
<text>1,2, 1, 3, 4,5, 4, 6,7
|
||||
</text>
|
||||
</Text>
|
||||
</TBox>
|
||||
<Measure>
|
||||
<voice>
|
||||
<TimeSig>
|
||||
<sigN>4</sigN>
|
||||
<sigD>4</sigD>
|
||||
</TimeSig>
|
||||
<Tempo>
|
||||
<tempo>6.66667</tempo>
|
||||
<followText>1</followText>
|
||||
<text><b></b><font face="ScoreText"></font><b><font face="FreeSerif"></font> = 400</b></text>
|
||||
</Tempo>
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<pitch>60</pitch>
|
||||
<tpc>14</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<endRepeat>2</endRepeat>
|
||||
<voice>
|
||||
<Spanner type="Volta">
|
||||
<Volta>
|
||||
<endHookType>1</endHookType>
|
||||
<beginText>1.</beginText>
|
||||
<endings>1</endings>
|
||||
</Volta>
|
||||
<next>
|
||||
<location>
|
||||
<measures>1</measures>
|
||||
</location>
|
||||
</next>
|
||||
</Spanner>
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<pitch>62</pitch>
|
||||
<tpc>16</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<voice>
|
||||
<Spanner type="Volta">
|
||||
<prev>
|
||||
<location>
|
||||
<measures>-1</measures>
|
||||
</location>
|
||||
</prev>
|
||||
</Spanner>
|
||||
<Spanner type="Volta">
|
||||
<Volta>
|
||||
<beginText>2.</beginText>
|
||||
<endings>2</endings>
|
||||
</Volta>
|
||||
<next>
|
||||
<location>
|
||||
<measures>1</measures>
|
||||
</location>
|
||||
</next>
|
||||
</Spanner>
|
||||
<Spanner type="Volta">
|
||||
<Volta>
|
||||
<beginText>2.</beginText>
|
||||
<Segment>
|
||||
<subtype>0</subtype>
|
||||
<offset x="0" y="-6.5"/>
|
||||
<off2 x="0" y="0"/>
|
||||
</Segment>
|
||||
<endings>2</endings>
|
||||
</Volta>
|
||||
<next>
|
||||
<location>
|
||||
<measures>1</measures>
|
||||
</location>
|
||||
</next>
|
||||
</Spanner>
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<pitch>64</pitch>
|
||||
<tpc>18</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<startRepeat/>
|
||||
<voice>
|
||||
<Spanner type="Volta">
|
||||
<prev>
|
||||
<location>
|
||||
<measures>-1</measures>
|
||||
</location>
|
||||
</prev>
|
||||
</Spanner>
|
||||
<Spanner type="Volta">
|
||||
<prev>
|
||||
<location>
|
||||
<measures>-1</measures>
|
||||
</location>
|
||||
</prev>
|
||||
</Spanner>
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<pitch>65</pitch>
|
||||
<tpc>13</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<endRepeat>2</endRepeat>
|
||||
<voice>
|
||||
<Spanner type="Volta">
|
||||
<Volta>
|
||||
<endHookType>1</endHookType>
|
||||
<beginText>1.</beginText>
|
||||
<endings>1</endings>
|
||||
</Volta>
|
||||
<next>
|
||||
<location>
|
||||
<measures>1</measures>
|
||||
</location>
|
||||
</next>
|
||||
</Spanner>
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<pitch>67</pitch>
|
||||
<tpc>15</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<voice>
|
||||
<Spanner type="Volta">
|
||||
<prev>
|
||||
<location>
|
||||
<measures>-1</measures>
|
||||
</location>
|
||||
</prev>
|
||||
</Spanner>
|
||||
<Spanner type="Volta">
|
||||
<Volta>
|
||||
<beginText>2.</beginText>
|
||||
<endings>2</endings>
|
||||
</Volta>
|
||||
<next>
|
||||
<location>
|
||||
<measures>1</measures>
|
||||
</location>
|
||||
</next>
|
||||
</Spanner>
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<pitch>71</pitch>
|
||||
<tpc>19</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<voice>
|
||||
<Spanner type="Volta">
|
||||
<prev>
|
||||
<location>
|
||||
<measures>-1</measures>
|
||||
</location>
|
||||
</prev>
|
||||
</Spanner>
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<pitch>72</pitch>
|
||||
<tpc>14</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</voice>
|
||||
</Measure>
|
||||
</Staff>
|
||||
</Score>
|
||||
</museScore>
|
545
mtest/libmscore/repeat/repeat59.mscx
Normal file
545
mtest/libmscore/repeat/repeat59.mscx
Normal file
|
@ -0,0 +1,545 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<museScore version="3.01">
|
||||
<Score>
|
||||
<LayerTag id="0" tag="default"></LayerTag>
|
||||
<currentLayer>0</currentLayer>
|
||||
<Division>480</Division>
|
||||
<Style>
|
||||
<showMeasureNumberOne>1</showMeasureNumberOne>
|
||||
<measureNumberInterval>1</measureNumberInterval>
|
||||
<measureNumberSystem>0</measureNumberSystem>
|
||||
<Spatium>1.76389</Spatium>
|
||||
</Style>
|
||||
<showInvisible>1</showInvisible>
|
||||
<showUnprintable>1</showUnprintable>
|
||||
<showFrames>1</showFrames>
|
||||
<showMargins>0</showMargins>
|
||||
<metaTag name="arranger"></metaTag>
|
||||
<metaTag name="composer"></metaTag>
|
||||
<metaTag name="copyright"></metaTag>
|
||||
<metaTag name="lyricist"></metaTag>
|
||||
<metaTag name="movementNumber"></metaTag>
|
||||
<metaTag name="movementTitle"></metaTag>
|
||||
<metaTag name="poet"></metaTag>
|
||||
<metaTag name="source"></metaTag>
|
||||
<metaTag name="translator"></metaTag>
|
||||
<metaTag name="workNumber"></metaTag>
|
||||
<metaTag name="workTitle">Repeat Test</metaTag>
|
||||
<Part>
|
||||
<Staff id="1">
|
||||
<StaffType group="pitched">
|
||||
<name>stdNormal</name>
|
||||
</StaffType>
|
||||
</Staff>
|
||||
<trackName>Piano</trackName>
|
||||
<Instrument>
|
||||
<longName>Piano</longName>
|
||||
<shortName>Pno.</shortName>
|
||||
<trackName>Piano</trackName>
|
||||
<minPitchP>21</minPitchP>
|
||||
<maxPitchP>108</maxPitchP>
|
||||
<minPitchA>21</minPitchA>
|
||||
<maxPitchA>108</maxPitchA>
|
||||
<instrumentId>keyboard.piano</instrumentId>
|
||||
<clef staff="2">F</clef>
|
||||
<Articulation>
|
||||
<velocity>100</velocity>
|
||||
<gateTime>95</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="staccatissimo">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>33</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="staccato">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>50</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="portato">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>67</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="tenuto">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>100</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="marcato">
|
||||
<velocity>120</velocity>
|
||||
<gateTime>67</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="sforzato">
|
||||
<velocity>120</velocity>
|
||||
<gateTime>100</gateTime>
|
||||
</Articulation>
|
||||
<Channel>
|
||||
<program value="0"/>
|
||||
</Channel>
|
||||
</Instrument>
|
||||
</Part>
|
||||
<Part>
|
||||
<Staff id="2">
|
||||
<StaffType group="pitched">
|
||||
<name>stdNormal</name>
|
||||
</StaffType>
|
||||
<bracket type="1" span="2" col="0"/>
|
||||
<barLineSpan>1</barLineSpan>
|
||||
</Staff>
|
||||
<Staff id="3">
|
||||
<StaffType group="pitched">
|
||||
<name>stdNormal</name>
|
||||
</StaffType>
|
||||
<defaultClef>F</defaultClef>
|
||||
</Staff>
|
||||
<trackName>Piano</trackName>
|
||||
<Instrument>
|
||||
<longName>Piano</longName>
|
||||
<shortName>Pno.</shortName>
|
||||
<trackName>Piano</trackName>
|
||||
<minPitchP>21</minPitchP>
|
||||
<maxPitchP>108</maxPitchP>
|
||||
<minPitchA>21</minPitchA>
|
||||
<maxPitchA>108</maxPitchA>
|
||||
<instrumentId>keyboard.piano</instrumentId>
|
||||
<clef staff="2">F</clef>
|
||||
<Articulation>
|
||||
<velocity>100</velocity>
|
||||
<gateTime>95</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="staccatissimo">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>33</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="staccato">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>50</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="portato">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>67</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="tenuto">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>100</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="marcato">
|
||||
<velocity>120</velocity>
|
||||
<gateTime>67</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="sforzato">
|
||||
<velocity>150</velocity>
|
||||
<gateTime>100</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="sforzatoStaccato">
|
||||
<velocity>150</velocity>
|
||||
<gateTime>50</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="marcatoStaccato">
|
||||
<velocity>120</velocity>
|
||||
<gateTime>50</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="marcatoTenuto">
|
||||
<velocity>120</velocity>
|
||||
<gateTime>100</gateTime>
|
||||
</Articulation>
|
||||
<Channel>
|
||||
<program value="0"/>
|
||||
</Channel>
|
||||
</Instrument>
|
||||
</Part>
|
||||
<Staff id="1">
|
||||
<VBox>
|
||||
<height>10</height>
|
||||
<bottomGap>1</bottomGap>
|
||||
<Text>
|
||||
<style>Title</style>
|
||||
<text>repeat59</text>
|
||||
</Text>
|
||||
<Text>
|
||||
<style>Subtitle</style>
|
||||
<text>duplicate volta - multiple instruments</text>
|
||||
</Text>
|
||||
</VBox>
|
||||
<TBox>
|
||||
<height>1</height>
|
||||
<topGap>0</topGap>
|
||||
<leftMargin>1</leftMargin>
|
||||
<rightMargin>1</rightMargin>
|
||||
<topMargin>1</topMargin>
|
||||
<bottomMargin>1</bottomMargin>
|
||||
<Text>
|
||||
<style>Frame</style>
|
||||
<text>1,2, 1, 3, 4,5, 4, 6,7
|
||||
</text>
|
||||
</Text>
|
||||
</TBox>
|
||||
<Measure>
|
||||
<voice>
|
||||
<TimeSig>
|
||||
<sigN>4</sigN>
|
||||
<sigD>4</sigD>
|
||||
</TimeSig>
|
||||
<Tempo>
|
||||
<tempo>6.66667</tempo>
|
||||
<followText>1</followText>
|
||||
<text><b></b><font face="ScoreText"></font><b><font face="FreeSerif"></font> = 400</b></text>
|
||||
</Tempo>
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<pitch>60</pitch>
|
||||
<tpc>14</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<endRepeat>2</endRepeat>
|
||||
<voice>
|
||||
<Spanner type="Volta">
|
||||
<Volta>
|
||||
<endHookType>1</endHookType>
|
||||
<beginText>1.</beginText>
|
||||
<endings>1</endings>
|
||||
</Volta>
|
||||
<next>
|
||||
<location>
|
||||
<measures>1</measures>
|
||||
</location>
|
||||
</next>
|
||||
</Spanner>
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<pitch>62</pitch>
|
||||
<tpc>16</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<voice>
|
||||
<Spanner type="Volta">
|
||||
<prev>
|
||||
<location>
|
||||
<measures>-1</measures>
|
||||
</location>
|
||||
</prev>
|
||||
</Spanner>
|
||||
<Spanner type="Volta">
|
||||
<prev>
|
||||
<location>
|
||||
<staves>1</staves>
|
||||
<measures>-1</measures>
|
||||
</location>
|
||||
</prev>
|
||||
</Spanner>
|
||||
<Spanner type="Volta">
|
||||
<Volta>
|
||||
<beginText>2.</beginText>
|
||||
<endings>2</endings>
|
||||
</Volta>
|
||||
<next>
|
||||
<location>
|
||||
<measures>1</measures>
|
||||
</location>
|
||||
</next>
|
||||
</Spanner>
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<pitch>64</pitch>
|
||||
<tpc>18</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<startRepeat/>
|
||||
<voice>
|
||||
<Spanner type="Volta">
|
||||
<prev>
|
||||
<location>
|
||||
<measures>-1</measures>
|
||||
</location>
|
||||
</prev>
|
||||
</Spanner>
|
||||
<Spanner type="Volta">
|
||||
<prev>
|
||||
<location>
|
||||
<staves>1</staves>
|
||||
<measures>-1</measures>
|
||||
</location>
|
||||
</prev>
|
||||
</Spanner>
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<pitch>65</pitch>
|
||||
<tpc>13</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<endRepeat>2</endRepeat>
|
||||
<voice>
|
||||
<Spanner type="Volta">
|
||||
<Volta>
|
||||
<endHookType>1</endHookType>
|
||||
<beginText>1.</beginText>
|
||||
<endings>1</endings>
|
||||
</Volta>
|
||||
<next>
|
||||
<location>
|
||||
<measures>1</measures>
|
||||
</location>
|
||||
</next>
|
||||
</Spanner>
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<pitch>67</pitch>
|
||||
<tpc>15</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<voice>
|
||||
<Spanner type="Volta">
|
||||
<prev>
|
||||
<location>
|
||||
<measures>-1</measures>
|
||||
</location>
|
||||
</prev>
|
||||
</Spanner>
|
||||
<Spanner type="Volta">
|
||||
<prev>
|
||||
<location>
|
||||
<staves>1</staves>
|
||||
<measures>-1</measures>
|
||||
</location>
|
||||
</prev>
|
||||
</Spanner>
|
||||
<Spanner type="Volta">
|
||||
<Volta>
|
||||
<beginText>2.</beginText>
|
||||
<endings>2</endings>
|
||||
</Volta>
|
||||
<next>
|
||||
<location>
|
||||
<measures>1</measures>
|
||||
</location>
|
||||
</next>
|
||||
</Spanner>
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<pitch>71</pitch>
|
||||
<tpc>19</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<voice>
|
||||
<Spanner type="Volta">
|
||||
<prev>
|
||||
<location>
|
||||
<measures>-1</measures>
|
||||
</location>
|
||||
</prev>
|
||||
</Spanner>
|
||||
<Spanner type="Volta">
|
||||
<prev>
|
||||
<location>
|
||||
<staves>1</staves>
|
||||
<measures>-1</measures>
|
||||
</location>
|
||||
</prev>
|
||||
</Spanner>
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<pitch>72</pitch>
|
||||
<tpc>14</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</voice>
|
||||
</Measure>
|
||||
</Staff>
|
||||
<Staff id="2">
|
||||
<Measure>
|
||||
<voice>
|
||||
<TimeSig>
|
||||
<sigN>4</sigN>
|
||||
<sigD>4</sigD>
|
||||
</TimeSig>
|
||||
<Rest>
|
||||
<durationType>measure</durationType>
|
||||
<duration>4/4</duration>
|
||||
</Rest>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<voice>
|
||||
<Spanner type="Volta">
|
||||
<Volta>
|
||||
<endHookType>1</endHookType>
|
||||
<beginText>1.</beginText>
|
||||
<endings>1</endings>
|
||||
</Volta>
|
||||
<next>
|
||||
<location>
|
||||
<staves>-1</staves>
|
||||
<measures>1</measures>
|
||||
</location>
|
||||
</next>
|
||||
</Spanner>
|
||||
<Rest>
|
||||
<durationType>measure</durationType>
|
||||
<duration>4/4</duration>
|
||||
</Rest>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<voice>
|
||||
<Spanner type="Volta">
|
||||
<Volta>
|
||||
<beginText>2.</beginText>
|
||||
<endings>2</endings>
|
||||
</Volta>
|
||||
<next>
|
||||
<location>
|
||||
<staves>-1</staves>
|
||||
<measures>1</measures>
|
||||
</location>
|
||||
</next>
|
||||
</Spanner>
|
||||
<Rest>
|
||||
<durationType>measure</durationType>
|
||||
<duration>4/4</duration>
|
||||
</Rest>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<voice>
|
||||
<Rest>
|
||||
<durationType>measure</durationType>
|
||||
<duration>4/4</duration>
|
||||
</Rest>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<voice>
|
||||
<Spanner type="Volta">
|
||||
<Volta>
|
||||
<endHookType>1</endHookType>
|
||||
<beginText>1.</beginText>
|
||||
<endings>1</endings>
|
||||
</Volta>
|
||||
<next>
|
||||
<location>
|
||||
<staves>-1</staves>
|
||||
<measures>1</measures>
|
||||
</location>
|
||||
</next>
|
||||
</Spanner>
|
||||
<Rest>
|
||||
<durationType>measure</durationType>
|
||||
<duration>4/4</duration>
|
||||
</Rest>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<voice>
|
||||
<Spanner type="Volta">
|
||||
<Volta>
|
||||
<beginText>2.</beginText>
|
||||
<endings>2</endings>
|
||||
</Volta>
|
||||
<next>
|
||||
<location>
|
||||
<staves>-1</staves>
|
||||
<measures>1</measures>
|
||||
</location>
|
||||
</next>
|
||||
</Spanner>
|
||||
<Rest>
|
||||
<durationType>measure</durationType>
|
||||
<duration>4/4</duration>
|
||||
</Rest>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<voice>
|
||||
<Rest>
|
||||
<durationType>measure</durationType>
|
||||
<duration>4/4</duration>
|
||||
</Rest>
|
||||
</voice>
|
||||
</Measure>
|
||||
</Staff>
|
||||
<Staff id="3">
|
||||
<Measure>
|
||||
<voice>
|
||||
<TimeSig>
|
||||
<sigN>4</sigN>
|
||||
<sigD>4</sigD>
|
||||
</TimeSig>
|
||||
<Rest>
|
||||
<durationType>measure</durationType>
|
||||
<duration>4/4</duration>
|
||||
</Rest>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<voice>
|
||||
<Rest>
|
||||
<durationType>measure</durationType>
|
||||
<duration>4/4</duration>
|
||||
</Rest>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<voice>
|
||||
<Rest>
|
||||
<durationType>measure</durationType>
|
||||
<duration>4/4</duration>
|
||||
</Rest>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<voice>
|
||||
<Rest>
|
||||
<durationType>measure</durationType>
|
||||
<duration>4/4</duration>
|
||||
</Rest>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<voice>
|
||||
<Rest>
|
||||
<durationType>measure</durationType>
|
||||
<duration>4/4</duration>
|
||||
</Rest>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<voice>
|
||||
<Rest>
|
||||
<durationType>measure</durationType>
|
||||
<duration>4/4</duration>
|
||||
</Rest>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<voice>
|
||||
<Rest>
|
||||
<durationType>measure</durationType>
|
||||
<duration>4/4</duration>
|
||||
</Rest>
|
||||
</voice>
|
||||
</Measure>
|
||||
</Staff>
|
||||
</Score>
|
||||
</museScore>
|
285
mtest/libmscore/repeat/repeat60.mscx
Normal file
285
mtest/libmscore/repeat/repeat60.mscx
Normal file
|
@ -0,0 +1,285 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<museScore version="3.01">
|
||||
<Score>
|
||||
<LayerTag id="0" tag="default"></LayerTag>
|
||||
<currentLayer>0</currentLayer>
|
||||
<Division>480</Division>
|
||||
<Style>
|
||||
<showMeasureNumberOne>1</showMeasureNumberOne>
|
||||
<measureNumberInterval>1</measureNumberInterval>
|
||||
<measureNumberSystem>0</measureNumberSystem>
|
||||
<Spatium>1.76389</Spatium>
|
||||
</Style>
|
||||
<showInvisible>1</showInvisible>
|
||||
<showUnprintable>1</showUnprintable>
|
||||
<showFrames>1</showFrames>
|
||||
<showMargins>0</showMargins>
|
||||
<metaTag name="arranger"></metaTag>
|
||||
<metaTag name="composer"></metaTag>
|
||||
<metaTag name="copyright"></metaTag>
|
||||
<metaTag name="lyricist"></metaTag>
|
||||
<metaTag name="movementNumber"></metaTag>
|
||||
<metaTag name="movementTitle"></metaTag>
|
||||
<metaTag name="poet"></metaTag>
|
||||
<metaTag name="source"></metaTag>
|
||||
<metaTag name="translator"></metaTag>
|
||||
<metaTag name="workNumber"></metaTag>
|
||||
<metaTag name="workTitle">Repeat Test</metaTag>
|
||||
<Part>
|
||||
<Staff id="1">
|
||||
<StaffType group="pitched">
|
||||
<name>stdNormal</name>
|
||||
</StaffType>
|
||||
</Staff>
|
||||
<trackName>Piano</trackName>
|
||||
<Instrument>
|
||||
<longName>Piano</longName>
|
||||
<shortName>Pno.</shortName>
|
||||
<trackName>Piano</trackName>
|
||||
<minPitchP>21</minPitchP>
|
||||
<maxPitchP>108</maxPitchP>
|
||||
<minPitchA>21</minPitchA>
|
||||
<maxPitchA>108</maxPitchA>
|
||||
<instrumentId>keyboard.piano</instrumentId>
|
||||
<clef staff="2">F</clef>
|
||||
<Articulation>
|
||||
<velocity>100</velocity>
|
||||
<gateTime>95</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="staccatissimo">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>33</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="staccato">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>50</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="portato">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>67</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="tenuto">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>100</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="marcato">
|
||||
<velocity>120</velocity>
|
||||
<gateTime>67</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="sforzato">
|
||||
<velocity>120</velocity>
|
||||
<gateTime>100</gateTime>
|
||||
</Articulation>
|
||||
<Channel>
|
||||
<program value="0"/>
|
||||
</Channel>
|
||||
</Instrument>
|
||||
</Part>
|
||||
<Staff id="1">
|
||||
<VBox>
|
||||
<height>10</height>
|
||||
<bottomGap>1</bottomGap>
|
||||
<Text>
|
||||
<style>Title</style>
|
||||
<text>repeat60</text>
|
||||
</Text>
|
||||
<Text>
|
||||
<style>Subtitle</style>
|
||||
<text>overlapping voltas - go nuts ;-)</text>
|
||||
</Text>
|
||||
</VBox>
|
||||
<TBox>
|
||||
<height>1</height>
|
||||
<topGap>0</topGap>
|
||||
<leftMargin>1</leftMargin>
|
||||
<rightMargin>1</rightMargin>
|
||||
<topMargin>1</topMargin>
|
||||
<bottomMargin>1</bottomMargin>
|
||||
<Text>
|
||||
<style>Frame</style>
|
||||
<text>1,2, 6,7, 1,2,3, 6,7, 1,2,3,4,5,6,7, 1,2,3, 6,7, 1,2, 6,7, 1,7
|
||||
</text>
|
||||
</Text>
|
||||
</TBox>
|
||||
<Measure>
|
||||
<voice>
|
||||
<TimeSig>
|
||||
<sigN>4</sigN>
|
||||
<sigD>4</sigD>
|
||||
</TimeSig>
|
||||
<Tempo>
|
||||
<tempo>6.66667</tempo>
|
||||
<followText>1</followText>
|
||||
<text><b></b><font face="ScoreText"/><b><font face="FreeSerif"/> = 400</b></text>
|
||||
</Tempo>
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<pitch>60</pitch>
|
||||
<tpc>14</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<voice>
|
||||
<Spanner type="Volta">
|
||||
<Volta>
|
||||
<endHookType>1</endHookType>
|
||||
<beginText>1-5</beginText>
|
||||
<Segment>
|
||||
<subtype>0</subtype>
|
||||
<offset x="0" y="-7.5"/>
|
||||
<off2 x="0" y="0"/>
|
||||
</Segment>
|
||||
<endings>1, 2, 3, 4, 5</endings>
|
||||
</Volta>
|
||||
<next>
|
||||
<location>
|
||||
<measures>5</measures>
|
||||
</location>
|
||||
</next>
|
||||
</Spanner>
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<pitch>62</pitch>
|
||||
<tpc>16</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<voice>
|
||||
<Spanner type="Volta">
|
||||
<Volta>
|
||||
<beginText>2-4</beginText>
|
||||
<Segment>
|
||||
<subtype>0</subtype>
|
||||
<offset x="0" y="-6.5"/>
|
||||
<off2 x="0" y="0"/>
|
||||
</Segment>
|
||||
<endings>2, 3, 4</endings>
|
||||
</Volta>
|
||||
<next>
|
||||
<location>
|
||||
<measures>2</measures>
|
||||
</location>
|
||||
</next>
|
||||
</Spanner>
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<pitch>64</pitch>
|
||||
<tpc>18</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<voice>
|
||||
<Spanner type="Volta">
|
||||
<Volta>
|
||||
<endHookType>1</endHookType>
|
||||
<beginText>3.</beginText>
|
||||
<Segment>
|
||||
<subtype>0</subtype>
|
||||
<offset x="0" y="-5.5"/>
|
||||
<off2 x="0" y="0"/>
|
||||
<minDistance>0.430001</minDistance>
|
||||
</Segment>
|
||||
<endings>3</endings>
|
||||
</Volta>
|
||||
<next>
|
||||
<location>
|
||||
<measures>2</measures>
|
||||
</location>
|
||||
</next>
|
||||
</Spanner>
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<pitch>65</pitch>
|
||||
<tpc>13</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<voice>
|
||||
<Spanner type="Volta">
|
||||
<prev>
|
||||
<location>
|
||||
<measures>-2</measures>
|
||||
</location>
|
||||
</prev>
|
||||
</Spanner>
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<pitch>67</pitch>
|
||||
<tpc>15</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<voice>
|
||||
<Spanner type="Volta">
|
||||
<prev>
|
||||
<location>
|
||||
<measures>-2</measures>
|
||||
</location>
|
||||
</prev>
|
||||
</Spanner>
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<pitch>71</pitch>
|
||||
<tpc>19</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<endRepeat>6</endRepeat>
|
||||
<voice>
|
||||
<Spanner type="Volta">
|
||||
<prev>
|
||||
<location>
|
||||
<measures>-5</measures>
|
||||
</location>
|
||||
</prev>
|
||||
</Spanner>
|
||||
<Spanner type="TextLine">
|
||||
<TextLine>
|
||||
<lineVisible>0</lineVisible>
|
||||
<endText>6x</endText>
|
||||
<endTextAlign>center,center</endTextAlign>
|
||||
<lineWidth>0.149991</lineWidth>
|
||||
</TextLine>
|
||||
<next>
|
||||
<location>
|
||||
<fractions>1/1</fractions>
|
||||
</location>
|
||||
</next>
|
||||
</Spanner>
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<pitch>72</pitch>
|
||||
<tpc>14</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
<Spanner type="TextLine">
|
||||
<prev>
|
||||
<location>
|
||||
<fractions>-1/1</fractions>
|
||||
</location>
|
||||
</prev>
|
||||
</Spanner>
|
||||
</voice>
|
||||
</Measure>
|
||||
</Staff>
|
||||
</Score>
|
||||
</museScore>
|
257
mtest/libmscore/repeat/repeat61.mscx
Normal file
257
mtest/libmscore/repeat/repeat61.mscx
Normal file
|
@ -0,0 +1,257 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<museScore version="3.01">
|
||||
<Score>
|
||||
<LayerTag id="0" tag="default"></LayerTag>
|
||||
<currentLayer>0</currentLayer>
|
||||
<Division>480</Division>
|
||||
<Style>
|
||||
<showMeasureNumberOne>1</showMeasureNumberOne>
|
||||
<measureNumberInterval>1</measureNumberInterval>
|
||||
<measureNumberSystem>0</measureNumberSystem>
|
||||
<Spatium>1.76389</Spatium>
|
||||
</Style>
|
||||
<showInvisible>1</showInvisible>
|
||||
<showUnprintable>1</showUnprintable>
|
||||
<showFrames>1</showFrames>
|
||||
<showMargins>0</showMargins>
|
||||
<metaTag name="arranger"></metaTag>
|
||||
<metaTag name="composer"></metaTag>
|
||||
<metaTag name="copyright"></metaTag>
|
||||
<metaTag name="lyricist"></metaTag>
|
||||
<metaTag name="movementNumber"></metaTag>
|
||||
<metaTag name="movementTitle"></metaTag>
|
||||
<metaTag name="poet"></metaTag>
|
||||
<metaTag name="source"></metaTag>
|
||||
<metaTag name="translator"></metaTag>
|
||||
<metaTag name="workNumber"></metaTag>
|
||||
<metaTag name="workTitle">Repeat Test</metaTag>
|
||||
<Part>
|
||||
<Staff id="1">
|
||||
<StaffType group="pitched">
|
||||
<name>stdNormal</name>
|
||||
</StaffType>
|
||||
</Staff>
|
||||
<trackName>Piano</trackName>
|
||||
<Instrument>
|
||||
<longName>Piano</longName>
|
||||
<shortName>Pno.</shortName>
|
||||
<trackName>Piano</trackName>
|
||||
<minPitchP>21</minPitchP>
|
||||
<maxPitchP>108</maxPitchP>
|
||||
<minPitchA>21</minPitchA>
|
||||
<maxPitchA>108</maxPitchA>
|
||||
<instrumentId>keyboard.piano</instrumentId>
|
||||
<clef staff="2">F</clef>
|
||||
<Articulation>
|
||||
<velocity>100</velocity>
|
||||
<gateTime>95</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="staccatissimo">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>33</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="staccato">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>50</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="portato">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>67</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="tenuto">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>100</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="marcato">
|
||||
<velocity>120</velocity>
|
||||
<gateTime>67</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="sforzato">
|
||||
<velocity>120</velocity>
|
||||
<gateTime>100</gateTime>
|
||||
</Articulation>
|
||||
<Channel>
|
||||
<program value="0"/>
|
||||
</Channel>
|
||||
</Instrument>
|
||||
</Part>
|
||||
<Staff id="1">
|
||||
<VBox>
|
||||
<height>10</height>
|
||||
<bottomGap>1</bottomGap>
|
||||
<Text>
|
||||
<style>Title</style>
|
||||
<text>repeat61</text>
|
||||
</Text>
|
||||
<Text>
|
||||
<style>Subtitle</style>
|
||||
<text>overlapping voltas - nested</text>
|
||||
</Text>
|
||||
</VBox>
|
||||
<TBox>
|
||||
<height>1</height>
|
||||
<topGap>0</topGap>
|
||||
<leftMargin>1</leftMargin>
|
||||
<rightMargin>1</rightMargin>
|
||||
<topMargin>1</topMargin>
|
||||
<bottomMargin>1</bottomMargin>
|
||||
<Text>
|
||||
<style>Frame</style>
|
||||
<text>1,2,3, 6,7, 1,2,3,4,5,6,7, 1,2,3, 6,7, 1,7
|
||||
</text>
|
||||
</Text>
|
||||
</TBox>
|
||||
<Measure>
|
||||
<voice>
|
||||
<TimeSig>
|
||||
<sigN>4</sigN>
|
||||
<sigD>4</sigD>
|
||||
</TimeSig>
|
||||
<Tempo>
|
||||
<tempo>6.66667</tempo>
|
||||
<followText>1</followText>
|
||||
<text><b></b><font face="ScoreText"></font><b><font face="FreeSerif"></font> = 400</b></text>
|
||||
</Tempo>
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<pitch>60</pitch>
|
||||
<tpc>14</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<voice>
|
||||
<Spanner type="Volta">
|
||||
<Volta>
|
||||
<endHookType>1</endHookType>
|
||||
<beginText>1-3</beginText>
|
||||
<endings>1, 2, 3</endings>
|
||||
</Volta>
|
||||
<next>
|
||||
<location>
|
||||
<measures>5</measures>
|
||||
</location>
|
||||
</next>
|
||||
</Spanner>
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<pitch>62</pitch>
|
||||
<tpc>16</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<voice>
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<pitch>64</pitch>
|
||||
<tpc>18</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<voice>
|
||||
<Spanner type="Volta">
|
||||
<Volta>
|
||||
<endHookType>1</endHookType>
|
||||
<beginText>2.</beginText>
|
||||
<Segment>
|
||||
<subtype>0</subtype>
|
||||
<offset x="0" y="-5.5"/>
|
||||
<off2 x="0" y="0"/>
|
||||
<minDistance>0.430001</minDistance>
|
||||
</Segment>
|
||||
<endings>2</endings>
|
||||
</Volta>
|
||||
<next>
|
||||
<location>
|
||||
<measures>2</measures>
|
||||
</location>
|
||||
</next>
|
||||
</Spanner>
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<pitch>65</pitch>
|
||||
<tpc>13</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<voice>
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<pitch>67</pitch>
|
||||
<tpc>15</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<voice>
|
||||
<Spanner type="Volta">
|
||||
<prev>
|
||||
<location>
|
||||
<measures>-2</measures>
|
||||
</location>
|
||||
</prev>
|
||||
</Spanner>
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<pitch>71</pitch>
|
||||
<tpc>19</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<endRepeat>4</endRepeat>
|
||||
<voice>
|
||||
<Spanner type="Volta">
|
||||
<prev>
|
||||
<location>
|
||||
<measures>-5</measures>
|
||||
</location>
|
||||
</prev>
|
||||
</Spanner>
|
||||
<Spanner type="TextLine">
|
||||
<TextLine>
|
||||
<lineVisible>0</lineVisible>
|
||||
<endText>4x</endText>
|
||||
<endTextAlign>center,center</endTextAlign>
|
||||
<lineWidth>0.149991</lineWidth>
|
||||
</TextLine>
|
||||
<next>
|
||||
<location>
|
||||
<fractions>1/1</fractions>
|
||||
</location>
|
||||
</next>
|
||||
</Spanner>
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<pitch>72</pitch>
|
||||
<tpc>14</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
<Spanner type="TextLine">
|
||||
<prev>
|
||||
<location>
|
||||
<fractions>-1/1</fractions>
|
||||
</location>
|
||||
</prev>
|
||||
</Spanner>
|
||||
</voice>
|
||||
</Measure>
|
||||
</Staff>
|
||||
</Score>
|
||||
</museScore>
|
262
mtest/libmscore/repeat/repeat62.mscx
Normal file
262
mtest/libmscore/repeat/repeat62.mscx
Normal file
|
@ -0,0 +1,262 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<museScore version="3.01">
|
||||
<Score>
|
||||
<LayerTag id="0" tag="default"></LayerTag>
|
||||
<currentLayer>0</currentLayer>
|
||||
<Division>480</Division>
|
||||
<Style>
|
||||
<showMeasureNumberOne>1</showMeasureNumberOne>
|
||||
<measureNumberInterval>1</measureNumberInterval>
|
||||
<measureNumberSystem>0</measureNumberSystem>
|
||||
<Spatium>1.76389</Spatium>
|
||||
</Style>
|
||||
<showInvisible>1</showInvisible>
|
||||
<showUnprintable>1</showUnprintable>
|
||||
<showFrames>1</showFrames>
|
||||
<showMargins>0</showMargins>
|
||||
<metaTag name="arranger"></metaTag>
|
||||
<metaTag name="composer"></metaTag>
|
||||
<metaTag name="copyright"></metaTag>
|
||||
<metaTag name="lyricist"></metaTag>
|
||||
<metaTag name="movementNumber"></metaTag>
|
||||
<metaTag name="movementTitle"></metaTag>
|
||||
<metaTag name="poet"></metaTag>
|
||||
<metaTag name="source"></metaTag>
|
||||
<metaTag name="translator"></metaTag>
|
||||
<metaTag name="workNumber"></metaTag>
|
||||
<metaTag name="workTitle">Repeat Test</metaTag>
|
||||
<Part>
|
||||
<Staff id="1">
|
||||
<StaffType group="pitched">
|
||||
<name>stdNormal</name>
|
||||
</StaffType>
|
||||
</Staff>
|
||||
<trackName>Piano</trackName>
|
||||
<Instrument>
|
||||
<longName>Piano</longName>
|
||||
<shortName>Pno.</shortName>
|
||||
<trackName>Piano</trackName>
|
||||
<minPitchP>21</minPitchP>
|
||||
<maxPitchP>108</maxPitchP>
|
||||
<minPitchA>21</minPitchA>
|
||||
<maxPitchA>108</maxPitchA>
|
||||
<instrumentId>keyboard.piano</instrumentId>
|
||||
<clef staff="2">F</clef>
|
||||
<Articulation>
|
||||
<velocity>100</velocity>
|
||||
<gateTime>95</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="staccatissimo">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>33</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="staccato">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>50</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="portato">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>67</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="tenuto">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>100</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="marcato">
|
||||
<velocity>120</velocity>
|
||||
<gateTime>67</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="sforzato">
|
||||
<velocity>120</velocity>
|
||||
<gateTime>100</gateTime>
|
||||
</Articulation>
|
||||
<Channel>
|
||||
<program value="0"/>
|
||||
</Channel>
|
||||
</Instrument>
|
||||
</Part>
|
||||
<Staff id="1">
|
||||
<VBox>
|
||||
<height>10</height>
|
||||
<bottomGap>1</bottomGap>
|
||||
<Text>
|
||||
<style>Title</style>
|
||||
<text>repeat62</text>
|
||||
</Text>
|
||||
<Text>
|
||||
<style>Subtitle</style>
|
||||
<text>overlapping voltas - same start</text>
|
||||
</Text>
|
||||
</VBox>
|
||||
<TBox>
|
||||
<height>1</height>
|
||||
<topGap>0</topGap>
|
||||
<leftMargin>1</leftMargin>
|
||||
<rightMargin>1</rightMargin>
|
||||
<topMargin>1</topMargin>
|
||||
<bottomMargin>1</bottomMargin>
|
||||
<Text>
|
||||
<style>Frame</style>
|
||||
<text>1, 5,6,7, 1,2,3,4,5,6,7, 1, 5,6,7, 1,7
|
||||
</text>
|
||||
</Text>
|
||||
</TBox>
|
||||
<Measure>
|
||||
<voice>
|
||||
<TimeSig>
|
||||
<sigN>4</sigN>
|
||||
<sigD>4</sigD>
|
||||
</TimeSig>
|
||||
<Tempo>
|
||||
<tempo>6.66667</tempo>
|
||||
<followText>1</followText>
|
||||
<text><b></b><font face="ScoreText"/><b><font face="FreeSerif"/> = 400</b></text>
|
||||
</Tempo>
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<pitch>60</pitch>
|
||||
<tpc>14</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<voice>
|
||||
<Spanner type="Volta">
|
||||
<Volta>
|
||||
<endHookType>1</endHookType>
|
||||
<beginText>1-3</beginText>
|
||||
<Segment>
|
||||
<subtype>0</subtype>
|
||||
<offset x="0" y="-8.5"/>
|
||||
<off2 x="0" y="0"/>
|
||||
</Segment>
|
||||
<endings>1, 2, 3</endings>
|
||||
</Volta>
|
||||
<next>
|
||||
<location>
|
||||
<measures>5</measures>
|
||||
</location>
|
||||
</next>
|
||||
</Spanner>
|
||||
<Spanner type="Volta">
|
||||
<Volta>
|
||||
<endHookType>1</endHookType>
|
||||
<beginText>2.</beginText>
|
||||
<Segment>
|
||||
<subtype>0</subtype>
|
||||
<offset x="0" y="-5.5"/>
|
||||
<off2 x="0" y="0"/>
|
||||
<minDistance>0.390001</minDistance>
|
||||
</Segment>
|
||||
<endings>2</endings>
|
||||
</Volta>
|
||||
<next>
|
||||
<location>
|
||||
<measures>3</measures>
|
||||
</location>
|
||||
</next>
|
||||
</Spanner>
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<pitch>62</pitch>
|
||||
<tpc>16</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<voice>
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<pitch>64</pitch>
|
||||
<tpc>18</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<voice>
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<pitch>65</pitch>
|
||||
<tpc>13</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<voice>
|
||||
<Spanner type="Volta">
|
||||
<prev>
|
||||
<location>
|
||||
<measures>-3</measures>
|
||||
</location>
|
||||
</prev>
|
||||
</Spanner>
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<pitch>67</pitch>
|
||||
<tpc>15</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<voice>
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<pitch>71</pitch>
|
||||
<tpc>19</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<endRepeat>4</endRepeat>
|
||||
<voice>
|
||||
<Spanner type="Volta">
|
||||
<prev>
|
||||
<location>
|
||||
<measures>-5</measures>
|
||||
</location>
|
||||
</prev>
|
||||
</Spanner>
|
||||
<Spanner type="TextLine">
|
||||
<TextLine>
|
||||
<lineVisible>0</lineVisible>
|
||||
<endText>4x</endText>
|
||||
<endTextAlign>center,center</endTextAlign>
|
||||
<lineWidth>0.149991</lineWidth>
|
||||
</TextLine>
|
||||
<next>
|
||||
<location>
|
||||
<fractions>1/1</fractions>
|
||||
</location>
|
||||
</next>
|
||||
</Spanner>
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<pitch>72</pitch>
|
||||
<tpc>14</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
<Spanner type="TextLine">
|
||||
<prev>
|
||||
<location>
|
||||
<fractions>-1/1</fractions>
|
||||
</location>
|
||||
</prev>
|
||||
</Spanner>
|
||||
</voice>
|
||||
</Measure>
|
||||
</Staff>
|
||||
</Score>
|
||||
</museScore>
|
256
mtest/libmscore/repeat/repeat63.mscx
Normal file
256
mtest/libmscore/repeat/repeat63.mscx
Normal file
|
@ -0,0 +1,256 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<museScore version="3.01">
|
||||
<Score>
|
||||
<LayerTag id="0" tag="default"></LayerTag>
|
||||
<currentLayer>0</currentLayer>
|
||||
<Division>480</Division>
|
||||
<Style>
|
||||
<showMeasureNumberOne>1</showMeasureNumberOne>
|
||||
<measureNumberInterval>1</measureNumberInterval>
|
||||
<measureNumberSystem>0</measureNumberSystem>
|
||||
<Spatium>1.76389</Spatium>
|
||||
</Style>
|
||||
<showInvisible>1</showInvisible>
|
||||
<showUnprintable>1</showUnprintable>
|
||||
<showFrames>1</showFrames>
|
||||
<showMargins>0</showMargins>
|
||||
<metaTag name="arranger"></metaTag>
|
||||
<metaTag name="composer"></metaTag>
|
||||
<metaTag name="copyright"></metaTag>
|
||||
<metaTag name="lyricist"></metaTag>
|
||||
<metaTag name="movementNumber"></metaTag>
|
||||
<metaTag name="movementTitle"></metaTag>
|
||||
<metaTag name="poet"></metaTag>
|
||||
<metaTag name="source"></metaTag>
|
||||
<metaTag name="translator"></metaTag>
|
||||
<metaTag name="workNumber"></metaTag>
|
||||
<metaTag name="workTitle">Repeat Test</metaTag>
|
||||
<Part>
|
||||
<Staff id="1">
|
||||
<StaffType group="pitched">
|
||||
<name>stdNormal</name>
|
||||
</StaffType>
|
||||
</Staff>
|
||||
<trackName>Piano</trackName>
|
||||
<Instrument>
|
||||
<longName>Piano</longName>
|
||||
<shortName>Pno.</shortName>
|
||||
<trackName>Piano</trackName>
|
||||
<minPitchP>21</minPitchP>
|
||||
<maxPitchP>108</maxPitchP>
|
||||
<minPitchA>21</minPitchA>
|
||||
<maxPitchA>108</maxPitchA>
|
||||
<instrumentId>keyboard.piano</instrumentId>
|
||||
<clef staff="2">F</clef>
|
||||
<Articulation>
|
||||
<velocity>100</velocity>
|
||||
<gateTime>95</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="staccatissimo">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>33</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="staccato">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>50</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="portato">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>67</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="tenuto">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>100</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="marcato">
|
||||
<velocity>120</velocity>
|
||||
<gateTime>67</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="sforzato">
|
||||
<velocity>120</velocity>
|
||||
<gateTime>100</gateTime>
|
||||
</Articulation>
|
||||
<Channel>
|
||||
<program value="0"/>
|
||||
</Channel>
|
||||
</Instrument>
|
||||
</Part>
|
||||
<Staff id="1">
|
||||
<VBox>
|
||||
<height>10</height>
|
||||
<bottomGap>1</bottomGap>
|
||||
<Text>
|
||||
<style>Title</style>
|
||||
<text>repeat63</text>
|
||||
</Text>
|
||||
<Text>
|
||||
<style>Subtitle</style>
|
||||
<text>overlapping voltas - same end</text>
|
||||
</Text>
|
||||
</VBox>
|
||||
<TBox>
|
||||
<height>1</height>
|
||||
<topGap>0</topGap>
|
||||
<leftMargin>1</leftMargin>
|
||||
<rightMargin>1</rightMargin>
|
||||
<topMargin>1</topMargin>
|
||||
<bottomMargin>1</bottomMargin>
|
||||
<Text>
|
||||
<style>Frame</style>
|
||||
<text>1,2,3, 7, 1,2,3,4,5,6,7, 1,2,3, 7, 1,7
|
||||
</text>
|
||||
</Text>
|
||||
</TBox>
|
||||
<Measure>
|
||||
<voice>
|
||||
<TimeSig>
|
||||
<sigN>4</sigN>
|
||||
<sigD>4</sigD>
|
||||
</TimeSig>
|
||||
<Tempo>
|
||||
<tempo>6.66667</tempo>
|
||||
<followText>1</followText>
|
||||
<text><b></b><font face="ScoreText"/><b><font face="FreeSerif"/> = 400</b></text>
|
||||
</Tempo>
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<pitch>60</pitch>
|
||||
<tpc>14</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<voice>
|
||||
<Spanner type="Volta">
|
||||
<Volta>
|
||||
<endHookType>1</endHookType>
|
||||
<beginText>1-3</beginText>
|
||||
<Segment>
|
||||
<subtype>0</subtype>
|
||||
<offset x="0" y="-8.5"/>
|
||||
<off2 x="0" y="0"/>
|
||||
</Segment>
|
||||
<endings>1, 2, 3</endings>
|
||||
</Volta>
|
||||
<next>
|
||||
<location>
|
||||
<measures>5</measures>
|
||||
</location>
|
||||
</next>
|
||||
</Spanner>
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<pitch>62</pitch>
|
||||
<tpc>16</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<voice>
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<pitch>64</pitch>
|
||||
<tpc>18</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<voice>
|
||||
<Spanner type="Volta">
|
||||
<Volta>
|
||||
<endHookType>1</endHookType>
|
||||
<beginText>2.</beginText>
|
||||
<endings>2</endings>
|
||||
</Volta>
|
||||
<next>
|
||||
<location>
|
||||
<measures>3</measures>
|
||||
</location>
|
||||
</next>
|
||||
</Spanner>
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<pitch>65</pitch>
|
||||
<tpc>13</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<voice>
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<pitch>67</pitch>
|
||||
<tpc>15</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<voice>
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<pitch>71</pitch>
|
||||
<tpc>19</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<endRepeat>4</endRepeat>
|
||||
<voice>
|
||||
<Spanner type="Volta">
|
||||
<prev>
|
||||
<location>
|
||||
<measures>-5</measures>
|
||||
</location>
|
||||
</prev>
|
||||
</Spanner>
|
||||
<Spanner type="Volta">
|
||||
<prev>
|
||||
<location>
|
||||
<measures>-3</measures>
|
||||
</location>
|
||||
</prev>
|
||||
</Spanner>
|
||||
<Spanner type="TextLine">
|
||||
<TextLine>
|
||||
<lineVisible>0</lineVisible>
|
||||
<endText>4x</endText>
|
||||
<endTextAlign>center,center</endTextAlign>
|
||||
<lineWidth>0.149991</lineWidth>
|
||||
</TextLine>
|
||||
<next>
|
||||
<location>
|
||||
<fractions>1/1</fractions>
|
||||
</location>
|
||||
</next>
|
||||
</Spanner>
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<pitch>72</pitch>
|
||||
<tpc>14</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
<Spanner type="TextLine">
|
||||
<prev>
|
||||
<location>
|
||||
<fractions>-1/1</fractions>
|
||||
</location>
|
||||
</prev>
|
||||
</Spanner>
|
||||
</voice>
|
||||
</Measure>
|
||||
</Staff>
|
||||
</Score>
|
||||
</museScore>
|
256
mtest/libmscore/repeat/repeat64.mscx
Normal file
256
mtest/libmscore/repeat/repeat64.mscx
Normal file
|
@ -0,0 +1,256 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<museScore version="3.01">
|
||||
<Score>
|
||||
<LayerTag id="0" tag="default"></LayerTag>
|
||||
<currentLayer>0</currentLayer>
|
||||
<Division>480</Division>
|
||||
<Style>
|
||||
<showMeasureNumberOne>1</showMeasureNumberOne>
|
||||
<measureNumberInterval>1</measureNumberInterval>
|
||||
<measureNumberSystem>0</measureNumberSystem>
|
||||
<Spatium>1.76389</Spatium>
|
||||
</Style>
|
||||
<showInvisible>1</showInvisible>
|
||||
<showUnprintable>1</showUnprintable>
|
||||
<showFrames>1</showFrames>
|
||||
<showMargins>0</showMargins>
|
||||
<metaTag name="arranger"></metaTag>
|
||||
<metaTag name="composer"></metaTag>
|
||||
<metaTag name="copyright"></metaTag>
|
||||
<metaTag name="lyricist"></metaTag>
|
||||
<metaTag name="movementNumber"></metaTag>
|
||||
<metaTag name="movementTitle"></metaTag>
|
||||
<metaTag name="poet"></metaTag>
|
||||
<metaTag name="source"></metaTag>
|
||||
<metaTag name="translator"></metaTag>
|
||||
<metaTag name="workNumber"></metaTag>
|
||||
<metaTag name="workTitle">Repeat Test</metaTag>
|
||||
<Part>
|
||||
<Staff id="1">
|
||||
<StaffType group="pitched">
|
||||
<name>stdNormal</name>
|
||||
</StaffType>
|
||||
</Staff>
|
||||
<trackName>Piano</trackName>
|
||||
<Instrument>
|
||||
<longName>Piano</longName>
|
||||
<shortName>Pno.</shortName>
|
||||
<trackName>Piano</trackName>
|
||||
<minPitchP>21</minPitchP>
|
||||
<maxPitchP>108</maxPitchP>
|
||||
<minPitchA>21</minPitchA>
|
||||
<maxPitchA>108</maxPitchA>
|
||||
<instrumentId>keyboard.piano</instrumentId>
|
||||
<clef staff="2">F</clef>
|
||||
<Articulation>
|
||||
<velocity>100</velocity>
|
||||
<gateTime>95</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="staccatissimo">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>33</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="staccato">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>50</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="portato">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>67</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="tenuto">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>100</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="marcato">
|
||||
<velocity>120</velocity>
|
||||
<gateTime>67</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="sforzato">
|
||||
<velocity>120</velocity>
|
||||
<gateTime>100</gateTime>
|
||||
</Articulation>
|
||||
<Channel>
|
||||
<program value="0"/>
|
||||
</Channel>
|
||||
</Instrument>
|
||||
</Part>
|
||||
<Staff id="1">
|
||||
<VBox>
|
||||
<height>10</height>
|
||||
<bottomGap>1</bottomGap>
|
||||
<Text>
|
||||
<style>Title</style>
|
||||
<text>repeat64</text>
|
||||
</Text>
|
||||
<Text>
|
||||
<style>Subtitle</style>
|
||||
<text>overlapping voltas</text>
|
||||
</Text>
|
||||
</VBox>
|
||||
<TBox>
|
||||
<height>1</height>
|
||||
<topGap>0</topGap>
|
||||
<leftMargin>1</leftMargin>
|
||||
<rightMargin>1</rightMargin>
|
||||
<topMargin>1</topMargin>
|
||||
<bottomMargin>1</bottomMargin>
|
||||
<Text>
|
||||
<style>Frame</style>
|
||||
<text>1,2,3, 7, 1,2,3,4,5,6,7, 1,2,3, 7, 1,7
|
||||
</text>
|
||||
</Text>
|
||||
</TBox>
|
||||
<Measure>
|
||||
<voice>
|
||||
<TimeSig>
|
||||
<sigN>4</sigN>
|
||||
<sigD>4</sigD>
|
||||
</TimeSig>
|
||||
<Tempo>
|
||||
<tempo>6.66667</tempo>
|
||||
<followText>1</followText>
|
||||
<text><b></b><font face="ScoreText"/><b><font face="FreeSerif"/> = 400</b></text>
|
||||
</Tempo>
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<pitch>60</pitch>
|
||||
<tpc>14</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<voice>
|
||||
<Spanner type="Volta">
|
||||
<Volta>
|
||||
<endHookType>1</endHookType>
|
||||
<beginText>1-3</beginText>
|
||||
<Segment>
|
||||
<subtype>0</subtype>
|
||||
<offset x="0" y="-8.5"/>
|
||||
<off2 x="0" y="0"/>
|
||||
</Segment>
|
||||
<endings>1, 2, 3</endings>
|
||||
</Volta>
|
||||
<next>
|
||||
<location>
|
||||
<measures>3</measures>
|
||||
</location>
|
||||
</next>
|
||||
</Spanner>
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<pitch>62</pitch>
|
||||
<tpc>16</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<voice>
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<pitch>64</pitch>
|
||||
<tpc>18</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<voice>
|
||||
<Spanner type="Volta">
|
||||
<Volta>
|
||||
<endHookType>1</endHookType>
|
||||
<beginText>2.</beginText>
|
||||
<endings>2</endings>
|
||||
</Volta>
|
||||
<next>
|
||||
<location>
|
||||
<measures>3</measures>
|
||||
</location>
|
||||
</next>
|
||||
</Spanner>
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<pitch>65</pitch>
|
||||
<tpc>13</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<voice>
|
||||
<Spanner type="Volta">
|
||||
<prev>
|
||||
<location>
|
||||
<measures>-3</measures>
|
||||
</location>
|
||||
</prev>
|
||||
</Spanner>
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<pitch>67</pitch>
|
||||
<tpc>15</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<voice>
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<pitch>71</pitch>
|
||||
<tpc>19</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</voice>
|
||||
</Measure>
|
||||
<Measure>
|
||||
<endRepeat>4</endRepeat>
|
||||
<voice>
|
||||
<Spanner type="Volta">
|
||||
<prev>
|
||||
<location>
|
||||
<measures>-3</measures>
|
||||
</location>
|
||||
</prev>
|
||||
</Spanner>
|
||||
<Spanner type="TextLine">
|
||||
<TextLine>
|
||||
<lineVisible>0</lineVisible>
|
||||
<endText>4x</endText>
|
||||
<endTextAlign>center,center</endTextAlign>
|
||||
<lineWidth>0.149991</lineWidth>
|
||||
</TextLine>
|
||||
<next>
|
||||
<location>
|
||||
<fractions>1/1</fractions>
|
||||
</location>
|
||||
</next>
|
||||
</Spanner>
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<pitch>72</pitch>
|
||||
<tpc>14</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
<Spanner type="TextLine">
|
||||
<prev>
|
||||
<location>
|
||||
<fractions>-1/1</fractions>
|
||||
</location>
|
||||
</prev>
|
||||
</Spanner>
|
||||
</voice>
|
||||
</Measure>
|
||||
</Staff>
|
||||
</Score>
|
||||
</museScore>
|
|
@ -114,6 +114,14 @@ private slots:
|
|||
|
||||
void repeat56() { repeat("repeat56.mscx", "1;2;3;4; 2; 5;6;7; 5;6;7;8"); } // start of volta and start repeat on same measure
|
||||
void repeat57() { repeat("repeat57.mscx", "1;2;3"); } // no repeat, skip volta until section end, relates to #274690
|
||||
|
||||
void repeat58() { repeat("repeat58.mscx", "1;2; 1; 3;4;5; 4; 6;7"); } // duplicate voltas #311986 - single instrument
|
||||
void repeat59() { repeat("repeat59.mscx", "1;2; 1; 3;4;5; 4; 6;7"); } // duplicate voltas #311986 - multiple instruments
|
||||
void repeat60() { repeat("repeat60.mscx", "1;2;6;7; 1;2;3;6;7; 1;2;3;4;5;6;7; 1;2;3;6;7; 1;2;6;7; 1;7"); } // overlapping voltas
|
||||
void repeat61() { repeat("repeat61.mscx", "1;2;3;6;7; 1;2;3;4;5;6;7; 1;2;3;6;7; 1;7"); } // overlapping voltas - nested
|
||||
void repeat62() { repeat("repeat62.mscx", "1;5;6;7; 1;2;3;4;5;6;7; 1;5;6;7; 1;7"); } // overlapping voltas - same start
|
||||
void repeat63() { repeat("repeat63.mscx", "1;2;3;7; 1;2;3;4;5;6;7; 1;2;3;7; 1;7"); } // overlapping voltas - same end
|
||||
void repeat64() { repeat("repeat64.mscx", "1;2;3;7; 1;2;3;4;5;6;7; 1;2;3;7; 1;7"); } // overlapping voltas
|
||||
};
|
||||
|
||||
//---------------------------------------------------------
|
||||
|
|
Loading…
Reference in a new issue