It looks like I'm going down a road of rhythmic complexity that breaks
Lilypond rendering in the absence of arbitrary precision arithmetic.

Han-Wen: would it be possible for me to sponsor a move to arbitrary
precision arithmetic?  As you say, GUILE does support this option, and it
would be possible to select it with some sort of flag so that other users
wouldn't take the performance hit.  Such a fix would be necessary for me to
use Lilypond to fully render my scores (I can render only a few pages at the
moment).

My scores typically require things like the example below, which breaks with
an "unterminated beam" error, and I *think* it is exceeding 32-bit precision
(I'm assuming that Lily is using lowest common multiple of denominators to
deal with resolution):

\version "2.11.56"

\layout {
\context { \Score
\override NonMusicalPaperColumn #'line-break-permission = ##f
\override NonMusicalPaperColumn #'page-break-permission = ##f
\override SpacingSpanner #'uniform-stretching = ##t
\override SpacingSpanner #'strict-note-spacing = ##t
proportionalNotationDuration = #(ly:make-moment 1 20)
ragged-right = ##t
}
\context { \Voice
\remove Forbid_line_break_engraver
\override Beam #'breakable = ##t
}
}
\new Staff {
<<
\new Voice {

\time 4/1
c'2.*2351/3696
\scaleDurations #'(495 . 4336) {
d'8*11[ \bar "|" \break d'8*100 d'8*100]
}
e'1*827949/8012928
\bar "|"
\time 3/8
c'4.
 }
>>
}

%{
warning: unterminated beam d'8*11[ \bar "|" \break d'8*100 d'8*100]

[a=3696, b=34688 (denom. of 495/4366*211/8), c=8012928, d=8]
gcf(a,b,c,d) = 8
lcm(a,b,c,d) = 1027312242130944
32-bit precision maxes out at 4.3 billion (less than the lcm above)
64-bit is more like 18.4 quintillion
%}
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to