Skip to content

Commit 78fbab1

Browse files
authored
Merge pull request #4015 from handrok/GP6_Full_Measure
fix #277016: Changing behavior of reading GTP file with incomplete measure
2 parents 4eb9e28 + b3f2d1b commit 78fbab1

File tree

4 files changed

+337
-5
lines changed

4 files changed

+337
-5
lines changed

mscore/importgtp-gp6.cpp

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1945,11 +1945,9 @@ void GuitarPro6::readBars(QDomNode* barList, Measure* measure, ClefType oldClefI
19451945
// deal with possible anacrusis
19461946
if (ticks < measure->ticks() && voiceNum == 0) {
19471947
int mticks = measure->ticks();
1948-
measure->setLen(Fraction::fromTicks(ticks));
1949-
int offset = mticks - measure->ticks();
1950-
for (Measure* m = measure->nextMeasure(); m; m = m->nextMeasure()) {
1951-
m->setTick(m->tick() - offset);
1952-
}
1948+
int tickOffSet = mticks - ticks;
1949+
int track = staffIdx * VOICES + voiceNum;
1950+
score->setRest(ticks + measure->tick(), track, Fraction::fromTicks(tickOffSet), true, nullptr, true);
19531951
}
19541952
}
19551953
}
19.1 KB
Binary file not shown.
Lines changed: 333 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,333 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<museScore version="3.01">
3+
<Score>
4+
<LayerTag id="0" tag="default"></LayerTag>
5+
<currentLayer>0</currentLayer>
6+
<Division>480</Division>
7+
<Style>
8+
<ArpeggioHiddenInStdIfTab>1</ArpeggioHiddenInStdIfTab>
9+
<Spatium>1.76389</Spatium>
10+
</Style>
11+
<showInvisible>1</showInvisible>
12+
<showUnprintable>1</showUnprintable>
13+
<showFrames>1</showFrames>
14+
<showMargins>0</showMargins>
15+
<metaTag name="arranger"></metaTag>
16+
<metaTag name="composer"></metaTag>
17+
<metaTag name="copyright"></metaTag>
18+
<metaTag name="lyricist"></metaTag>
19+
<metaTag name="movementNumber"></metaTag>
20+
<metaTag name="movementTitle"></metaTag>
21+
<metaTag name="poet"></metaTag>
22+
<metaTag name="source"></metaTag>
23+
<metaTag name="translator"></metaTag>
24+
<metaTag name="workNumber"></metaTag>
25+
<metaTag name="workTitle"></metaTag>
26+
<Part>
27+
<Staff id="1">
28+
<StaffType group="pitched">
29+
</StaffType>
30+
</Staff>
31+
<trackName>el.guit.</trackName>
32+
<Instrument>
33+
<longName>Electric Guitar</longName>
34+
<shortName>El. Guit.</shortName>
35+
<trackName>Electric Guitar (Treble Clef)</trackName>
36+
<minPitchP>40</minPitchP>
37+
<maxPitchP>88</maxPitchP>
38+
<minPitchA>40</minPitchA>
39+
<maxPitchA>86</maxPitchA>
40+
<transposeDiatonic>-7</transposeDiatonic>
41+
<transposeChromatic>-12</transposeChromatic>
42+
<instrumentId>pluck.guitar.electric</instrumentId>
43+
<clef>G8vb</clef>
44+
<StringData>
45+
<frets>24</frets>
46+
<string>52</string>
47+
<string>57</string>
48+
<string>62</string>
49+
<string>67</string>
50+
<string>71</string>
51+
<string>76</string>
52+
</StringData>
53+
<Articulation>
54+
<velocity>100</velocity>
55+
<gateTime>100</gateTime>
56+
</Articulation>
57+
<Articulation name="staccatissimo">
58+
<velocity>100</velocity>
59+
<gateTime>33</gateTime>
60+
</Articulation>
61+
<Articulation name="staccato">
62+
<velocity>100</velocity>
63+
<gateTime>50</gateTime>
64+
</Articulation>
65+
<Articulation name="portato">
66+
<velocity>100</velocity>
67+
<gateTime>67</gateTime>
68+
</Articulation>
69+
<Articulation name="tenuto">
70+
<velocity>100</velocity>
71+
<gateTime>100</gateTime>
72+
</Articulation>
73+
<Articulation name="marcato">
74+
<velocity>120</velocity>
75+
<gateTime>67</gateTime>
76+
</Articulation>
77+
<Articulation name="sforzato">
78+
<velocity>120</velocity>
79+
<gateTime>100</gateTime>
80+
</Articulation>
81+
<Channel>
82+
<program value="27"/>
83+
</Channel>
84+
</Instrument>
85+
</Part>
86+
<Staff id="1">
87+
<VBox>
88+
<height>10</height>
89+
<linkedMain/>
90+
</VBox>
91+
<Measure>
92+
<voice>
93+
<Clef>
94+
<concertClefType>G</concertClefType>
95+
<transposingClefType>G</transposingClefType>
96+
<linkedMain/>
97+
</Clef>
98+
<KeySig>
99+
<linkedMain/>
100+
<accidental>0</accidental>
101+
</KeySig>
102+
<TimeSig>
103+
<linkedMain/>
104+
<sigN>4</sigN>
105+
<sigD>4</sigD>
106+
</TimeSig>
107+
<Dynamic>
108+
<subtype>mf</subtype>
109+
<velocity>80</velocity>
110+
<linkedMain/>
111+
</Dynamic>
112+
<Tempo>
113+
<tempo>2</tempo>
114+
<linkedMain/>
115+
<text><sym>metNoteQuarterUp</sym> = 120</text>
116+
</Tempo>
117+
<Chord>
118+
<linkedMain/>
119+
<durationType>quarter</durationType>
120+
<Note>
121+
<linkedMain/>
122+
<pitch>65</pitch>
123+
<tpc>13</tpc>
124+
<fret>1</fret>
125+
<string>0</string>
126+
</Note>
127+
</Chord>
128+
<Rest>
129+
<linkedMain/>
130+
<dots>1</dots>
131+
<durationType>half</durationType>
132+
</Rest>
133+
</voice>
134+
</Measure>
135+
</Staff>
136+
<Score>
137+
<LayerTag id="0" tag="default"></LayerTag>
138+
<currentLayer>0</currentLayer>
139+
<Division>480</Division>
140+
<Style>
141+
<ArpeggioHiddenInStdIfTab>1</ArpeggioHiddenInStdIfTab>
142+
<Spatium>1.76389</Spatium>
143+
</Style>
144+
<showInvisible>1</showInvisible>
145+
<showUnprintable>1</showUnprintable>
146+
<showFrames>1</showFrames>
147+
<showMargins>0</showMargins>
148+
<Part>
149+
<Staff id="1">
150+
<linkedTo>1</linkedTo>
151+
<StaffType group="pitched">
152+
</StaffType>
153+
<bracket type="0" span="2" col="0"/>
154+
</Staff>
155+
<Staff id="2">
156+
<linkedTo>1</linkedTo>
157+
<StaffType group="tablature">
158+
<name>tab6StrCommon</name>
159+
<lines>6</lines>
160+
<lineDistance>1.5</lineDistance>
161+
<timesig>0</timesig>
162+
<durations>0</durations>
163+
<durationFontName>MuseScore Tab Modern</durationFontName>
164+
<durationFontSize>15</durationFontSize>
165+
<durationFontY>0</durationFontY>
166+
<fretFontName>MuseScore Tab Serif</fretFontName>
167+
<fretFontSize>9</fretFontSize>
168+
<fretFontY>0</fretFontY>
169+
<linesThrough>0</linesThrough>
170+
<minimStyle>1</minimStyle>
171+
<onLines>1</onLines>
172+
<showRests>0</showRests>
173+
<stemsDown>1</stemsDown>
174+
<stemsThrough>0</stemsThrough>
175+
<upsideDown>0</upsideDown>
176+
<useNumbers>1</useNumbers>
177+
</StaffType>
178+
</Staff>
179+
<trackName></trackName>
180+
<Instrument>
181+
<longName>Electric Guitar</longName>
182+
<shortName>El. Guit.</shortName>
183+
<trackName>Electric Guitar (Treble Clef)</trackName>
184+
<minPitchP>40</minPitchP>
185+
<maxPitchP>88</maxPitchP>
186+
<minPitchA>40</minPitchA>
187+
<maxPitchA>86</maxPitchA>
188+
<transposeDiatonic>-7</transposeDiatonic>
189+
<transposeChromatic>-12</transposeChromatic>
190+
<instrumentId>pluck.guitar.electric</instrumentId>
191+
<clef>G8vb</clef>
192+
<StringData>
193+
<frets>24</frets>
194+
<string>52</string>
195+
<string>57</string>
196+
<string>62</string>
197+
<string>67</string>
198+
<string>71</string>
199+
<string>76</string>
200+
</StringData>
201+
<Articulation>
202+
<velocity>100</velocity>
203+
<gateTime>100</gateTime>
204+
</Articulation>
205+
<Articulation name="staccatissimo">
206+
<velocity>100</velocity>
207+
<gateTime>33</gateTime>
208+
</Articulation>
209+
<Articulation name="staccato">
210+
<velocity>100</velocity>
211+
<gateTime>50</gateTime>
212+
</Articulation>
213+
<Articulation name="portato">
214+
<velocity>100</velocity>
215+
<gateTime>67</gateTime>
216+
</Articulation>
217+
<Articulation name="tenuto">
218+
<velocity>100</velocity>
219+
<gateTime>100</gateTime>
220+
</Articulation>
221+
<Articulation name="marcato">
222+
<velocity>120</velocity>
223+
<gateTime>67</gateTime>
224+
</Articulation>
225+
<Articulation name="sforzato">
226+
<velocity>120</velocity>
227+
<gateTime>100</gateTime>
228+
</Articulation>
229+
<Channel>
230+
<program value="27"/>
231+
</Channel>
232+
</Instrument>
233+
</Part>
234+
<Staff id="1">
235+
<VBox>
236+
<height>10</height>
237+
<linked>
238+
</linked>
239+
<Text>
240+
<style>Instrument Name (Part)</style>
241+
<text>Electric Guitar</text>
242+
</Text>
243+
</VBox>
244+
<Measure>
245+
<voice>
246+
<Clef>
247+
<concertClefType>G</concertClefType>
248+
<transposingClefType>G</transposingClefType>
249+
<linked>
250+
</linked>
251+
</Clef>
252+
<KeySig>
253+
<linked>
254+
</linked>
255+
<accidental>0</accidental>
256+
</KeySig>
257+
<TimeSig>
258+
<linked>
259+
</linked>
260+
<sigN>4</sigN>
261+
<sigD>4</sigD>
262+
</TimeSig>
263+
<Dynamic>
264+
<subtype>mf</subtype>
265+
<velocity>80</velocity>
266+
<linked>
267+
</linked>
268+
</Dynamic>
269+
<Tempo>
270+
<tempo>2</tempo>
271+
<linked>
272+
</linked>
273+
<text><sym>metNoteQuarterUp</sym> = 120</text>
274+
</Tempo>
275+
<Chord>
276+
<linked>
277+
</linked>
278+
<durationType>quarter</durationType>
279+
<Note>
280+
<linked>
281+
</linked>
282+
<pitch>65</pitch>
283+
<tpc>13</tpc>
284+
<fret>1</fret>
285+
<string>0</string>
286+
</Note>
287+
</Chord>
288+
<Rest>
289+
<linked>
290+
</linked>
291+
<dots>1</dots>
292+
<durationType>half</durationType>
293+
</Rest>
294+
</voice>
295+
</Measure>
296+
</Staff>
297+
<Staff id="2">
298+
<Measure>
299+
<voice>
300+
<KeySig>
301+
<linked>
302+
<indexDiff>2</indexDiff>
303+
</linked>
304+
<accidental>0</accidental>
305+
</KeySig>
306+
<Chord>
307+
<linked>
308+
<indexDiff>5</indexDiff>
309+
</linked>
310+
<durationType>quarter</durationType>
311+
<Note>
312+
<linked>
313+
<indexDiff>5</indexDiff>
314+
</linked>
315+
<pitch>65</pitch>
316+
<tpc>13</tpc>
317+
<fret>1</fret>
318+
<string>0</string>
319+
</Note>
320+
</Chord>
321+
<Rest>
322+
<linked>
323+
</linked>
324+
<dots>1</dots>
325+
<durationType>half</durationType>
326+
</Rest>
327+
</voice>
328+
</Measure>
329+
</Staff>
330+
<name>el.guit.</name>
331+
</Score>
332+
</Score>
333+
</museScore>

mtest/guitarpro/tst_guitarpro.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,7 @@ private slots:
156156
void gp3CapoFret() { gpReadTest("capo-fret", "gp3"); }
157157
void gp4CapoFret() { gpReadTest("capo-fret", "gp4"); }
158158
void gp5CapoFret() { gpReadTest("capo-fret", "gp5"); }
159+
void gp6UncompletedMeasure() { gpReadTest("UncompletedMeasure", "gpx"); }
159160
};
160161

161162
//---------------------------------------------------------

0 commit comments

Comments
 (0)