bug-lilypond
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Length-1 tuplets crash LilyPond (with strict-note-spacing & tupletFullLe


From: Trevor Bača
Subject: Length-1 tuplets crash LilyPond (with strict-note-spacing & tupletFullLength)
Date: Wed, 16 Sep 2015 17:04:07 -0400

Hi,

I've been using length-1 tuplets in my music recently. (Length-1 tuplets
being tuplets with only a single note or rest.) It's quite wonderful that
Lily handles these things correctly (just like how the system handles
unusual time signatures like 1/12 and 5/14, too).

But I've now uncovered a bug that crashes LilyPond during the drawing stage
of interpretation.

Drawing
systems.../home/gub/NewGub/gub/target/darwin-x86/src/lilypond-git.sv.gnu.org--lilypond.git-release-unstable/flower/include/interval.hh:227:
failed assertion `!is_empty ()'
Minimal example:

%%% BEGIN BUG %%%

\version "2.19.27"

\layout {
    \context {
        \Score
        \override SpacingSpanner #'strict-note-spacing = ##t
        tupletFullLength = ##t
    }
}

\new Staff {
    \time 1/8
    \times 2/3 {
        c'8.
    }
    \time 5/8
    \times 2/3 {
        c'8.
        c'8.
        c'8.
        c'8.
        c'8.
    }
}

GNU LilyPond 2.19.27
Processing `illustration.ly'
Parsing...
Interpreting music...
Preprocessing graphical objects...
Finding the ideal number of pages...
Fitting music on 1 page...
Drawing
systems.../home/gub/NewGub/gub/target/darwin-x86/src/lilypond-git.sv.gnu.org--lilypond.git-release-unstable/flower/include/interval.hh:227:
failed assertion `!is_empty ()'

%%% END BUG %%%

Three conditions must be met to trigger the bug:

   1. strict-note-spacing must be true.
   2. tupletFullLength must be true.
   3. further note input must follow the length-1 tuplet

The following three modified examples help illustrate these conditions:

%%% BEGIN COUNTEREXAMPLE 1 %%%

\version "2.19.27"

\layout {
    \context {
        \Score
        *% example works with strict-note-spacing commented-out*
        %\override SpacingSpanner #'strict-note-spacing = ##t
        tupletFullLength = ##t
    }
}

\new Staff {
    \time 1/8
    \times 2/3 {
        c'8.
    }
    \time 5/8
    \times 2/3 {
        c'8.
        c'8.
        c'8.
        c'8.
        c'8.
    }
}

%%% END %%%


%%% BEGIN COUNTEREXAMPLE 2 %%%

\version "2.19.27"

\layout {
    \context {
        \Score
        \override SpacingSpanner #'strict-note-spacing = ##t
        *% example works with tupletFullLength commented-out*
        %tupletFullLength = ##t
    }
}

\new Staff {
    \time 1/8
    \times 2/3 {
        c'8.
    }
    \time 5/8
    \times 2/3 {
        c'8.
        c'8.
        c'8.
        c'8.
        c'8.
    }
}

%%% END %%%


%%% BEGIN COUNTEREXAMPLE 3 %%%

\version "2.19.27"

\layout {
    \context {
        \Score
        \override SpacingSpanner #'strict-note-spacing = ##t
        tupletFullLength = ##t
    }
}

\new Staff {
    \time 1/8
    \times 2/3 {
        c'8.
    }
    *% example works with second tuplet commented out*
    %\time 5/8
    %\times 2/3 {
    %    c'8.
    %    c'8.
    %    c'8.
    %    c'8.
    %    c'8.
    %}
}

%%% END %%%


The bug is present under 2.19.26 and 2.19.27; I haven't tested under early
versions.

Thank you for all of the wonderful work in support of LilyPond's rhythmic
time-keeping,

Trevor.

-- 
Trevor Bača
www.trevorbaca.com


reply via email to

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