[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Issue 3307: Rest positions incorrect with non-standard line count (i
From: |
dak |
Subject: |
Re: Issue 3307: Rest positions incorrect with non-standard line count (issue 8580045) |
Date: |
Wed, 10 Apr 2013 07:29:26 +0000 |
On 2013/04/10 05:47:20, Keith wrote:
You changed more than necessary to fix the reported bug. This is good
because
finally voiced r1-style whole rests are in the correct positions
(which I
confirmed with Ted Ross' book just to be careful).
More by coincidence than by design. That was likely the most
significant change affecting five-line staffs.
Quarter-rests and shorter look a bit odd now, on the even-line-count
staves, as
they are not in their usual position on a line. I'm not sure if this
is
objectively 'wrong'.
Again, I don't know what the standards would be. The non-centered rests
look bad particularly in tablature, but are also weird in two-line drum
staffs.
The best solution likely would be glyphs explicitly designed for the
off-by-half-line use case.
The reported bug does /not/ show as fixed in the make-check output for
'tablature-full-notation.ly' which confuses me. From the code, I
would have
expected it to come out right.
https://codereview.appspot.com/8580045/diff/5001/input/regression/rest-on-nonstandard-staff.ly
File input/regression/rest-on-nonstandard-staff.ly (right):
https://codereview.appspot.com/8580045/diff/5001/input/regression/rest-on-nonstandard-staff.ly#newcode39
input/regression/rest-on-nonstandard-staff.ly:39: \new StaffGroup
\with {
\override StaffGrouper.staff-staff-spacing.padding = 3 }
The short-term effect is to make the image-comparision less useful in
seeing the
effect of the patch.... but this long regtest is not very useful
anyway.
I can alternatively tell the regtest to expect overfull page warnings.
I actually don't have a clue why they would be there in the first
place: maybe pitched multi-measure rests don't count in the page
height estimates?
https://codereview.appspot.com/8580045/diff/5001/lily/rest.cc
File lily/rest.cc (right):
https://codereview.appspot.com/8580045/diff/5001/lily/rest.cc#newcode46
lily/rest.cc:46: Rest::y_offset_internal (Grob *me, int duration_log,
int dir)
Naming: something like staff_position_internal() to help us remember
that this
returns a quantity in units of staff-positions, because Y-offset is
always in
units of (global) staff-spaces.
Yes, that's reasonable. The function at first returned an offset, but
it turned out that the multi-measure rest code needs staff-spaces.
https://codereview.appspot.com/8580045/diff/5001/lily/rest.cc#newcode78
lily/rest.cc:78: if (duration_log > 1)
Shorter rests look ... unfamiliar if they are not aligned, but I'm not
sure
which is correct.
Neither am I. I was flying this by "least ugly" according to my
subjective impression.
For ancient music (four-line staff), rests of small size would be
unusual. For full tablature and drums, we'll need input from players
or (preferably) theory books and hand-engraved scores.
It is also clear that multi-measure rests, particularly in multi-voice
situations, are still bonkers. I have problems finding where they get
their positions.
https://codereview.appspot.com/8580045/