Skip to content

Commit

Permalink
Merge pull request #11413 from lvinken/331336-musicxml-barlines-master
Browse files Browse the repository at this point in the history
Fix #331336: Importing MusicXML causes numerous 'courtesy clefs'
  • Loading branch information
RomanPudashkin committed Apr 27, 2022
2 parents b10e37c + 209ca94 commit 6d8ed43
Show file tree
Hide file tree
Showing 4 changed files with 390 additions and 1 deletion.
Expand Up @@ -3431,6 +3431,7 @@ static void addBarlineToMeasure(Measure* measure, const Fraction tick, std::uniq
- end-start repeat
- end repeat
- final
Regular barlines should not be added at the start or end of a measure, as that could lead to inconsistent behaviour.
*/

void MusicXMLParserPass2::barline(const QString& partId, Measure* measure, const Fraction& tick)
Expand Down Expand Up @@ -3485,7 +3486,7 @@ void MusicXMLParserPass2::barline(const QString& partId, Measure* measure, const
|| barStyle == "dashed"
|| barStyle == "dotted"
|| barStyle == "light-light"
|| barStyle == "regular") {
|| (barStyle == "regular" && !(loc == "left" || loc == "right"))) {
auto b = createBarline(measure->score(), track, type, visible, barStyle);
addBarlineToMeasure(measure, tick, std::move(b));
}
Expand Down
179 changes: 179 additions & 0 deletions src/importexport/musicxml/tests/data/testUnnecessaryBarlines.xml
@@ -0,0 +1,179 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 3.1 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd">
<score-partwise version="3.1">
<identification>
<encoding>
<software>MuseScore 0.7.0</software>
<encoding-date>2007-09-10</encoding-date>
<supports element="accidental" type="yes"/>
<supports element="beam" type="yes"/>
<supports element="print" attribute="new-page" type="no"/>
<supports element="print" attribute="new-system" type="no"/>
<supports element="stem" type="yes"/>
</encoding>
</identification>
<part-list>
<score-part id="P1">
<part-name>Piano</part-name>
<part-abbreviation>Pno.</part-abbreviation>
<score-instrument id="P1-I1">
<instrument-name>Piano</instrument-name>
</score-instrument>
<midi-device id="P1-I1" port="1"></midi-device>
<midi-instrument id="P1-I1">
<midi-channel>1</midi-channel>
<midi-program>1</midi-program>
<volume>78.7402</volume>
<pan>0</pan>
</midi-instrument>
</score-part>
</part-list>
<part id="P1">
<measure number="1">
<attributes>
<divisions>1</divisions>
<key>
<fifths>0</fifths>
</key>
<time>
<beats>4</beats>
<beat-type>4</beat-type>
</time>
<clef>
<sign>G</sign>
<line>2</line>
</clef>
</attributes>
<direction placement="above">
<direction-type>
<words>_ _ _</words>
</direction-type>
</direction>
<note>
<pitch>
<step>G</step>
<octave>4</octave>
</pitch>
<duration>4</duration>
<voice>1</voice>
<type>whole</type>
</note>
</measure>
<measure number="2">
<direction placement="above">
<direction-type>
<words>_ _ R</words>
</direction-type>
</direction>
<note>
<pitch>
<step>G</step>
<octave>4</octave>
</pitch>
<duration>4</duration>
<voice>1</voice>
<type>whole</type>
</note>
<barline location="right">
<bar-style>regular</bar-style>
</barline>
</measure>
<measure number="3">
<direction placement="above">
<direction-type>
<words>_ _ R</words>
</direction-type>
</direction>
<note>
<pitch>
<step>G</step>
<octave>4</octave>
</pitch>
<duration>4</duration>
<voice>1</voice>
<type>whole</type>
</note>
<barline location="right">
<bar-style>regular</bar-style>
</barline>
</measure>
<measure number="4">
<barline location="left">
<bar-style>regular</bar-style>
</barline>
<direction placement="above">
<direction-type>
<words>L _ _</words>
</direction-type>
</direction>
<note>
<pitch>
<step>G</step>
<octave>4</octave>
</pitch>
<duration>4</duration>
<voice>1</voice>
<type>whole</type>
</note>
</measure>
<measure number="5">
<barline location="left">
<bar-style>regular</bar-style>
</barline>
<direction placement="above">
<direction-type>
<words>L _ _</words>
</direction-type>
</direction>
<note>
<pitch>
<step>G</step>
<octave>4</octave>
</pitch>
<duration>4</duration>
<voice>1</voice>
<type>whole</type>
</note>
</measure>
<measure number="6">
<direction placement="above">
<direction-type>
<words>_ M _</words>
</direction-type>
</direction>
<note>
<pitch>
<step>G</step>
<octave>4</octave>
</pitch>
<duration>2</duration>
<voice>1</voice>
<type>half</type>
<stem>up</stem>
</note>
<barline location="middle">
<bar-style>regular</bar-style>
</barline>
<note>
<pitch>
<step>G</step>
<octave>4</octave>
</pitch>
<duration>2</duration>
<voice>1</voice>
<type>half</type>
<stem>up</stem>
</note>
</measure>
<measure number="7">
<note>
<rest measure="yes"/>
<duration>4</duration>
<voice>1</voice>
</note>
<barline location="right">
<bar-style>light-heavy</bar-style>
</barline>
</measure>
</part>
</score-partwise>

0 comments on commit 6d8ed43

Please sign in to comment.