Wrong vertical position of breath mark

• Jan 3, 2018 - 14:53
Reported version
3.0
Priority
P1 - High
Type
Functional
Severity
S4 - Minor
Status
active
Regression
No
Workaround
No
Project

Regression in visual test breath-1:

Vertical position of breath mark is wrong.

Expected:
breath-1-ref.png

Actual:
breath-1-1.png


Comments

The visual tests are using the MScore font, which is based on LilyPond's Emmentaler font. The symbol for the breath mark in Emmentaler has a unique appearance, and it is intended to be positioned such that it intersects the top staff line. Other fonts have a symbol that more closely resembles the comma in the palette, and this symbol is intended to be positioned above the staff.

Commit f09f554 was meant to fix this issue, but it repositioned all of the non-caesura breath marks for all of the fonts, rather than just the one breath mark in the MScore font. Breath::layout() should probably instead look like this:

void Breath::layout()
      {
      bool palette = (track() == -1);
      if (!palette) {
            if (isCaesura())
                  setPos(x(), spatium());
            else if ((score()->styleSt(Sid::MusicalSymbolFont) == "Emmentaler") && (symId() == SymId::breathMarkComma))
                  setPos(x(), 0.5 * spatium());
            else
                  setPos(x(), -0.5 * spatium());
            }
      setbbox(symBbox(_symId));
      }

This also fixes the problem of the symbols not being centered vertically in the palette.

I thought about adjusting the symbol's position in the MScore font itself, but we are already repositioning all of the breath marks anyway during layout. After giving the matter much thought, I have decided that the solution I showed above makes more sense.

Status PR created fixed

Looks like the issue wasn't closed automatically after the merging of the pull request?

But as far I can see, all other fonts (Bravura, MuseJazz, Gonville, Petaluma) except Emmentaler (the default font before Leland) seems to follow the placement like Leland.

Status active closed

So it is correct then. Since this issue is about vertical placement, and the other thread is more about horizontal positioning, I am changing the status back to ‘closed’.

Status closed active

Maybe I miss something, but what is vour reason, that the behavior of other music fonts than Emmentaler should be correct - at least shouldn't it be have a discussion in general? If needed, I'll find a lot of scores to attache them, where the breath mark are placed onto the upper note line and not above.

I don't have strong opinions about the defaults, but FWIW, Gould says "above". Would be worth checking with Simon.

But independently of the question of defaults, we should have an easy way to set your own preference. Most sensible is to have a style setting for default height, and let different fonts have their own defaults for that, similar to how we do for some other font-specific style defaults. I could imagine also each font defining its own attachment point for the symbol, on the assumption it will be attached starting right on the top line, fonts wanting to be placed above the line would define their attachment to be before the body of the glyphy, and fonts wanting to be placed on the line could define it mid-glyph. But we'd probably still want a style override.

But I definitely don't favor special-casing fonts by name in the code; in general that seems like a last resort to me and a sign that we've failed somewhere else.

@kuwitt, my idea of what is correct is based on Elaine Gould, as well as the links that you yourself have provided (https://archive.org/stream/EssentialDictionaryOfMusicNotation_201303/Es… and http://lilypond.org/doc/v2.18/Documentation/notation/expressive-marks-a…). Given all of that, and considering what I wrote here two years ago, I am not sure how you can now say that it does not work, since your screenshots clearly demonstrate otherwise.

But setting all of that aside, I agree that this should be handled via style settings. I can see having separate PosAbove and PosBelow style settings for each of the four breath symbols (the comma certainly should be able to be styled differently from the others), but shared style settings for most of the caesuras should suffice. If we don't care about altering the positioning of breath marks with adjusted Y-offsets in existing scores, adding these styles with carefully calculated defaults would allow us to really trim down the Breath::layout() code. But if we want to preserve the positioning of adjusted breath marks in existing scores, we should probably leave Breath::layout() alone and add all of these new styles with a default offset of (0.0, 0.0). https://github.com/mattmcclinch/MuseScore/commit/a38be4a takes this second approach. This allows the user to set the style settings for the various breaths and caesuras via the inspector. It would not be too difficult to then add these settings to the style dialog in a new "Breaths" page.

Letting each font specify its own defaults for breath mark offset is an interesting idea. I guess this means adding entries in each font's metadata.json file. It is certainly an elegant way to handle this situation, as long as the metadata.json files are there for us to modify as we see fit, with entries that are not necessarily taken from the SMUFL standard.

Sorry for late reply - my finger are out of order since a little while (or with other words: the actual result differ to the expected result ;-).
I'm not sure, but maybe we're discussing here a mismatch between a breath mark symbol and caesura signs?

With MuseScore 3.5.2 (Emmentaler) the breath mark is placed in this way:
breathmark352.png
With MuseScore 3.6.2 (Leland):
breathmark362.png
I think, here it's the correct position.

But Leland also includes a "single" caesura in the master palette (the last symbol there):
breaths.png
Here I think it should be available in the advanced workspace by default. Also I'm not sure if it's the correct position of the "single" caesura compared with a "double" caesura; shouldn't it be probably also placed onto the note line?:
Caesura362.png
and:
SingleCaesura362.png .

I don't know that I've ever seen the single stroke caesura used in published music, and being at least somewhat commonly used would be a criterion for inclusion in the palette. Is there some specific genre or some particular publisher you are thinking of that would justify this?

Before being late once again, here a quick example with a bad quality from a choral book. How would you interpret and transcribe these signs in measure three and five with MuseScore and Leland?
breathmarkorcaesura.jpg

That small caesura is already in the palette in the "More" section under "Breaths & Pauses". You can easily drag it into the main section if you want. But perhaps you already knew this. Personally, I don't understand the point of having to click "More" in order to get the last caesura to appear, but I guess that's why I'm not head of design.

It is already possible to adjust the y-position of breath marks and caesurae using the inspector, but having better defaults would be a good thing, and allowing this to be customized via style settings would probably be good as well. The patch I shared above takes into account the fact that this one caesura is smaller than the others, and so it has its own separate style setting to allow it to be positioned differently from the other caesurae.

I don't using self-builds, so I can't check your patch. My concern/confusion is with my example above, or one of several examples exemplary like the attachment of this user: https://musescore.org/en/node/286304#comment-905298, what should be the right behavior about the right position of this sign by default without to have adjusting the offset with the inspector; and if it should be available by default in the advanced workspace without it's necessary to use the master palette to insert it?
But as mentioned, I'm not sure about the correct behavior.

Fix version
3.0.2