MuseJazz: Double barline distance is much too small
Reported version
3.0
Priority
P1 - High
Type
Graphical (UI)
Frequency
Once
Severity
S3 - Major
Reproducibility
Always
Status
closed
Regression
No
Workaround
Yes
Project
In MuseJazz the Double barline distance is set to 0.30sp, but the Double barline thickness is also set to 0.30sp. This results in one thick barline of 0.60sp instead of two barlines (see screenshot).
I would suggest a default value of 0.45sp for the MusJeazz Double barline distance.
Attachment | Size |
---|---|
MuseJazzDoubleBarline.PNG | 3.41 KB |
Comments
these values are taken from fonts/musejazz/metadata.json, line 4 and 26
Yes, but they are still wrong :-)
Who has the authority to change these values? Can I create a PR myself? (After signing the CLA, which may take it's time, as I need the permission form my company.)
I'm not saying that they are right, or rightly interpreted, just where they come from.
And they get used in mscore/editstyle.cpp, lines 1251-1281, maybe another special casing is needed here?
And I think it is more of a bug than a (mis-)feature
Your are right, this is a Bug in MuseScore in the interpretation of barlineSeparation. I f we look in the SMuFL spec we see:
"barlineSeparation": The default distance between multiple barlines when locked together, e.g. between two thin barlines making a double barline, or a thin and a thick barline making a final barline, measured from the right-hand edge of the left barline to the left-hand edge of the right barline.
MuseScore seems to take the distance as distance between the left edge and left edge. This means we have to add one thinBarlineThickness to this distance to get it right,
This would influence the appearance of double barlines for the other fonts. Looking at Bravura a bigger distance would move MuseScore nearer to the Steinberg version (see attached pics). I Can't say anything to Emmentaler and Gonville.
something like this?
"Use The Source Luke" :-)
I was wrong, looking in barline.cpp one sees, that MuseScore measures the distance between the centers of the barlines. Therefore it is ok for an end bar to add half of a thin barline thickness and half of a thick barline distance. For a double barline we have to add two half of thin barline, which ends up in:
cs->undo(new ChangeStyleVal(cs, Sid::doubleBarDistance,
cs->styleV(Sid::doubleBarDistance).toDouble()
+ cs->styleV(Sid::barWidth).toDouble() ));
BTW: Exists anywhere some documentation how to format a comment?
Which is what my code above does (without shortening)
I think I'll add this to https://github.com/musescore/MuseScore/pull/4125, as it seems closely related
I wonder whether the repeat barline dots distance 'guess' could get improved to somehow, seems to close for MuseJazz, assuming the dot to have a width of .3 seems not working too well there
For me it seems, that the only "good" idea is to get the width of SymId::repeatDot from the font itself. :-(
Maybe I'm stupid, but why not measure the right distance to begin with? (I.e. from the right side of the left barline to the left side of the right barline instead of from the center of the lines)
Well, it probably has been that way in MuseScore a long time before SMuFL did it differently. And when drawing simple lines, then change their thickness, it is notmal that they widen to either side, so measure from center to center comes quite naturally
We draw one barline, then move a distance D and them draw the next barline. At each time the current position is used as the center of the pen. Therefore I said, that MuseScore measures D from center to center. And this makes is naturally for the Software Developer.
But if you asked someone, who is not a Software Developer or a Mathematician, what is the distance between two houses, he/she will measure from wall to wall, not from the center of one house to the center of the next house. This makes the definition of SMuFL the natural definition for the normal user. Even I (both Mathematician and Software Developer) assumed this definition of distance when I first opened the barline style editor. This means, I vote for the idea of Louis.
Changing this would mean, that we "only" have to move the formulas from editstyle.cpp to barline.cpp. And that we change back all these many constants in this large number of files :-(
@Jojo: Sorry for this comment :-)
No problem with the comment ;-)
Just write the code and make it a PR ... "The better is the good's enemy" as a German proverb says.
By the way, this would also solve the repeat dots issue. Current code in barline.cpp:
Fixed in branch master, commit 524d30e2e0
fix #278219: MuseJazz: Double barline distance is much too small
this is a Bug in MuseScore in the interpretation of barlineSeparation.
If we look in the SMuFL spec we see:
"barlineSeparation": The default distance between multiple barlines when
locked together, e.g. between two thin barlines making a double barline,
or a thin and a thick barline making a final barline, measured from the
right-hand edge of the left barline to the left-hand edge of the right
barline.
MuseScore takes the distance as distance between the center of these.
This means we have to add one thinBarlineThickness to
this distance to get it right.
and related to fix #277991: adjust barline style defaults to those of
Emmentaler and its metadata.json, so changing a way from and back to
Emmentaler doesn't change the barline styles
Automatically closed -- issue fixed for 2 weeks with no activity.