From b1c111a86c136f20381325ab99c6a392c31fdb45 Mon Sep 17 00:00:00 2001 From: Dmitri Ovodok Date: Thu, 4 Oct 2018 11:58:24 +0200 Subject: [PATCH] fix #277055: Add StaffText to a Segment instead of Measure when reading Guitar Pro files Add tests on correct reading of "capo fret" marks in Guitar Pro files --- mscore/importgtp-gp4.cpp | 3 +- mscore/importgtp-gp5.cpp | 3 +- mscore/importgtp.cpp | 8 +- mtest/guitarpro/capo-fret.gp3 | Bin 0 -> 1013 bytes mtest/guitarpro/capo-fret.gp3-ref.mscx | 415 ++++++++++++++++++++++++ mtest/guitarpro/capo-fret.gp4 | Bin 0 -> 1058 bytes mtest/guitarpro/capo-fret.gp4-ref.mscx | 426 +++++++++++++++++++++++++ mtest/guitarpro/capo-fret.gp5 | Bin 0 -> 1504 bytes mtest/guitarpro/capo-fret.gp5-ref.mscx | 426 +++++++++++++++++++++++++ mtest/guitarpro/tst_guitarpro.cpp | 3 + mtest/guitarpro/updateReference | 3 + 11 files changed, 1278 insertions(+), 9 deletions(-) create mode 100644 mtest/guitarpro/capo-fret.gp3 create mode 100644 mtest/guitarpro/capo-fret.gp3-ref.mscx create mode 100644 mtest/guitarpro/capo-fret.gp4 create mode 100644 mtest/guitarpro/capo-fret.gp4-ref.mscx create mode 100644 mtest/guitarpro/capo-fret.gp5 create mode 100644 mtest/guitarpro/capo-fret.gp5-ref.mscx diff --git a/mscore/importgtp-gp4.cpp b/mscore/importgtp-gp4.cpp index 226e4c852394..83672d64ae83 100644 --- a/mscore/importgtp-gp4.cpp +++ b/mscore/importgtp-gp4.cpp @@ -753,9 +753,8 @@ bool GuitarPro4::read(QFile* fp) Segment* s = measure->getSegment(SegmentType::ChordRest, measure->tick()); StaffText* st = new StaffText(score); st->setPlainText(QString("Capo. fret ") + QString::number(capo)); - st->setParent(s); st->setTrack(i * VOICES); - measure->add(st); + s->add(st); } Channel* ch = instr->channel(0); diff --git a/mscore/importgtp-gp5.cpp b/mscore/importgtp-gp5.cpp index fafb4481ae26..509ff5e7c1fc 100644 --- a/mscore/importgtp-gp5.cpp +++ b/mscore/importgtp-gp5.cpp @@ -567,9 +567,8 @@ bool GuitarPro5::readTracks() Segment* s = measure->getSegment(SegmentType::ChordRest, measure->tick()); StaffText* st = new StaffText(score); st->setPlainText(QString("Capo. fret ") + QString::number(capo)); - st->setParent(s); st->setTrack(i * VOICES); - measure->add(st); + s->add(st); } Channel* ch = instr->channel(0); diff --git a/mscore/importgtp.cpp b/mscore/importgtp.cpp index 62496b23338a..92325d043209 100644 --- a/mscore/importgtp.cpp +++ b/mscore/importgtp.cpp @@ -1591,10 +1591,9 @@ bool GuitarPro2::read(QFile* fp) StaffText* st = new StaffText(score); // st->setTextStyleType(TextStyleType::STAFF); st->setPlainText(QString("Capo. fret ") + QString::number(capo)); - st->setParent(s); st->setTrack(i * VOICES); - measure->add(st); - } + s->add(st); + } Channel* ch = instr->channel(0); if (midiChannel == int(StaffTypes::PERC_DEFAULT)) { @@ -2284,9 +2283,8 @@ bool GuitarPro3::read(QFile* fp) StaffText* st = new StaffText(score); // st->setTextStyleType(TextStyleType::STAFF); st->setPlainText(QString("Capo. fret ") + QString::number(capo)); - st->setParent(s); st->setTrack(i * VOICES); - measure->add(st); + s->add(st); } Channel* ch = instr->channel(0); diff --git a/mtest/guitarpro/capo-fret.gp3 b/mtest/guitarpro/capo-fret.gp3 new file mode 100644 index 0000000000000000000000000000000000000000..f2232984e3046fd43b19a5829b31708464a53595 GIT binary patch literal 1013 zcmb1e^K|y`bPZB)5A_Uj3{nUP@>eJ`)-y0*00UMa$r6%UT*3(A5+=YZ7~H^m85ksi zG%p8)gUprynFUeGKrJ@N7HXSGEw_!D14#oTEgYCYX%dK;Sy&ht*h7jEld}~JAwhwM zWCP0C0kJg@n**^C5NiXm3J`+;$V3nZnGOz7ApIZ8XZUYnz{th`#Y_+`Baq7k#LOUF I4ov?T0LDTXpa1{> literal 0 HcmV?d00001 diff --git a/mtest/guitarpro/capo-fret.gp3-ref.mscx b/mtest/guitarpro/capo-fret.gp3-ref.mscx new file mode 100644 index 000000000000..9e56921cac21 --- /dev/null +++ b/mtest/guitarpro/capo-fret.gp3-ref.mscx @@ -0,0 +1,415 @@ + + + + + 0 + 480 + + 1 + 1 + 1 + 0 + + + + + + + + + + + + + + + + + Track 1 + + Track 1 + + + 24 + 36 + 43 + 50 + 55 + 59 + 62 + + + + + + + + + + + + + 10 + + + + + Test + + + + + + G8vb + G8vb + + + + + 4 + 4 + + + + Capo. fret 1 + + + f + 96 + + + + 1.16667 + + metNoteQuarterUp = 70 + + + + half + + + 52 + 18 + 2 + 3 + + + + 55 + 15 + 0 + 2 + + + + 59 + 19 + 0 + 1 + + + + + half + + + 53 + 13 + 3 + 3 + + + + 57 + 17 + 2 + 2 + + + + 60 + 14 + 1 + 1 + + + + + + + + + measure + 4/4 + + + + + + + 0 + 480 + + 1 + 1 + 1 + 0 + + + 1 + + + + + + 1 + + tab6StrCommon + 6 + 1.5 + 0 + 0 + MuseScore Tab Modern + 15 + 0 + MuseScore Tab Serif + 9 + 0 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 1 + + + + + Track 1 + + + 24 + 36 + 43 + 50 + 55 + 59 + 62 + + + + + + + + + + + + + 10 + + + + + + + Test + + + + Track 1 + + + + + + G8vb + G8vb + + + + + + + 4 + 4 + + + + + Capo. fret 1 + + + f + 96 + + + + + 1.16667 + + + metNoteQuarterUp = 70 + + + + + half + + + + 52 + 18 + 2 + 3 + + + + + 55 + 15 + 0 + 2 + + + + + 59 + 19 + 0 + 1 + + + + + + half + + + + 53 + 13 + 3 + 3 + + + + + 57 + 17 + 2 + 2 + + + + + 60 + 14 + 1 + 1 + + + + + + + + + + measure + 4/4 + + + + + + + + + + 7 + + half + + + 7 + + 52 + 18 + 2 + 3 + + + + 7 + + 55 + 15 + 0 + 2 + + + + 7 + + 59 + 19 + 0 + 1 + + + + + + half + + + + 53 + 13 + 3 + 3 + + + + + 57 + 17 + 2 + 2 + + + + + 60 + 14 + 1 + 1 + + + + + + + + + + measure + 4/4 + + + + + Track 1 + + + diff --git a/mtest/guitarpro/capo-fret.gp4 b/mtest/guitarpro/capo-fret.gp4 new file mode 100644 index 0000000000000000000000000000000000000000..6ef73f691073d122cda67ff7aa045843eae38060 GIT binary patch literal 1058 zcmb1e^K|y`bPZB)5A_Uj3{nUP@>eJ`(K9e$00UMa$r6%UT*3(A5+=YZz&eQ~++YeN zfec;_2oISp0Tg0{noBJ<$QEjwNiDaHngdA#BP|@5Kxq<)nORsE7}!IK5|gtP3?V^* zhhziF*#WUN5Ss(B5fEzwu?i4_0LVlT2AK{HQ6T*v%4hg*VZg}70L4rYE+df31jNiB JT@FnD7yvgI7@+_F literal 0 HcmV?d00001 diff --git a/mtest/guitarpro/capo-fret.gp4-ref.mscx b/mtest/guitarpro/capo-fret.gp4-ref.mscx new file mode 100644 index 000000000000..8b081435c79c --- /dev/null +++ b/mtest/guitarpro/capo-fret.gp4-ref.mscx @@ -0,0 +1,426 @@ + + + + + 0 + 480 + + 1 + 1 + 1 + 0 + + + + + + + + + + + + + + + + + Track 1 + + Track 1 + + + 24 + 36 + 43 + 50 + 55 + 59 + 62 + + + + + + + + + + + 10 + + + + + Test + + + + + + G8vb + G8vb + + + + + 0 + + + + 4 + 4 + + + + Capo. fret 1 + + + f + 96 + + + + 1.16667 + + metNoteQuarterUp = 70 + + + + half + + + 52 + 18 + 2 + 3 + + + + 55 + 15 + 0 + 2 + + + + 59 + 19 + 0 + 1 + + + + + half + + + 53 + 13 + 3 + 3 + + + + 57 + 17 + 2 + 2 + + + + 60 + 14 + 1 + 1 + + + + + + + + + measure + 4/4 + + + + + + + 0 + 480 + + 1 + 1 + 1 + 0 + + + 1 + + + + + + 1 + + tab6StrCommon + 6 + 1.5 + 0 + 0 + MuseScore Tab Modern + 15 + 0 + MuseScore Tab Serif + 9 + 0 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 1 + + + + + Track 1 + + + 24 + 36 + 43 + 50 + 55 + 59 + 62 + + + + + + + + + + + 10 + + + + + + + Test + + + + Track 1 + + + + + + G8vb + G8vb + + + + + + + 0 + + + + + 4 + 4 + + + + + Capo. fret 1 + + + f + 96 + + + + + 1.16667 + + + metNoteQuarterUp = 70 + + + + + half + + + + 52 + 18 + 2 + 3 + + + + + 55 + 15 + 0 + 2 + + + + + 59 + 19 + 0 + 1 + + + + + + half + + + + 53 + 13 + 3 + 3 + + + + + 57 + 17 + 2 + 2 + + + + + 60 + 14 + 1 + 1 + + + + + + + + + + measure + 4/4 + + + + + + + + + + 3 + + 0 + + + + 7 + + half + + + 7 + + 52 + 18 + 2 + 3 + + + + 7 + + 55 + 15 + 0 + 2 + + + + 7 + + 59 + 19 + 0 + 1 + + + + + + half + + + + 53 + 13 + 3 + 3 + + + + + 57 + 17 + 2 + 2 + + + + + 60 + 14 + 1 + 1 + + + + + + + + + + measure + 4/4 + + + + + Track 1 + + + diff --git a/mtest/guitarpro/capo-fret.gp5 b/mtest/guitarpro/capo-fret.gp5 new file mode 100644 index 0000000000000000000000000000000000000000..35eca7898eaec38463996e4bab66f744ab0a8593 GIT binary patch literal 1504 zcmeHHTT22#6rNpgt0mP#VGqSTG(kjVffWRyZeA8NWp_n-+}yz=(b!!D|7Jg^?VDM{ zh!7uqs{`M6=3Mv8470haq1TOyNoyU$E}67#w&=8Qp3f6032@xzexL|*MUrW(l2M zW!;wfU`5X6#2@sev)Qo>ogE_cAj&+Zi=eECGWL+MtB>Di-k|>yP^P!qPo`0;+w2;V zLTNapril2|0!j(nE>4*oR$K!;k5OG`( zEoFO7@0DIg<`PaKb`RVEH^3Ee3LF7KM0WwvS>6M527h$SK7kEN)wcp{n7(wQ*! nWB#a`gtvJGpZg*?tMn + + + + 0 + 480 + + 1 + 1 + 1 + 0 + + + + + + + + + + + + + + + + + Track 1 + + Track 1 + + + 24 + 36 + 43 + 50 + 55 + 59 + 62 + + + + + + + + + + + 10 + + + + + Test + + + + + + G8vb + G8vb + + + + + 0 + + + + 4 + 4 + + + + Capo. fret 1 + + + f + 96 + + + + 1.16667 + + metNoteQuarterUp = 70 + + + + half + + + 52 + 18 + 2 + 3 + + + + 55 + 15 + 0 + 2 + + + + 59 + 19 + 0 + 1 + + + + + half + + + 53 + 13 + 3 + 3 + + + + 57 + 17 + 2 + 2 + + + + 60 + 14 + 1 + 1 + + + + + + + + + measure + 4/4 + + + + + + + 0 + 480 + + 1 + 1 + 1 + 0 + + + 1 + + + + + + 1 + + tab6StrCommon + 6 + 1.5 + 0 + 0 + MuseScore Tab Modern + 15 + 0 + MuseScore Tab Serif + 9 + 0 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 1 + + + + + Track 1 + + + 24 + 36 + 43 + 50 + 55 + 59 + 62 + + + + + + + + + + + 10 + + + + + + + Test + + + + Track 1 + + + + + + G8vb + G8vb + + + + + + + 0 + + + + + 4 + 4 + + + + + Capo. fret 1 + + + f + 96 + + + + + 1.16667 + + + metNoteQuarterUp = 70 + + + + + half + + + + 52 + 18 + 2 + 3 + + + + + 55 + 15 + 0 + 2 + + + + + 59 + 19 + 0 + 1 + + + + + + half + + + + 53 + 13 + 3 + 3 + + + + + 57 + 17 + 2 + 2 + + + + + 60 + 14 + 1 + 1 + + + + + + + + + + measure + 4/4 + + + + + + + + + + 3 + + 0 + + + + 7 + + half + + + 7 + + 52 + 18 + 2 + 3 + + + + 7 + + 55 + 15 + 0 + 2 + + + + 7 + + 59 + 19 + 0 + 1 + + + + + + half + + + + 53 + 13 + 3 + 3 + + + + + 57 + 17 + 2 + 2 + + + + + 60 + 14 + 1 + 1 + + + + + + + + + + measure + 4/4 + + + + + Track 1 + + + diff --git a/mtest/guitarpro/tst_guitarpro.cpp b/mtest/guitarpro/tst_guitarpro.cpp index dbd7e003260a..93d8baa891cb 100644 --- a/mtest/guitarpro/tst_guitarpro.cpp +++ b/mtest/guitarpro/tst_guitarpro.cpp @@ -153,6 +153,9 @@ private slots: void gpxClefs() { gpReadTest("clefs", "gpx"); } void gpxTuplets() { gpReadTest("tuplets", "gpx"); } void gpxTuplets2() { gpReadTest("tuplets2", "gpx"); } + void gp3CapoFret() { gpReadTest("capo-fret", "gp3"); } + void gp4CapoFret() { gpReadTest("capo-fret", "gp4"); } + void gp5CapoFret() { gpReadTest("capo-fret", "gp5"); } }; //--------------------------------------------------------- diff --git a/mtest/guitarpro/updateReference b/mtest/guitarpro/updateReference index fe94eb54dfd7..6e6570b25cc1 100755 --- a/mtest/guitarpro/updateReference +++ b/mtest/guitarpro/updateReference @@ -127,4 +127,7 @@ cp $MSCORE/clefs.gpx.mscx clefs.gpx-ref.mscx cp $MSCORE/fret-diagram_2instruments.gpx.mscx fret-diagram_2instruments.gpx-ref.mscx cp $MSCORE/tuplets.gpx.mscx tuplets.gpx-ref.mscx cp $MSCORE/tuplets2.gpx.mscx tuplets2.gpx-ref.mscx +cp $MSCORE/capo-fret.gp3.mscx capo-fret.gp3-ref.mscx +cp $MSCORE/capo-fret.gp4.mscx capo-fret.gp4-ref.mscx +cp $MSCORE/capo-fret.gp5.mscx capo-fret.gp5-ref.mscx