Petaluma wings on End-Repeat barline misplaced

• Jan 6, 2021 - 22:41
Reported version
3.6
Type
Functional
Frequency
Few
Severity
S3 - Major
Reproducibility
Always
Status
fixed
Regression
No
Workaround
No
Project

Open the score 201 - NOCHE DE RONDA - WALDO (1).mscz and refuse new style. Open style settings and set the musical font to Pentaluma. The bottom wing on m77 is displaced.

Bad wing.png

The wing is also messed up if you create it from scratch and turn on wings.


Comments

Aside: If any developer works on this, also worth looking into since it is of the same subject matter (maybe and probably needs a future separate issue) is that Gonville also has a certain issue with its "wing" repeats. It gets the slight offset that Emmentaler elicits with the layout algorithm on the opening wing, but as regards closing wings they are vertically aligned below the ends of the extremities of a staff's vertical distance.

Gonville's open wing:
wing-gonville.png

Emmentaler's open wing:
wing-emm.png

Gonville's end-repeat wing (lowered).
wing-end-gonville.png

Offsetting in the font itself (Gonville's closing 'wings') to bring them up in accord with the opening would make them equal, but even then, the code could be slightly changed to allow the 'wings' to be moved slightly below to do away with any visible gap. An alternative would be to extend the line of the barline drawing beyond the staff under those conditions {[particular font] + [style: wing repeat] + [an actual repeat barline]}, but maybe that's a worse solution.

I tried to look into this issue, like to, as a workaround, special case the Petaluma reversedBracketBottom in limbscore/barline.cpp, but seem to be unable to find the right spot to change its position. Can't be that difficult really, there are only very few places mentioning that glyph, but no matter what I try, I can't get it to move :-(

Nothing I tried in fonts/petaluma/petaluma_metadata.json helped either...

There are a couple of places where calculate the box of the barline based on the assumed position of the tip, and those should probably be adjusted so we build the skyline properly. But the real job of drawing them is done in Barline::draw(). Probably the solution is to find the appropriate place to adjust the calculation of "y2" and that would hopefully solve both problems at once. I guess it is in Barline::getY().

Hmm, that y2 setting generally is good, it works fine with all other fonts. And changing the value at the places where that reversedBracketBottom is used doesn't make any difference

Right, I'm sure y2 is good. I'm just saying, if you're looking for a place to add a special-case hack for Petaluma, that's it. I didn't try modifying y2 here, but I did try modifying adding a constant to it in draw() and it definitely does cause it to be drawn where I ask. I just don't really know enough about this metadata or Petaluma to feel good about implementing the hack myself.

Status PR created fixed

Fixed in branch 3.x, commit bf52114a6c

_Update Petaluma to 1.065

this fixes:

  • Fix #314722: Dynamics text is tiny in Petaluma font
  • Fix #315238: Petaluma wings on End-Repeat barline misplaced
  • Reduces size of petaluma_metadata.json by using TABs rather than multiple spaces for formatting (similar changes had been done to the other fonts recently)_

Fixed in branch master, commit f31a33b86c

_Update Petaluma to 1.065

this fixes:

  • Fix #314722: Dynamics text is tiny in Petaluma font
  • Fix #315238: Petaluma wings on End-Repeat barline misplaced
  • Reduces size of petaluma_metadata.json by using TABs rather than multiple spaces for formatting (similar changes had been done to the other fonts recently)_
Fix version
3.6.2