lilypond-devel
[Top][All Lists]
Advanced

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

Re: [2.20] Issue 4943 Manual page breaking causing assertion failure usi


From: Chris Yate
Subject: Re: [2.20] Issue 4943 Manual page breaking causing assertion failure using Windows
Date: Wed, 04 Jan 2017 10:11:05 +0000

On Tue, 3 Jan 2017 at 22:58 Thomas Morley <address@hidden> wrote:

> 2017-01-03 18:04 GMT+01:00 Chris Yate <address@hidden>:
> > On Tue, 3 Jan 2017 at 16:23 Thomas Morley <address@hidden>
> wrote:
>
> >>
> >> Do you have the same problems, while putting it in \layout and using
> >> manual breaks? Like:
> >>
> >> \layout {
> >>   \autoBreaksOff
> >> }
> >>
> >> { \repeat unfold 22 b2
> >>   \repeat unfold 320 b2
> >>   \break
> >>   R1
> >>   \repeat unfold 320 b2 }
> >>
> > That example is OK, but I don't think the Layout makes any differece.
> >
> > It seems it's the "autoPageBreaksOff" in particular that is a problem. A
> few
> > examples (not comprehensive):
> [...]
>
> Well, I have no windows at hand so I can't test all the examples.
> But this one gives wrong output on Linux as well.
> Only second system is printed at all !!
>
> > This looks OK (though there's no breaks) but causes "Programming Error:
> > bounds of spanner are invalid"
> >
> > {
> >   \autoBreaksOff
> >   \repeat unfold 22 b2
> >   \repeat unfold 320 b2
> > \break
> >   R1
> >   \repeat unfold 320 b2
> > }
>
> I've wrote some test-code, for testing with all stable versions since
> 2.12.3 and the new devel-versions.
>
> %% snippet start
>
> #(define testMusic
>   (if (string-ci>? (cadr (string-split (lilypond-version) #\.)) "16")
> ;; 2.18. and higher
> #{
>    \overrideProperty Score.NonMusicalPaperColumn.line-break-permission ##f
>    \override Score.NonMusicalPaperColumn.line-break-permission = ##f
>    \overrideProperty Score.NonMusicalPaperColumn.page-break-permission ##f
>    \override Score.NonMusicalPaperColumn.page-break-permission = ##f
>
>    \repeat unfold 320 b2
>    \break
>    R1
>    \repeat unfold 320 b2
>
> #}
> #{
>    \overrideProperty "Score.NonMusicalPaperColumn" #'line-break-permission
> ##f
>    \override Score.NonMusicalPaperColumn #'line-break-permission = ##f
>    \overrideProperty "Score.NonMusicalPaperColumn" #'page-break-permission
> ##f
>    \override Score.NonMusicalPaperColumn #'page-break-permission = ##f
>
>    \repeat unfold 320 b2
>    \break
>    R1
>    \repeat unfold 320 b2
> #}))
>
> \new Staff \testMusic
>
> %% snippet end
>
> %%%%%%%%%%%%%%%
>
> For all tested versions (2.12.3, 2.14.2, 2.16.2, 2.18.2, 2.19.52) I get
> (1)
> several instances of
> programming error: bounds of spanner are invalid
> continuing, cross fingers
> (2)
> first system is _never_ printed in pdf
>
> %%%%%%%%%%%%%%%
>
> If all instances of
> \overrideProperty ...
> in the snippet above are commented everything is always fine!!
>
> %%%%%%%%%%%%%%%
>
> That let me think something fundamental is broken with
> overrideProperty for a very long time.
> And as another shot in the dark: maybe the bug could be avoided by
> deleting all overrideProperty-settings, i.e.
>
> %% new defs start
>
> autoLineBreaksOff =
>   \override Score.NonMusicalPaperColumn.line-break-permission = ##f
>
> autoLineBreaksOn =
>   \override Score.NonMusicalPaperColumn.line-break-permission = #'allow
>
> autoPageBreaksOff =
>   \override Score.NonMusicalPaperColumn.page-break-permission = ##f
>
> autoPageBreaksOn =
>   \override Score.NonMusicalPaperColumn.page-break-permission = #'allow
>
> autoBreaksOff = { \autoLineBreaksOff \autoPageBreaksOff }
>
> autoBreaksOn = { \autoLineBreaksOn \autoPageBreaksOn }
>
> %% new defs end
>
> This will ofcourse limit the possible use-cases:
> As of the discussion on Rietveld it was intended to use
> autoBreaksOff/On prepended with \once in mid-music. This will likely
> not work in all cases anymore.
>
> Anyway,
> Chris, may I ask you to test with definitions above?
>
> Cheers,
>   Harm
>


Hi Harm,

I'm not quite sure what you want me to test, but, here's what I've tried.
See files below.

1) Compiling Test.ly with
a) no includes (using the builtin definitions)
b) including Defs1.ily
c) including Defs2.ily

-- All crash (the assertion failure).

2) Compiling TestMusic.ly completes successfully, but does not render the
first line of notes, only the ones after the R1 rest. I also see six
"Programming error, bounds of spanner" messages.

I'm happy to try anything else you can think of that might help diagnose
the problem!

**** File contents follow ****

%%%%%% Test.ly

\version "2.19.45"

%\include "Defs1.ily"
%\include "Defs2.ily"

{
  \repeat unfold 22 b2
  \autoPageBreaksOff
  \repeat unfold 320 b2
  \once \autoPageBreaksOn
  R1
  \repeat unfold 320 b2
}

%%%%%%%%% end Test.ly


%%%%% TestMusic.ly

\version "2.19.45"

#(define testMusic
  (if (string-ci>? (cadr (string-split (lilypond-version) #\.)) "16")
;; 2.18. and higher
#{
   \overrideProperty Score.NonMusicalPaperColumn.line-break-permission ##f
   \override Score.NonMusicalPaperColumn.line-break-permission = ##f
   \overrideProperty Score.NonMusicalPaperColumn.page-break-permission ##f
   \override Score.NonMusicalPaperColumn.page-break-permission = ##f

   \repeat unfold 320 f2
   \break
   R1
   \repeat unfold 320 b2

#}
#{
   \overrideProperty "Score.NonMusicalPaperColumn" #'line-break-permission
##f
   \override Score.NonMusicalPaperColumn #'line-break-permission = ##f
   \overrideProperty "Score.NonMusicalPaperColumn" #'page-break-permission
##f
   \override Score.NonMusicalPaperColumn #'page-break-permission = ##f

   \repeat unfold 320 b2
   \break
   R1
   \repeat unfold 320 b2
#}))

\new Staff \testMusic

%%%%%%%%% end TestMusic.ly

%%%%% Defs1.ily

autoLineBreaksOff = {
  \overrideProperty Score.NonMusicalPaperColumn.line-break-permission ##f
  \override Score.NonMusicalPaperColumn.line-break-permission = ##f
}
autoLineBreaksOn = {
  \overrideProperty Score.NonMusicalPaperColumn.line-break-permission
#'allow
  \override Score.NonMusicalPaperColumn.line-break-permission = #'allow
}
autoPageBreaksOff = {
  \overrideProperty Score.NonMusicalPaperColumn.page-break-permission ##f
  \override Score.NonMusicalPaperColumn.page-break-permission = ##f
}
autoPageBreaksOn = {
  \overrideProperty Score.NonMusicalPaperColumn.page-break-permission
#'allow
  \override Score.NonMusicalPaperColumn.page-break-permission = #'allow
}

autoBreaksOff = { \autoLineBreaksOff \autoPageBreaksOff }
autoBreaksOn = { \autoLineBreaksOn \autoPageBreaksOn }

%%%%% end Defs1.ily

%%%%% Defs2.ily

autoLineBreaksOff =
  \override Score.NonMusicalPaperColumn.line-break-permission = ##f

autoLineBreaksOn =
  \override Score.NonMusicalPaperColumn.line-break-permission = #'allow

autoPageBreaksOff =
  \override Score.NonMusicalPaperColumn.page-break-permission = ##f

autoPageBreaksOn =
  \override Score.NonMusicalPaperColumn.page-break-permission = #'allow

autoBreaksOff = { \autoLineBreaksOff \autoPageBreaksOff }

autoBreaksOn = { \autoLineBreaksOn \autoPageBreaksOn }

%%%%% end Defs2.ily


reply via email to

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