Hi David,
Aah, I'm sorry - I was not aware that casting to int works by
/truncating/. Then it's quite obvious what's happening here.
Which code do you think has a problem related to your example?
Compile
\version "2.19" \score { { <d' f' a'>4 \clef bass <f, a, c> }
\layout { #(layout-set-staff-size 19) % different magic number
with layout-set-absolute-staff-size: %
#(layout-set-absolute-staff-size 6.011034) } }
with a LilyPond patched with
diff --git a/lily/stem.cc b/lily/stem.cc index 37aa40c250..57995d8af7
100644 --- a/lily/stem.cc +++ b/lily/stem.cc @@ -627,6 +627,7 @@
Stem::calc_positioning_done (SCM smob) parity = true;
lastpos = int (p); + message (_f ("In Stem::calc_positioning_done:
lastpos = int (p) truncates %f to %f", p, lastpos)); } return
SCM_BOOL_T;
against current master (or in fact any LilyPond version starting from
your commit cb6024decee0aafd84baafe34115fc1b2d179df6 implementing
changing the staff line spacing in the \layout block). This exhibits
issue 5303 (see attached image) and shows where the int () cast causes
the problem:
Processing `/home/lukas/Musik/lp/Misplaced_note_head_MWE.ly'
Parsing...
Interpreting music...
Preprocessing graphical objects...
In Stem::calc_positioning_done: lastpos = int (p) truncates -3.000000 to
-2.000000
In Stem::calc_positioning_done: lastpos = int (p) truncates -1.000000 to
-1.000000
In Stem::calc_positioning_done: lastpos = int (p) truncates -3.000000 to
-2.000000
In Stem::calc_positioning_done: lastpos = int (p) truncates -1.000000 to
-1.000000
Finding the ideal number of pages...
Fitting music on 1 page...
Drawing systems...
Layout output to `/tmp/lilypond-lXcH6C'...
Converting to `Misplaced_note_head_MWE.pdf'...
Deleting `/tmp/lilypond-lXcH6C'...
Success: compilation successfully completed
I'm not sure why the reduction to an integer is done in the first place.
For the MWE, both keeping it as a float
lastpos = p;
and explicitly rounding 'correctly' to an integer
lastpos = int (round (p) );
solve the problem. I expect one should run both versions through a
comparison of regression tests, but I never did this before, so I'd
better leave this for tomorrow. :-)
Best Lukas
_______________________________________________
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel