bug-lilypond
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]