Wrong stem length in generated parts

• May 4, 2020 - 09:36

Practiced some note input technique on an orchestral template, and generated parts show a bug. See pics. For some reason only on flute 2, and oboe 1. Deleted all parts and generated again, same look. Attached a score and a screenshot.

Attachment Size
Screen Shot 2020-05-04 at 10.34.18.png 313.81 KB
muse learn.mscz 41.25 KB


Workaround: go to those parts, Ctrl+A, Ctr+R
Or: remove all parts, do the Ctrl+A, Ctr+R on the score (or at least on those 2 staves), generate the parts again

Many beams have had custom positions added. Click on one and look in the inspector and you will see in the Beam section that the x and y offsets are non-zero, To fix things, go back to the part, select all (from the edit menu) and then use CTRL+R to reset everything to it's default position and it then should look more normal.

I believe the bug there is that the sp-size of the custom beam position (which you only have set in the master score for Flute 2 and Oboe 1) are being scaled to compensate for the different scaling setting between score and part; as those values are in sp they shouldn't be scaled when parts are generated.

Consider removing the custom positioning of those beams in the main score as well:
1. Right-click (Cltr-click on Mac) a beam in one of those staves
2. Select all similar elements in same staff
3. In the Inspector (F8) click the reset button next to the "Custom position" checkbox
4. Repeat for the other stave

(5. regenerate your parts)

In reply to by jeetee

Possible fix:

diff --git a/libmscore/beam.cpp b/libmscore/beam.cpp
index d57d35b63..c83622f15 100644
--- a/libmscore/beam.cpp
+++ b/libmscore/beam.cpp
@@ -2005,7 +2005,7 @@ void Beam::layout2(std::vector<ChordRest*>crl, SpannerSegmentType, int frag)
 void Beam::spatiumChanged(qreal oldValue, qreal newValue)
-      int idx = (_direction == Direction::AUTO || _direction == Direction::DOWN) ? 0 : 1;
+      int idx = (!_up) ? 0 : 1;
       if (_userModified[idx]) {
             qreal diff = newValue / oldValue;
             for (BeamFragment* f : fragments) {

See https://github.com/musescore/MuseScore/pull/6034

Do you still have an unanswered question? Please log in first to post your question.