Skip to content

Commit

Permalink
gp-import: expanding spanner when it ends on uncompleted measure
Browse files Browse the repository at this point in the history
  • Loading branch information
alexpavlov96 committed Jul 5, 2023
1 parent 174b7f7 commit 6f0c6e9
Show file tree
Hide file tree
Showing 8 changed files with 341 additions and 0 deletions.
1 change: 1 addition & 0 deletions src/importexport/guitarpro/internal/importgtp-gp4.cpp
Expand Up @@ -1103,6 +1103,7 @@ bool GuitarPro4::read(IODevice* io)
}
if (measureLen < measure->ticks()) {
score->setRest(tick, track, measure->ticks() - measureLen, false, nullptr, false);
m_continiousElementsBuilder->notifyUncompletedMeasure();
}
}

Expand Down
1 change: 1 addition & 0 deletions src/importexport/guitarpro/internal/importgtp-gp5.cpp
Expand Up @@ -463,6 +463,7 @@ void GuitarPro5::readMeasure(Measure* measure, int staffIdx, Tuplet** tuplets, b
}
if (measureLen < measure->ticks()) {
score->setRest(tick, staffIdx * VOICES + voice, measure->ticks() - measureLen, false, nullptr, false);
m_continiousElementsBuilder->notifyUncompletedMeasure();
}
}
}
Expand Down
3 changes: 3 additions & 0 deletions src/importexport/guitarpro/internal/importgtp.cpp
Expand Up @@ -1296,6 +1296,7 @@ bool GuitarPro1::read(IODevice* io)
}
if (measureLen < measure->ticks()) {
score->setRest(fraction, track, measure->ticks() - measureLen, false, nullptr, false);
m_continiousElementsBuilder->notifyUncompletedMeasure();
}
}
if (bar == 1 && !mixChange) {
Expand Down Expand Up @@ -1810,6 +1811,7 @@ bool GuitarPro2::read(IODevice* io)
}
if (measureLen < measure->ticks()) {
score->setRest(fraction, track, measure->ticks() - measureLen, false, nullptr, false);
m_continiousElementsBuilder->notifyUncompletedMeasure();
}
}
if (bar == 1 && !mixChange) {
Expand Down Expand Up @@ -2626,6 +2628,7 @@ bool GuitarPro3::read(IODevice* io)
}
if (measureLen < measure->ticks()) {
score->setRest(fraction, track, measure->ticks() - measureLen, false, nullptr, false);
m_continiousElementsBuilder->notifyUncompletedMeasure();
}
bool removeRests = true;
int counter = 0;
Expand Down
Binary file not shown.
@@ -0,0 +1,167 @@
<?xml version="1.0" encoding="UTF-8"?>
<museScore version="4.10">
<Score>
<Division>480</Division>
<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"></metaTag>
<Part id="1">
<Staff id="1">
<StaffType group="pitched">
<name>stdNormal</name>
</StaffType>
</Staff>
<trackName>Electric Guitar</trackName>
<Instrument id="electric-guitar">
<longName>Electric Guitar</longName>
<shortName>jz.guit.</shortName>
<trackName></trackName>
<transposeDiatonic>-7</transposeDiatonic>
<transposeChromatic>-12</transposeChromatic>
<instrumentId>pluck.guitar.electric</instrumentId>
<singleNoteDynamics>0</singleNoteDynamics>
<StringData>
<frets>24</frets>
<string>52</string>
<string>57</string>
<string>62</string>
<string>67</string>
<string>71</string>
<string>76</string>
</StringData>
<Articulation name="staccatissimo">
<velocity>100</velocity>
<gateTime>30</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="accent">
<velocity>120</velocity>
<gateTime>67</gateTime>
</Articulation>
<Articulation name="marcato">
<velocity>144</velocity>
<gateTime>67</gateTime>
</Articulation>
<Articulation name="sforzato">
<velocity>169</velocity>
<gateTime>100</gateTime>
</Articulation>
<Channel>
<program value="26"/>
<controller ctrl="7" value="101"/>
</Channel>
</Instrument>
</Part>
<Staff id="1">
<Measure>
<voice>
<KeySig>
<concertKey>0</concertKey>
</KeySig>
<TimeSig>
<sigN>4</sigN>
<sigD>4</sigD>
</TimeSig>
<Dynamic>
<subtype>mf</subtype>
<velocity>80</velocity>
</Dynamic>
<Tempo>
<tempo>2</tempo>
<text><sym>metNoteQuarterUp</sym> = 120</text>
</Tempo>
<Spanner type="LetRing">
<LetRing>
</LetRing>
<next>
<location>
<measures>1</measures>
<fractions>1/2</fractions>
</location>
</next>
</Spanner>
<Chord>
<durationType>quarter</durationType>
<Note>
<pitch>64</pitch>
<tpc>18</tpc>
<fret>5</fret>
<string>1</string>
</Note>
</Chord>
<Chord>
<durationType>quarter</durationType>
<Note>
<pitch>64</pitch>
<tpc>18</tpc>
<fret>5</fret>
<string>1</string>
</Note>
</Chord>
<Rest>
<durationType>half</durationType>
</Rest>
</voice>
</Measure>
<Measure>
<voice>
<Chord>
<durationType>quarter</durationType>
<Note>
<pitch>64</pitch>
<tpc>18</tpc>
<fret>0</fret>
<string>0</string>
</Note>
</Chord>
<Chord>
<durationType>quarter</durationType>
<Note>
<pitch>64</pitch>
<tpc>18</tpc>
<fret>0</fret>
<string>0</string>
</Note>
</Chord>
<Spanner type="LetRing">
<prev>
<location>
<measures>-1</measures>
<fractions>-1/2</fractions>
</location>
</prev>
</Spanner>
<Rest>
<durationType>half</durationType>
</Rest>
<BarLine>
<subtype>end</subtype>
</BarLine>
</voice>
</Measure>
</Staff>
</Score>
</museScore>
Binary file not shown.
@@ -0,0 +1,163 @@
<?xml version="1.0" encoding="UTF-8"?>
<museScore version="4.10">
<Score>
<Division>480</Division>
<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"></metaTag>
<Part id="1">
<Staff id="1">
<StaffType group="pitched">
<name>stdNormal</name>
</StaffType>
<defaultClef>G8vb</defaultClef>
</Staff>
<trackName>Electric Guitar</trackName>
<Instrument id="electric-guitar">
<longName>Electric Guitar</longName>
<trackName></trackName>
<instrumentId>pluck.guitar.electric</instrumentId>
<singleNoteDynamics>0</singleNoteDynamics>
<StringData>
<frets>30</frets>
<string>40</string>
<string>45</string>
<string>50</string>
<string>55</string>
<string>59</string>
<string>64</string>
</StringData>
<Articulation name="staccatissimo">
<velocity>100</velocity>
<gateTime>30</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="accent">
<velocity>120</velocity>
<gateTime>67</gateTime>
</Articulation>
<Articulation name="marcato">
<velocity>144</velocity>
<gateTime>67</gateTime>
</Articulation>
<Articulation name="sforzato">
<velocity>169</velocity>
<gateTime>100</gateTime>
</Articulation>
<Channel>
<program value="26"/>
<controller ctrl="7" value="119"/>
<controller ctrl="10" value="63"/>
</Channel>
</Instrument>
</Part>
<Staff id="1">
<Measure>
<voice>
<KeySig>
<concertKey>0</concertKey>
</KeySig>
<TimeSig>
<sigN>4</sigN>
<sigD>4</sigD>
</TimeSig>
<Dynamic>
<subtype>mf</subtype>
<velocity>80</velocity>
</Dynamic>
<Tempo>
<tempo>2</tempo>
<text><sym>metNoteQuarterUp</sym> = 120</text>
</Tempo>
<Spanner type="LetRing">
<LetRing>
</LetRing>
<next>
<location>
<measures>1</measures>
<fractions>1/2</fractions>
</location>
</next>
</Spanner>
<Chord>
<durationType>quarter</durationType>
<Note>
<pitch>64</pitch>
<tpc>18</tpc>
<fret>5</fret>
<string>1</string>
</Note>
</Chord>
<Chord>
<durationType>quarter</durationType>
<Note>
<pitch>64</pitch>
<tpc>18</tpc>
<fret>5</fret>
<string>1</string>
</Note>
</Chord>
<Rest>
<durationType>half</durationType>
</Rest>
</voice>
</Measure>
<Measure>
<voice>
<Chord>
<durationType>quarter</durationType>
<Note>
<pitch>64</pitch>
<tpc>18</tpc>
<fret>0</fret>
<string>0</string>
</Note>
</Chord>
<Chord>
<durationType>quarter</durationType>
<Note>
<pitch>64</pitch>
<tpc>18</tpc>
<fret>0</fret>
<string>0</string>
</Note>
</Chord>
<Spanner type="LetRing">
<prev>
<location>
<measures>-1</measures>
<fractions>-1/2</fractions>
</location>
</prev>
</Spanner>
<Rest>
<durationType>half</durationType>
</Rest>
</voice>
</Measure>
</Staff>
</Score>
</museScore>
6 changes: 6 additions & 0 deletions src/importexport/guitarpro/tests/guitarpro_tests.cpp
Expand Up @@ -734,4 +734,10 @@ TEST_F(GuitarPro_Tests, gp5LetRingTied) {
TEST_F(GuitarPro_Tests, gpPercussionBeams) {
gpReadTest("percussion-beams", "gp");
}
TEST_F(GuitarPro_Tests, gpSpannerInUncompleteMeasure) {
gpReadTest("spanner-in-uncomplete-measure", "gp");
}
TEST_F(GuitarPro_Tests, gp5SpannerInUncompleteMeasure) {
gpReadTest("spanner-in-uncomplete-measure", "gp5");
}
}

0 comments on commit 6f0c6e9

Please sign in to comment.