lilypond-devel
[Top][All Lists]
Advanced

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

Re: stack smashing detected


From: David Kastrup
Subject: Re: stack smashing detected
Date: Thu, 25 Apr 2019 16:45:54 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)

Thomas Morley <address@hidden> writes:

> Hi all,
>
> the following code
>
> \version "2.21.0"
> {
>   \override Slur.control-points = #'((1 . 0) (2 . 3) (3 . 4) (4 . 3) (5 . 0))
>   b1( b)
> }
>
> stored in metaspline-tests-01.ly, returns:
>
> GNU LilyPond 2.21.0
> Processing `metaspline-tests-01.ly'
> Parsing...
> Interpreting music...
> Preprocessing graphical objects...
> Finding the ideal number of pages...
> Fitting music on 1 page...
> Drawing systems...*** stack smashing detected ***: <unknown> terminated
> Aborted (core dumped)
>
> Obviously more control-points than usual are provided.
> Though I've never seen such a message.
> Any insights?
> gdb-output attached.
>
>
> Background: I'm exploring whether it would be feasable to draw higher
> order bezier-curves, splitting them in cubic ones.

That's not overly useful: higher order bezier curves are higher-order
polynomials and tend to have quite less affinity to their control points
than cubic beziers have.  When splicing them together, the boundary
conditions prescribe more continuous derivatives than human drawing
would care for.  So usually your goals would be better served by
allowing _multiple_ cubic beziers in a row with suitable continuity of
derivatives (and thus some aspects of the control points) provided
automagically.  Metafont is an ingenious engine for specifying this sort
of thing, so studying it is likely a good idea.

I have an old copy of the Metafont Book flying around here that I
haven't touched in years.  I could send it to you if you want to get
ideas.  It's better than some PDF on a computer and, well, legal too.

With regard to the stack smashing: that indeed looks awful.  I'll take a
look at it.

-- 
David Kastrup



reply via email to

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