From 507ce9d64c88b42d221bc52b1f030e23eefe94e6 Mon Sep 17 00:00:00 2001 From: Michele Spagnolo Date: Fri, 9 Aug 2024 19:33:45 +0200 Subject: [PATCH 1/3] new unit test --- .../tests/parts_data/input-from-parts.mscz | Bin 0 -> 71253 bytes src/engraving/tests/parts_tests.cpp | 71 ++++++++++++++++++ 2 files changed, 71 insertions(+) create mode 100644 src/engraving/tests/parts_data/input-from-parts.mscz diff --git a/src/engraving/tests/parts_data/input-from-parts.mscz b/src/engraving/tests/parts_data/input-from-parts.mscz new file mode 100644 index 0000000000000000000000000000000000000000..ef5ba14e42d60dd588c357deb63a4c72c56dbc57 GIT binary patch literal 71253 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 J_{iuE_%EiN#P0wA literal 0 HcmV?d00001 diff --git a/src/engraving/tests/parts_tests.cpp b/src/engraving/tests/parts_tests.cpp index cd25f7d709d0c..af8d317025942 100644 --- a/src/engraving/tests/parts_tests.cpp +++ b/src/engraving/tests/parts_tests.cpp @@ -1327,6 +1327,77 @@ TEST_F(Engraving_PartsTests, partVisibleTracks) { PARTS_DATA_DIR + u"part-visible-tracks-score-ref.mscx")); } +TEST_F(Engraving_PartsTests, inputFromParts) { + bool useRead302 = MScore::useRead302InTestMode; + MScore::useRead302InTestMode = false; + + // Enter notes *in parts* and check that they are correctly cloned to the score. + + Score* score = ScoreRW::readScore(PARTS_DATA_DIR + u"input-from-parts.mscz"); + EXPECT_TRUE(score); + staff_idx_t fluteStaff = 0; + staff_idx_t oboeStaff = 1; + staff_idx_t clarinetStaff = 2; + staff_idx_t bassoonStaff = 3; + + Score* flutePart = nullptr; + Score* oboePart = nullptr; + Score* clarinetPart = nullptr; + Score* bassoonPart = nullptr; + for (Score* part : score->scoreList()) { + String partName = part->name(); + if (partName == u"Flute") { + flutePart = part; + } else if (partName == u"Oboe") { + oboePart = part; + } else if (partName == u"Clarinet in B♭") { + clarinetPart = part; + } else if (partName == u"Bassoon") { + bassoonPart = part; + } + } + EXPECT_TRUE(flutePart && oboePart && clarinetPart && bassoonPart); + + track_idx_t voice = 3; + Segment* partSegment = flutePart->firstMeasure()->findFirstR(SegmentType::ChordRest, Fraction(0, 1)); + EXPECT_TRUE(partSegment); + flutePart->setNoteRest(partSegment, voice, NoteVal(60), Fraction(1, 1)); + Segment* scoreSegment = score->tick2segment(partSegment->tick(), true, SegmentType::ChordRest); + EXPECT_TRUE(scoreSegment); + Chord* chord = toChord(scoreSegment->elementAt(staff2track(fluteStaff) + voice)); + EXPECT_TRUE(chord); + + voice = 2; + partSegment = oboePart->firstMeasure()->nextMeasure()->findFirstR(SegmentType::ChordRest, Fraction(0, 1)); + EXPECT_TRUE(partSegment); + oboePart->setNoteRest(partSegment, voice, NoteVal(60), Fraction(1, 1)); + scoreSegment = score->tick2segment(partSegment->tick(), true, SegmentType::ChordRest); + EXPECT_TRUE(scoreSegment); + chord = toChord(scoreSegment->elementAt(staff2track(oboeStaff) + voice)); + EXPECT_TRUE(chord); + + voice = 1; + partSegment = clarinetPart->firstMeasure()->nextMeasure()->nextMeasure()->findFirstR(SegmentType::ChordRest, Fraction(0, 1)); + EXPECT_TRUE(partSegment); + clarinetPart->setNoteRest(partSegment, voice, NoteVal(60), Fraction(1, 1)); + scoreSegment = score->tick2segment(partSegment->tick(), true, SegmentType::ChordRest); + EXPECT_TRUE(scoreSegment); + chord = toChord(scoreSegment->elementAt(staff2track(clarinetStaff) + voice)); + EXPECT_TRUE(chord); + + voice = 0; + partSegment = bassoonPart->firstMeasure()->nextMeasure()->nextMeasure()->nextMeasure()->findFirstR(SegmentType::ChordRest, Fraction(0, + 1)); + EXPECT_TRUE(partSegment); + bassoonPart->setNoteRest(partSegment, voice, NoteVal(60), Fraction(1, 1)); + scoreSegment = score->tick2segment(partSegment->tick(), true, SegmentType::ChordRest); + EXPECT_TRUE(scoreSegment); + chord = toChord(scoreSegment->elementAt(staff2track(bassoonStaff) + voice)); + EXPECT_TRUE(chord); + + MScore::useRead302InTestMode = useRead302; +} + //--------------------------------------------------------- // staffStyles //--------------------------------------------------------- From 992fd5509bc511e4aac4e6b3d7040854ae84c856 Mon Sep 17 00:00:00 2001 From: Michele Spagnolo Date: Fri, 9 Aug 2024 11:36:50 +0200 Subject: [PATCH 2/3] Remove unnecessary track mapping code This code was conflicting with the newly reimplemented function Staff::getLinkedTrackInStaff. The logic that these pieces of code were trying to handle is now all handled (as it should) in one single place. --- src/engraving/dom/edit.cpp | 22 +--------------------- 1 file changed, 1 insertion(+), 21 deletions(-) diff --git a/src/engraving/dom/edit.cpp b/src/engraving/dom/edit.cpp index 17e83a0d8ce86..ce69044229a44 100644 --- a/src/engraving/dom/edit.cpp +++ b/src/engraving/dom/edit.cpp @@ -5761,18 +5761,7 @@ void Score::undoChangeVisible(EngravingItem* item, bool visible) void Score::undoAddElement(EngravingItem* element, bool addToLinkedStaves, bool ctrlModifier, EngravingItem* elementToRelink) { Staff* ostaff = element->staff(); - track_idx_t strack = muse::nidx; - if (ostaff) { - strack = ostaff->idx() * VOICES + element->track() % VOICES; - - if (mu::engraving::Excerpt* excerpt = ostaff->score()->excerpt()) { - const TracksMap& tracks = excerpt->tracksMapping(); - - if (!tracks.empty() && strack != muse::nidx) { - strack = muse::key(tracks, strack, muse::nidx); - } - } - } + track_idx_t strack = element->track(); ElementType et = element->type(); @@ -6431,15 +6420,6 @@ void Score::undoAddCR(ChordRest* cr, Measure* measure, const Fraction& tick) Staff* ostaff = cr->staff(); track_idx_t strack = ostaff->idx() * VOICES + cr->voice(); - // If this is on an excerpt, get actual track - if (mu::engraving::Excerpt* excerpt = ostaff->score()->excerpt()) { - if (ostaff->isVoiceVisible(cr->voice())) { - const TracksMap& tracks = excerpt->tracksMapping(); - if (!tracks.empty()) { - strack = muse::key(tracks, strack, muse::nidx); - } - } - } SegmentType segmentType = SegmentType::ChordRest; From 3576241b183d649f8b5314a0e3fe6d2b526ce7a4 Mon Sep 17 00:00:00 2001 From: Michele Spagnolo Date: Mon, 12 Aug 2024 09:49:34 +0200 Subject: [PATCH 3/3] correction --- src/engraving/dom/edit.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/engraving/dom/edit.cpp b/src/engraving/dom/edit.cpp index ce69044229a44..514a392ff2a91 100644 --- a/src/engraving/dom/edit.cpp +++ b/src/engraving/dom/edit.cpp @@ -6419,7 +6419,7 @@ void Score::undoAddCR(ChordRest* cr, Measure* measure, const Fraction& tick) } Staff* ostaff = cr->staff(); - track_idx_t strack = ostaff->idx() * VOICES + cr->voice(); + track_idx_t strack = cr->track(); SegmentType segmentType = SegmentType::ChordRest;