diff --git a/mscore/importgtp.cpp b/mscore/importgtp.cpp index 3700d0facc..e3b6b909a8 100644 --- a/mscore/importgtp.cpp +++ b/mscore/importgtp.cpp @@ -715,7 +715,7 @@ void GuitarPro::setTempo(int tempo, Measure* measure) tt->setTrack(0); Segment* segment = measure->getSegment(Segment::SegChordRest, measure->tick()); segment->add(tt); - score->setTempo(measure->tick(),tt->tempo()); + score->setTempo(measure->tick(), tt->tempo()); } //--------------------------------------------------------- @@ -1596,7 +1596,7 @@ void GuitarPro3::read(QFile* fp) } } } - setTempo(tempo,score->firstMeasure()); + setTempo(tempo, score->firstMeasure()); } int GuitarPro3::readBeatEffects(int track, Segment* segment) @@ -1665,7 +1665,7 @@ void GuitarPro4::readBend() // readMixChange //--------------------------------------------------------- -void GuitarPro4::readMixChange() +void GuitarPro4::readMixChange(Measure* measure) { /*char patch =*/ readChar(); char volume = readChar(); @@ -1688,8 +1688,14 @@ void GuitarPro4::readMixChange() readChar(); if (tremolo >= 0) readChar(); - if (tempo >= 0) + if (tempo >= 0) { + if (tempo != previousTempo) { + previousTempo = tempo; + setTempo(tempo, measure); + } readChar(); + } + readChar(); // bitmask: what should be applied to all tracks } @@ -2233,7 +2239,7 @@ void GuitarPro4::read(QFile* fp) if (beatBits & 0x8) readBeatEffects(staffIdx * VOICES, segment); if (beatBits & 0x10) - readMixChange(); + readMixChange(measure); int strings = readUChar(); // used strings mask Fraction l = len2fraction(len); @@ -2321,7 +2327,7 @@ void GuitarPro4::read(QFile* fp) } } } - setTempo(tempo,score->firstMeasure()); + setTempo(tempo, score->firstMeasure()); } //--------------------------------------------------------- @@ -2791,7 +2797,7 @@ int GuitarPro5::readBeat(int tick, int voice, Measure* measure, int staffIdx, Tu if (beatBits & 0x8) beatEffects = readBeatEffects(staffIdx * VOICES + voice, segment); if (beatBits & 0x10) - readMixChange(); + readMixChange(measure); int strings = readUChar(); // used strings mask @@ -2897,7 +2903,7 @@ void GuitarPro5::readMeasure(Measure* measure, int staffIdx, Tuplet** tuplets) // readMixChange //--------------------------------------------------------- -void GuitarPro5::readMixChange() +void GuitarPro5::readMixChange(Measure* measure) { /*char patch =*/ readChar(); skip(16); @@ -2924,6 +2930,10 @@ void GuitarPro5::readMixChange() if (tremolo >= 0) readChar(); if (tempo >= 0) { + if (tempo != previousTempo) { + previousTempo = tempo; + setTempo(tempo, measure); + } readChar(); if (version > 500) readChar(); @@ -3166,7 +3176,7 @@ void GuitarPro5::read(QFile* fp) createMeasures(); readTracks(); readMeasures(); - setTempo(tempo,score->firstMeasure()); + setTempo(tempo, score->firstMeasure()); } //--------------------------------------------------------- diff --git a/mscore/importgtp.h b/mscore/importgtp.h index 8f80bca06f..4b1d261e08 100644 --- a/mscore/importgtp.h +++ b/mscore/importgtp.h @@ -177,7 +177,7 @@ class GuitarPro4 : public GuitarPro { void readNote(int string, Note* note, GpNote*); virtual void readChord(Segment*, int track); virtual int readBeatEffects(int track, Segment* segment); - virtual void readMixChange(); + virtual void readMixChange(Measure* measure); virtual void readBend(); public: @@ -196,7 +196,7 @@ class GuitarPro5 : public GuitarPro { virtual int readBeatEffects(int track, Segment* segment); virtual void readBend(Note*); void readNote(int string, Note* note); - virtual void readMixChange(); + virtual void readMixChange(Measure* measure); virtual void readChord(Segment*, int track); void readMeasure(Measure* measure, int staffIdx, Tuplet*[]); void readArtificialHarmonic(); diff --git a/mtest/guitarpro/tempo.gp3 b/mtest/guitarpro/tempo.gp3 new file mode 100644 index 0000000000..80588239fe Binary files /dev/null and b/mtest/guitarpro/tempo.gp3 differ diff --git a/mtest/guitarpro/tempo.gp3-ref.mscx b/mtest/guitarpro/tempo.gp3-ref.mscx new file mode 100644 index 0000000000..cc0b9e4186 --- /dev/null +++ b/mtest/guitarpro/tempo.gp3-ref.mscx @@ -0,0 +1,672 @@ + + + + + 0 + 480 + + + Tab. 6-str common + 6 + 1.5 + 1 + 1 + 1 + 0 + 0 + MuseScore Tab Modern + 15 + 0 + MuseScore Tab Serif + 9 + 0 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 1 + + 1 + 1 + 1 + 0 + + + + + + + + + + + + + + + + + 0 + + Track 1 + + Track 1 + + + 24 + 40 + 45 + 50 + 55 + 59 + 64 + + + + + + + + + + + + + 10 + 0 + + + + G8vb + G8vb + + + 1 + 4 + 4 + 1 + + + 4.16667 + 2 + noteQuarterUp = 250 + + + 3 + quarter + + 4 + 52 + 18 + 2 + 3 + + + + 5 + quarter + + 6 + 52 + 18 + 2 + 3 + + + + 7 + quarter + + 8 + 52 + 18 + 2 + 3 + + + + 9 + quarter + + 10 + 53 + 13 + 3 + 3 + + + + + + 12 + quarter + + 13 + 53 + 13 + 3 + 3 + + + + 14 + quarter + + 15 + 52 + 18 + 2 + 3 + + + + 16 + quarter + + 17 + 52 + 18 + 2 + 3 + + + + 18 + quarter + + 19 + 52 + 18 + 2 + 3 + + + + + + 1.33333 + 21 + noteQuarterUp = 80 + + + 22 + quarter + + 23 + + sharp + + 54 + 20 + 4 + 3 + + + + 24 + quarter + + 25 + + natural + + 53 + 13 + 3 + 3 + + + + 26 + quarter + + 27 + 52 + 18 + 2 + 3 + + + + 28 + quarter + + 29 + + flat + + 51 + 11 + 1 + 3 + + + + end + 1 + + + + + + 0 + 480 + + 1 + 1 + 1 + 0 + + + + + + + + + + + 1 + 0 + + + + 1 + 5 + + + + + Track 1 + + + 24 + 40 + 45 + 50 + 55 + 59 + 64 + + + + + + + + + + + + + 10 + 0 + + + Track 1 + + + + + G8vb + G8vb + + + 1 + 4 + 4 + 1 + + + 4.16667 + 2 + noteQuarterUp = 250 + + + 3 + quarter + + 4 + 52 + 18 + 2 + 3 + + + + 5 + quarter + + 6 + 52 + 18 + 2 + 3 + + + + 7 + quarter + + 8 + 52 + 18 + 2 + 3 + + + + 9 + quarter + + 10 + 53 + 13 + 3 + 3 + + + + + + 12 + quarter + + 13 + 53 + 13 + 3 + 3 + + + + 14 + quarter + + 15 + 52 + 18 + 2 + 3 + + + + 16 + quarter + + 17 + 52 + 18 + 2 + 3 + + + + 18 + quarter + + 19 + 52 + 18 + 2 + 3 + + + + + + 1.33333 + 21 + noteQuarterUp = 80 + + + 22 + quarter + + 23 + + sharp + + 54 + 20 + 4 + 3 + + + + 24 + quarter + + 25 + + natural + + 53 + 13 + 3 + 3 + + + + 26 + quarter + + 27 + 52 + 18 + 2 + 3 + + + + 28 + quarter + + 29 + + flat + + 51 + 11 + 1 + 3 + + + + end + 1 + + + + + + + G8vb + TAB2 + + + 3 + quarter + + 4 + 52 + 18 + 2 + 3 + + + + 5 + quarter + + 6 + 52 + 18 + 2 + 3 + + + + 7 + quarter + + 8 + 52 + 18 + 2 + 3 + + + + 9 + quarter + + 10 + 53 + 13 + 3 + 3 + + + + + + 12 + quarter + + 13 + 53 + 13 + 3 + 3 + + + + 14 + quarter + + 15 + 52 + 18 + 2 + 3 + + + + 16 + quarter + + 17 + 52 + 18 + 2 + 3 + + + + 18 + quarter + + 19 + 52 + 18 + 2 + 3 + + + + + + 22 + quarter + + 23 + 54 + 20 + 4 + 3 + + + + 24 + quarter + + 25 + 53 + 13 + 3 + 3 + + + + 26 + quarter + + 27 + 52 + 18 + 2 + 3 + + + + 28 + quarter + + 29 + 51 + 11 + 1 + 3 + + + + end + 1 + + + + Track 1 + + + diff --git a/mtest/guitarpro/tempo.gp4 b/mtest/guitarpro/tempo.gp4 new file mode 100644 index 0000000000..3174a0089c Binary files /dev/null and b/mtest/guitarpro/tempo.gp4 differ diff --git a/mtest/guitarpro/tempo.gp4-ref.mscx b/mtest/guitarpro/tempo.gp4-ref.mscx new file mode 100644 index 0000000000..0c97c04a16 --- /dev/null +++ b/mtest/guitarpro/tempo.gp4-ref.mscx @@ -0,0 +1,684 @@ + + + + + 0 + 480 + + + Tab. 6-str common + 6 + 1.5 + 1 + 1 + 1 + 0 + 0 + MuseScore Tab Modern + 15 + 0 + MuseScore Tab Serif + 9 + 0 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 1 + + 1 + 1 + 1 + 0 + + + + + + + + + + + + + + + + + 0 + + Track 1 + + Track 1 + + + 24 + 40 + 45 + 50 + 55 + 59 + 64 + + + + + + + + + + + + + 10 + 0 + + + + G8vb + G8vb + + + 1 + 0 + + + 2 + 4 + 4 + 1 + + + 4.16667 + 3 + noteQuarterUp = 250 + + + 4 + quarter + + 5 + 52 + 18 + 2 + 3 + + + + 6 + quarter + + 7 + 52 + 18 + 2 + 3 + + + + 8 + quarter + + 9 + 52 + 18 + 2 + 3 + + + + 10 + quarter + + 11 + 53 + 13 + 3 + 3 + + + + + + 13 + quarter + + 14 + 53 + 13 + 3 + 3 + + + + 15 + quarter + + 16 + 52 + 18 + 2 + 3 + + + + 17 + quarter + + 18 + 52 + 18 + 2 + 3 + + + + 19 + quarter + + 20 + 52 + 18 + 2 + 3 + + + + + + 1.33333 + 22 + noteQuarterUp = 80 + + + 23 + quarter + + 24 + + sharp + + 54 + 20 + 4 + 3 + + + + 25 + quarter + + 26 + + natural + + 53 + 13 + 3 + 3 + + + + 27 + quarter + + 28 + 52 + 18 + 2 + 3 + + + + 29 + quarter + + 30 + + flat + + 51 + 11 + 1 + 3 + + + + end + 1 + + + + + + 0 + 480 + + 1 + 1 + 1 + 0 + + + + + + + + + + + 1 + 0 + + + + 1 + 5 + + + + + Track 1 + + + 24 + 40 + 45 + 50 + 55 + 59 + 64 + + + + + + + + + + + + + 10 + 0 + + + Track 1 + + + + + G8vb + G8vb + + + 1 + 0 + + + 2 + 4 + 4 + 1 + + + 4.16667 + 3 + noteQuarterUp = 250 + + + 4 + quarter + + 5 + 52 + 18 + 2 + 3 + + + + 6 + quarter + + 7 + 52 + 18 + 2 + 3 + + + + 8 + quarter + + 9 + 52 + 18 + 2 + 3 + + + + 10 + quarter + + 11 + 53 + 13 + 3 + 3 + + + + + + 13 + quarter + + 14 + 53 + 13 + 3 + 3 + + + + 15 + quarter + + 16 + 52 + 18 + 2 + 3 + + + + 17 + quarter + + 18 + 52 + 18 + 2 + 3 + + + + 19 + quarter + + 20 + 52 + 18 + 2 + 3 + + + + + + 1.33333 + 22 + noteQuarterUp = 80 + + + 23 + quarter + + 24 + + sharp + + 54 + 20 + 4 + 3 + + + + 25 + quarter + + 26 + + natural + + 53 + 13 + 3 + 3 + + + + 27 + quarter + + 28 + 52 + 18 + 2 + 3 + + + + 29 + quarter + + 30 + + flat + + 51 + 11 + 1 + 3 + + + + end + 1 + + + + + + + G8vb + TAB2 + + + 1 + 0 + + + 4 + quarter + + 5 + 52 + 18 + 2 + 3 + + + + 6 + quarter + + 7 + 52 + 18 + 2 + 3 + + + + 8 + quarter + + 9 + 52 + 18 + 2 + 3 + + + + 10 + quarter + + 11 + 53 + 13 + 3 + 3 + + + + + + 13 + quarter + + 14 + 53 + 13 + 3 + 3 + + + + 15 + quarter + + 16 + 52 + 18 + 2 + 3 + + + + 17 + quarter + + 18 + 52 + 18 + 2 + 3 + + + + 19 + quarter + + 20 + 52 + 18 + 2 + 3 + + + + + + 23 + quarter + + 24 + 54 + 20 + 4 + 3 + + + + 25 + quarter + + 26 + 53 + 13 + 3 + 3 + + + + 27 + quarter + + 28 + 52 + 18 + 2 + 3 + + + + 29 + quarter + + 30 + 51 + 11 + 1 + 3 + + + + end + 1 + + + + Track 1 + + + diff --git a/mtest/guitarpro/tempo.gp5 b/mtest/guitarpro/tempo.gp5 new file mode 100644 index 0000000000..7c3e85a16a Binary files /dev/null and b/mtest/guitarpro/tempo.gp5 differ diff --git a/mtest/guitarpro/tempo.gp5-ref.mscx b/mtest/guitarpro/tempo.gp5-ref.mscx new file mode 100644 index 0000000000..0c97c04a16 --- /dev/null +++ b/mtest/guitarpro/tempo.gp5-ref.mscx @@ -0,0 +1,684 @@ + + + + + 0 + 480 + + + Tab. 6-str common + 6 + 1.5 + 1 + 1 + 1 + 0 + 0 + MuseScore Tab Modern + 15 + 0 + MuseScore Tab Serif + 9 + 0 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 1 + + 1 + 1 + 1 + 0 + + + + + + + + + + + + + + + + + 0 + + Track 1 + + Track 1 + + + 24 + 40 + 45 + 50 + 55 + 59 + 64 + + + + + + + + + + + + + 10 + 0 + + + + G8vb + G8vb + + + 1 + 0 + + + 2 + 4 + 4 + 1 + + + 4.16667 + 3 + noteQuarterUp = 250 + + + 4 + quarter + + 5 + 52 + 18 + 2 + 3 + + + + 6 + quarter + + 7 + 52 + 18 + 2 + 3 + + + + 8 + quarter + + 9 + 52 + 18 + 2 + 3 + + + + 10 + quarter + + 11 + 53 + 13 + 3 + 3 + + + + + + 13 + quarter + + 14 + 53 + 13 + 3 + 3 + + + + 15 + quarter + + 16 + 52 + 18 + 2 + 3 + + + + 17 + quarter + + 18 + 52 + 18 + 2 + 3 + + + + 19 + quarter + + 20 + 52 + 18 + 2 + 3 + + + + + + 1.33333 + 22 + noteQuarterUp = 80 + + + 23 + quarter + + 24 + + sharp + + 54 + 20 + 4 + 3 + + + + 25 + quarter + + 26 + + natural + + 53 + 13 + 3 + 3 + + + + 27 + quarter + + 28 + 52 + 18 + 2 + 3 + + + + 29 + quarter + + 30 + + flat + + 51 + 11 + 1 + 3 + + + + end + 1 + + + + + + 0 + 480 + + 1 + 1 + 1 + 0 + + + + + + + + + + + 1 + 0 + + + + 1 + 5 + + + + + Track 1 + + + 24 + 40 + 45 + 50 + 55 + 59 + 64 + + + + + + + + + + + + + 10 + 0 + + + Track 1 + + + + + G8vb + G8vb + + + 1 + 0 + + + 2 + 4 + 4 + 1 + + + 4.16667 + 3 + noteQuarterUp = 250 + + + 4 + quarter + + 5 + 52 + 18 + 2 + 3 + + + + 6 + quarter + + 7 + 52 + 18 + 2 + 3 + + + + 8 + quarter + + 9 + 52 + 18 + 2 + 3 + + + + 10 + quarter + + 11 + 53 + 13 + 3 + 3 + + + + + + 13 + quarter + + 14 + 53 + 13 + 3 + 3 + + + + 15 + quarter + + 16 + 52 + 18 + 2 + 3 + + + + 17 + quarter + + 18 + 52 + 18 + 2 + 3 + + + + 19 + quarter + + 20 + 52 + 18 + 2 + 3 + + + + + + 1.33333 + 22 + noteQuarterUp = 80 + + + 23 + quarter + + 24 + + sharp + + 54 + 20 + 4 + 3 + + + + 25 + quarter + + 26 + + natural + + 53 + 13 + 3 + 3 + + + + 27 + quarter + + 28 + 52 + 18 + 2 + 3 + + + + 29 + quarter + + 30 + + flat + + 51 + 11 + 1 + 3 + + + + end + 1 + + + + + + + G8vb + TAB2 + + + 1 + 0 + + + 4 + quarter + + 5 + 52 + 18 + 2 + 3 + + + + 6 + quarter + + 7 + 52 + 18 + 2 + 3 + + + + 8 + quarter + + 9 + 52 + 18 + 2 + 3 + + + + 10 + quarter + + 11 + 53 + 13 + 3 + 3 + + + + + + 13 + quarter + + 14 + 53 + 13 + 3 + 3 + + + + 15 + quarter + + 16 + 52 + 18 + 2 + 3 + + + + 17 + quarter + + 18 + 52 + 18 + 2 + 3 + + + + 19 + quarter + + 20 + 52 + 18 + 2 + 3 + + + + + + 23 + quarter + + 24 + 54 + 20 + 4 + 3 + + + + 25 + quarter + + 26 + 53 + 13 + 3 + 3 + + + + 27 + quarter + + 28 + 52 + 18 + 2 + 3 + + + + 29 + quarter + + 30 + 51 + 11 + 1 + 3 + + + + end + 1 + + + + Track 1 + + + diff --git a/mtest/guitarpro/tst_guitarpro.cpp b/mtest/guitarpro/tst_guitarpro.cpp index 97492b6833..e79f5df438 100644 --- a/mtest/guitarpro/tst_guitarpro.cpp +++ b/mtest/guitarpro/tst_guitarpro.cpp @@ -48,6 +48,9 @@ private slots: void gp5copyright() { gpReadTest("copyright", "gp5"); } void gp4copyright() { gpReadTest("copyright", "gp4"); } void gp3copyright() { gpReadTest("copyright", "gp3"); } + void gp5Tempo() { gpReadTest("tempo", "gp5"); } + void gp4Tempo() { gpReadTest("tempo", "gp4"); } + void gp3Tempo() { gpReadTest("tempo", "gp3"); } }; //--------------------------------------------------------- diff --git a/mtest/guitarpro/updateReference b/mtest/guitarpro/updateReference index f119f3599c..742a58845c 100755 --- a/mtest/guitarpro/updateReference +++ b/mtest/guitarpro/updateReference @@ -18,3 +18,6 @@ cp $MSCORE/volta.gp3.mscx volta.gp3-ref.mscx cp $MSCORE/copyright.gp5.mscx copyright.gp5-ref.mscx cp $MSCORE/copyright.gp4.mscx copyright.gp4-ref.mscx cp $MSCORE/copyright.gp3.mscx copyright.gp3-ref.mscx +cp $MSCORE/tempo.gp5.mscx tempo.gp5-ref.mscx +cp $MSCORE/tempo.gp4.mscx tempo.gp4-ref.mscx +cp $MSCORE/tempo.gp3.mscx tempo.gp3-ref.mscx