[Top][All Lists]

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

Re: Error message

From: Craig Dabelstein
Subject: Re: Error message
Date: Wed, 26 Jun 2019 04:48:39 +1000

Hi Aaron,

The inclusion of \override Stem.neutral-direction = #'() comes straight from the LSR here:

Here is another MWE to reproduce the problem:

\version "2.19.82"
\language english

\layout {
  \context {
    \consists "Melody_engraver"
    \override Stem.neutral-direction = #'()

\relative c'' {
  \time 3/2
  \tuplet 3/2 2 {
    r4 df \f af gf' cf, ef gf, e' a,
  } |
  \tuplet 3/2 2 { r4 g' bf, f' e, r df' c, r } |

And the error message:

Starting lilypond 2.19.82 []...

Processing `/Users/craigdabelstein/Desktop/'


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/ failed assertion `d == 1 || d == -1'

Exited with exit status 1.


On Tue, 25 Jun 2019 at 22:56, Aaron Hill <address@hidden> wrote:
On 2019-06-25 4:46 am, David Kastrup wrote:
> Craig Dabelstein <address@hidden> writes:
>> And the guilty line is ...
>> \consists "Melody_engraver"
>> %\override Stem.neutral-direction = #'()
>> Commenting out the \override Stem.neutral-direction line fixed the
>> problem.
> More likely than not half of a red herring: garbage protection problems
> are quite elusive to track down.  This propably changes the actions the
> Melody_engraver takes.

Unless I am completely lost myself, this is not the trampoline problem
from before, though I suspect the appearance of "Melody_engraver" has
confused things.

Here is the proper repro MWE:

\version "2.19.82"
   \override Stem.neutral-direction = #'()
   \tuplet 3/2 { r4 b' c'' }

This is bad input because neutral-direction must be strictly UP or DOWN
(or rather it can be a procedure that ultimately evaluates to 1 or -1). 
 From what I can see, the point of the property is to determine what
happens to a note on the middle line of a staff when there is nothing
else (like a beam) that can help sway the decision one way or the other.
  Setting it to #'() would seem to be meaningless.

Consider the output from the above MWE:

GNU LilyPond 2.19.82
Processing `'
Interpreting music...
Preprocessing graphical objects...
programming error: Stem dir must be up or down.
continuing, cross fingers
Finding the ideal number of pages...
Fitting music on 1 page...
Drawing systems...lilypond:
T& Drul_array<T>::at(Direction) [with T = double]: Assertion `d == 1 ||
d == -1' failed.
The terminal process terminated with exit code: 134

LilyPond is already emitting a programming error: "Stem dir must be up
or down".  Whenever I see "cross fingers", I never make any assumption
of what will work or not.  So a failing assertion afterwards is not

Craig: Would you confirm whether your project output contains the
programming error line?  I would say there is a bug if you are *only*
seeing the failing assertion.

Perhaps an additional check could be added to to ensure that
neutral-direction has a sane value, which could catch this particular
error earlier in the process.

-- Aaron Hill

lilypond-user mailing list

Craig Dabelstein
email: address@hidden
Maxime's Music, QLD, Australia
facebook icon twitter icon youtube icon instagram icon

reply via email to

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