lilypond-user
[Top][All Lists]
Advanced

[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:

http://lilypond.org/doc/v2.18/Documentation/snippets/pitches#pitches-automatically-changing-the-stem-direction-of-the-middle-note-based-on-the-melody

Here is another MWE to reproduce the problem:

%%%%
\version "2.19.82"
\language english

\layout {
  \context {
    \Staff
    \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 [mwe.ly]...

Processing `/Users/craigdabelstein/Desktop/mwe.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-stable-2.20/flower/include/drul-array.hh:35: failed assertion `d == 1 || d == -1'

Exited with exit status 1.


Craig


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 `drul-array-bad-direction.ly'
Parsing...
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:
/home/gub/NewGub/gub/target/linux-64/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.20/flower/include/drul-array.hh:35:
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
surprising.

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 stem.cc:649 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
address@hidden
https://lists.gnu.org/mailman/listinfo/lilypond-user


--
photograph
Craig Dabelstein
Owner
email: address@hidden
Maxime's Music, QLD, Australia
facebook icon twitter icon youtube icon instagram icon  maximesmusic.com.au

reply via email to

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