lilypond-user
[Top][All Lists]
Advanced

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

Lilypond bug "Exited with return code-1073741819" & workaround


From: mclaren
Subject: Lilypond bug "Exited with return code-1073741819" & workaround
Date: Sat, 5 Nov 2016 18:28:33 -0700 (MST)

This simple example crashes Lilypond. You wouldn't think putting
6 broken tuplets into a measure would make Lilypond stop working,
but it does. To get the error

Exited with return code-1073741819

uncomment the line
 % \time 4918233/340340 

and comment the lines immediately below

 \once \override Staff.TimeSignature #'stencil = ##f  
 \time 3237/224 

  The workaround for this Lilypond bug is to approximate the
time signature 4918233/340340 with the smaller rational
fraction time signature 3237/224. Apparently Lilypond can't
deal with large time signatures. This makes no sense, since
Lilypond runs on a modern computer with 64-bit integers, 
but Donald Trump is running for president, so no one
said things would make sense.

  To get the large time signature to print, we override
printing the smaller rational fraction approximation
time signature and then force printing of the large
time signature. 

  Here's the Lilypond code:

\version "2.18.2"

\header { 
  tagline = ""  % removed 
} 
#(set-default-paper-size "a4" 'landscape)
indent=0

  \layout {
  \context {
      \Score
     \override SpacingSpanner.uniform-stretching = ##t   
   }
  % \override Score.SpacingSpanner.strict-note-spacing = ##t
   \context {
      \Score
      proportionalNotationDuration = #(ly:make-moment 5/60)
    }
  
  \context {
    \type Engraver_group
    % Add elements that _can_ be printed
    \consists "Timing_translator"
    \consists "Time_signature_engraver"
   
    \alias "Staff"
      
  }
  \context {
    \Score
    %\accepts "TimeLine"

    \override TupletNumber.text = #tuplet-number::calc-fraction-text
    \override TupletBracket.bracket-visibility = ##t
  }
  \context {
    \Staff
    \consists "Timing_translator"
    \consists "Default_bar_line_engraver"
   
  }
}


  
  
<<
  
% Time signature:  [2 x (9/11) + 2 x (5/8) + 2 x (11/13) + 
%  2 x (3/5) + 2 x (13/17) + 2 x (4/7) + 6 ] eighth notes =
% 11*11*13*5*17*7 = 680680, but this can be reduced by a
% factor of 2 because there's an 8 in the denominator and
% 2 in the numerator. 


  

\new Staff { \clef "treble"
   % \time 4918233/340340 
    
  % This is the accurate time signature, but it crashes
  % Lilypond. The solution? Use a rational approximation
  % program to find the closest time signature -- 3237/224
  % approximates 4918233/340340 to within 0.000007142857143094261
    %\time 4918233/340340 
  
 %\once \override Staff.TimeSignature #'stencil = ##f  
  %\time 3237/224 
  
  \override Staff.TimeSignature.stencil = #ly:text-interface::print 
  \override Staff.TimeSignature.text = 
  \markup \override #'(baseline-skip . 0) \center-column \number { 
    \concat { 
      "4918233" 
      
    } 
    "340340" 
  }
              
{


\relative c''

{\tuplet 5/3 {c8[ c8]}  c8 \tuplet 17/13 {c8[ c8]} c8 
 \tuplet 7/4 {c8[ c8]} c8 }

\relative c''

{ \tuplet 11/9 {c8[ c8]}  c8 \tuplet 8/5 {c8[ c8]} c8 \tuplet 13/11
 {c8[ c8]} c8 }  
}
\bar "|"
\relative c''
{\tuplet 5/3 {c8[ c8]}  c8 \tuplet 17/13 {c8[ c8]} c8 
 \tuplet 7/4 {c8[ c8]} c8 }

\relative c''

{ \tuplet 11/9 {c8[ c8]}  c8 \tuplet 8/5 {c8[ c8]} c8 \tuplet 13/11
 {c8[ c8]} c8 }  

\bar "|"

\relative c''
{\tuplet 5/3 {c8[ c8]}  c8 \tuplet 17/13 {c8[ c8]} c8 
 \tuplet 7/4 {c8[ c8]} c8 }

\relative c''

{ \tuplet 11/9 {c8[ c8]}  c8 \tuplet 8/5 {c8[ c8]} c8 \tuplet 13/11
 {c8[ c8]} c8 }  

\bar "|"

\relative c''
{\tuplet 5/3 {c8[ c8]}  c8 \tuplet 17/13 {c8[ c8]} c8 
 \tuplet 7/4 {c8[ c8]} c8 }

\relative c''

{ \tuplet 11/9 {c8[ c8]}  c8 \tuplet 8/5 {c8[ c8]} c8 \tuplet 13/11
 {c8[ c8]} c8 }  

\bar "|"

\relative c''
{\tuplet 5/3 {c8[ c8]}  c8 \tuplet 17/13 {c8[ c8]} c8 
 \tuplet 7/4 {c8[ c8]} c8 }

\relative c''

{ \tuplet 11/9 {c8[ c8]}  c8 \tuplet 8/5 {c8[ c8]} c8 \tuplet 13/11
 {c8[ c8]} c8 }  

\bar "|"



}


\new Staff { \clef "treble"
  
 \once \override Staff.TimeSignature #'stencil = ##f  
  \time 3237/224 
  
  \override Staff.TimeSignature.stencil = #ly:text-interface::print 
  \override Staff.TimeSignature.text = 
  \markup \override #'(baseline-skip . 0) \center-column \number { 
    \concat { 
      "4918233" 
      
    } 
    "340340" 
  }
\relative c''
{c8 \tuplet 11/9 {c8[ c8]}  c8 \tuplet 8/5 {c8[ c8]} c8 \tuplet 13/11
 {c8[ c8]} }  


\relative c''
{c8 \tuplet 5/3 {c8[ c8]}  c8 \tuplet 17/13 {c8[ c8]} c8 
 \tuplet 7/4 {c8[ c8]} }  

\bar "|"

\relative c''
{c8 \tuplet 11/9 {c8[ c8]}  c8 \tuplet 8/5 {c8[ c8]} c8 \tuplet 13/11
 {c8[ c8]} }  


\relative c''
{c8 \tuplet 5/3 {c8[ c8]}  c8 \tuplet 17/13 {c8[ c8]} c8 
 \tuplet 7/4 {c8[ c8]} }  

\bar "|"

\relative c''
{c8 \tuplet 11/9 {c8[ c8]}  c8 \tuplet 8/5 {c8[ c8]} c8 \tuplet 13/11
 {c8[ c8]} }  


\relative c''
{c8 \tuplet 5/3 {c8[ c8]}  c8 \tuplet 17/13 {c8[ c8]} c8 
 \tuplet 7/4 {c8[ c8]} }  

\bar "|"

\relative c''
{c8 \tuplet 11/9 {c8[ c8]}  c8 \tuplet 8/5 {c8[ c8]} c8 \tuplet 13/11
 {c8[ c8]} }  


\relative c''
{c8 \tuplet 5/3 {c8[ c8]}  c8 \tuplet 17/13 {c8[ c8]} c8 
 \tuplet 7/4 {c8[ c8]} }  

\bar "|"

\relative c''
{c8 \tuplet 11/9 {c8[ c8]}  c8 \tuplet 8/5 {c8[ c8]} c8 \tuplet 13/11
 {c8[ c8]} }  

\relative c''
{c8 \tuplet 5/3 {c8[ c8]}  c8 \tuplet 17/13 {c8[ c8]} c8 
 \tuplet 7/4 {c8[ c8]} }  

\bar "|"

} 

>>


<http://lilypond.1069038.n5.nabble.com/file/n196195/EXAMPLE_43b-extensive_broken_tuplets_w_large_time_sig-FIXED.jpg>
 



--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/Lilypond-bug-Exited-with-return-code-1073741819-workaround-tp196195.html
Sent from the User mailing list archive at Nabble.com.



reply via email to

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