[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: TrillPitch* whiteout bug
From: |
Thomas Morley |
Subject: |
Re: TrillPitch* whiteout bug |
Date: |
Thu, 27 Jun 2024 23:07:22 +0200 |
Am Do., 27. Juni 2024 um 17:05 Uhr schrieb Trevor Bača <trevorbaca@gmail.com>:
>
> Hi,
>
> Here is a two-staff example with a bug relating to the way that whiteout
> works with TrillPitchAccidental, TrillPitchHead, TrilPitchParentheses; the
> parenthesized pitched-trill fails to print, leaving behind some type of
> visual artifact:
>
> %%% PITCHED-TRILL WHITEOUT BUG %%%
>
> \version "2.25.16"
> \language "english"
>
> A = {
> % measure 1
> c''4
> c''16
> c''16
> c''16
> c''16
> c''16
> c''16
> c''8
> % measure 2
> c''8
> c''16
> c''16
> c''16
> c''16
> c''16
> c''16
> \once \override Beam.grow-direction = #right
> c''16 * 29952/5120
> [
> c''16 * 16128/5120
> c''16 * 13312/5120
> c''16 * 11776/5120
> c''16 * 10752/5120
> ]
> }
>
> B = {
> % measure 1
> \time 3/4
> \set Score.proportionalNotationDuration = #(ly:make-moment 1/32)
> \override TrillPitchAccidental.layer = 2
> \override TrillPitchHead.layer = 2
> \override TrillPitchParentheses.layer = 2
> \clef "bass"
> r16
> \once \override TrillPitchAccidental.whiteout = ##t
> \once \override TrillPitchHead.whiteout = ##t
> \once \override TrillPitchParentheses.whiteout = ##t
> \pitchedTrill
> cs4..
> \glissando
> \startTrillSpan ds
> \afterGrace
> e4
> {
> f8
> \glissando
> }
> % measure 2
> \time 6/4
> d16
> r8.
> \stopTrillSpan
> r1
> r4
> }
>
> \new Score
> <<
> <<
> \new Staff { \A }
> \new Staff { \B }
> >>
> >>
>
> %%% END %%%
>
> [image: pitched-trill-whiteout-bug.png]
>
> What causes the bug to go away?
>
> Many things, apparently.
>
> Removing the upper staff causes the bug to go away:
>
> %%% OK WITHOUT UPPER STAFF %%%
>
> \version "2.25.16"
> \language "english"
>
> A = {
> % measure 1
> c''4
> c''16
> c''16
> c''16
> c''16
> c''16
> c''16
> c''8
> % measure 2
> c''8
> c''16
> c''16
> c''16
> c''16
> c''16
> c''16
> \once \override Beam.grow-direction = #right
> c''16 * 29952/5120
> [
> c''16 * 16128/5120
> c''16 * 13312/5120
> c''16 * 11776/5120
> c''16 * 10752/5120
> ]
> }
>
> B = {
> % measure 1
> \time 3/4
> \set Score.proportionalNotationDuration = #(ly:make-moment 1/32)
> \override TrillPitchAccidental.layer = 2
> \override TrillPitchHead.layer = 2
> \override TrillPitchParentheses.layer = 2
> \clef "bass"
> r16
> \once \override TrillPitchAccidental.whiteout = ##t
> \once \override TrillPitchHead.whiteout = ##t
> \once \override TrillPitchParentheses.whiteout = ##t
> \pitchedTrill
> cs4..
> \glissando
> \startTrillSpan ds
> \afterGrace
> e4
> {
> f8
> \glissando
> }
> % measure 2
> \time 6/4
> d16
> r8.
> \stopTrillSpan
> r1
> r4
> }
>
> \new Score
> <<
> <<
> % \new Staff { \A } % <= THIS IS THE ONLY LINE THAT IS CHANGED
> \new Staff { \B }
> >>
> >>
>
> %%% END %%%
>
> [image: ok-without-upper-staff.png]
>
> Strangely, the bug also goes away when the second glissando is removed:
>
> %%% OK WITHOUT SECOND GLISSANDO %%%
>
> \version "2.25.16"
> \language "english"
>
> A = {
> % measure 1
> c''4
> c''16
> c''16
> c''16
> c''16
> c''16
> c''16
> c''8
> % measure 2
> c''8
> c''16
> c''16
> c''16
> c''16
> c''16
> c''16
> \once \override Beam.grow-direction = #right
> c''16 * 29952/5120
> [
> c''16 * 16128/5120
> c''16 * 13312/5120
> c''16 * 11776/5120
> c''16 * 10752/5120
> ]
> }
>
> B = {
> % measure 1
> \time 3/4
> \set Score.proportionalNotationDuration = #(ly:make-moment 1/32)
> \override TrillPitchAccidental.layer = 2
> \override TrillPitchHead.layer = 2
> \override TrillPitchParentheses.layer = 2
> \clef "bass"
> r16
> \once \override TrillPitchAccidental.whiteout = ##t
> \once \override TrillPitchHead.whiteout = ##t
> \once \override TrillPitchParentheses.whiteout = ##t
> \pitchedTrill
> cs4..
> \glissando
> \startTrillSpan ds
> \afterGrace
> e4
> {
> f8
> % \glissando % <= THIS IS THE ONLY LINE THAT IS CHANGED
> }
> % measure 2
> \time 6/4
> d16
> r8.
> \stopTrillSpan
> r1
> r4
> }
>
> \new Score
> <<
> <<
> \new Staff { \A }
> \new Staff { \B }
> >>
> >>
>
> %%% END %%%
>
> [image: ok-without-second-glissando.png]
>
> The bug also goes away when the rhythm of the upper staff is changed:
>
> %%% OK WITH RHYTHMIC SIMPLIFICATION %%%
>
> \version "2.25.16"
> \language "english"
>
> A = {
> % measure 1
> % c''4
> % c''16
> % c''16
> % c''16
> % c''16
> % c''16
> % c''16
> % c''8
> c''2. % <= THIS IS THE ONLY NEW LINE
>
> % measure 2
> c''8
> c''16
> c''16
> c''16
> c''16
> c''16
> c''16
> \once \override Beam.grow-direction = #right
> c''16 * 29952/5120
> [
> c''16 * 16128/5120
> c''16 * 13312/5120
> c''16 * 11776/5120
> c''16 * 10752/5120
> ]
> }
>
> B = {
> % measure 1
> \time 3/4
> \set Score.proportionalNotationDuration = #(ly:make-moment 1/32)
> \override TrillPitchAccidental.layer = 2
> \override TrillPitchHead.layer = 2
> \override TrillPitchParentheses.layer = 2
> \clef "bass"
> r16
> \once \override TrillPitchAccidental.whiteout = ##t
> \once \override TrillPitchHead.whiteout = ##t
> \once \override TrillPitchParentheses.whiteout = ##t
> \pitchedTrill
> cs4..
> \glissando
> \startTrillSpan ds
> \afterGrace
> e4
> {
> f8
> \glissando
> }
> % measure 2
> \time 6/4
> d16
> r8.
> \stopTrillSpan
> r1
> r4
> }
>
> \new Score
> <<
> <<
> \new Staff { \A }
> \new Staff { \B }
> >>
> >>
>
> %%% END %%%
>
> [image: ok-with-slight-rhythmic-simplification.png]
>
> In fact, changing almost any one single thing about the original example
> makes the invisible-pitched-trill bug go away.
>
> Does anyone have any idea what is happening here? Or should I open an issue
> in the tracker?
>
> Trevor.
>
> --
> Trevor Bača
> www.trevorbaca.com
> soundcloud.com/trevorbaca
Hi Trevor,
here all of TrillPitchHead/Accidental/Parentheses are set to the same
layer value. This means its arbitrary what is printed above each
other. This documented somewhere, iirc, too lazy to search ...
Set TrillPitchHead/Accidental to a higher value than
TrillPitchParentheses and all works always.
Furthermore you only need whiteout for TrillPitchParentheses:
\version "2.25.16"
\language "english"
A = {
% measure 1
c''4
c''16
c''16
c''16
c''16
c''16
c''16
c''8
% measure 2
c''8
c''16
c''16
c''16
c''16
c''16
c''16
\once \override Beam.grow-direction = #right
c''16 * 29952/5120
[
c''16 * 16128/5120
c''16 * 13312/5120
c''16 * 11776/5120
c''16 * 10752/5120
]
}
B = {
% measure 1
\time 3/4
\set Score.proportionalNotationDuration = #(ly:make-moment 1/32)
\override TrillPitchAccidental.layer = 3
\override TrillPitchHead.layer = 3
\override TrillPitchParentheses.layer = 2
\clef "bass"
r16
\once \override TrillPitchParentheses.whiteout = ##t
\pitchedTrill
cs4..
\glissando
\startTrillSpan ds
\afterGrace
e4
{
f8
\glissando
}
% measure 2
\time 6/4
d16
r8.
\stopTrillSpan
r1
r4
}
\new Score
<<
<<
\new Staff { \A }
\new Staff { \B }
>>
>>
Thus no bug, afaict.
Best,
Harm