[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
- Length-1 tuplets crash LilyPond (with strict-note-spacing & tupletFullLength),
Trevor Bača <=