lilypond-user
[Top][All Lists]
Advanced

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

Re: Learning Lilypond internals


From: Jean Abou Samra
Subject: Re: Learning Lilypond internals
Date: Sat, 13 Aug 2022 17:33:07 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.12.0

Le 13/08/2022 à 16:27, Thomas Morley a écrit :
(Btw, there is a recent coding by Jean using it, posted here on the list.)



Actually not on this list, but on lilypond-user-fr.

https://lists.gnu.org/archive/html/lilypond-user-fr/2022-07/msg00093.html

I suppose you saw it because of

https://gitlab.com/lilypond/lilypond/-/issues/6396#note_1045570284


As I wrote, I often make experiments. Here I'd start with
\markup
   \overlay {
     \stencil
       #(stencil-with-color (make-filled-box-stencil '(0 . 10) '(0 . 10)) red)
     \whiteout
     \stencil
       #(ly:stencil-outline
          (stencil-with-color (make-filled-box-stencil '(0 . 5) '(0 . 5)) cyan)
          (make-filled-box-stencil '(0 . 8) '(0 . 8)))
   }



Beware: ly:stencil-outline affects whiteout in 'box style because
'box just uses the extents, but not in 'outline style.

\markup \combine
  \with-color "red" \filled-box #'(-10 . 10) #'(-10 . 10) #0
  \override #'(style . outline) % comment/uncomment
  \whiteout \with-outline a b


Probably continuing by researching for stencil-true-extent.
Alas, skylines are not scheme accessible afaik.


Depends on what you call Scheme-accessible. Not quite all the
C++ functions have Scheme equivalents, but some do. Some of
these Scheme functions were added quite recently when I implemented
\with-true-dimension, then chord grids.


$ git grep "ly:skyline-" -- lily/skyline-scheme.cc
lily/skyline-scheme.cc:25:LY_DEFINE (ly_skyline_touching_point, "ly:skyline-touching-point", lily/skyline-scheme.cc:45:LY_DEFINE (ly_skyline_distance, "ly:skyline-distance", lily/skyline-scheme.cc:63:LY_DEFINE (ly_skyline_max_height, "ly:skyline-max-height", lily/skyline-scheme.cc:73:LY_DEFINE (ly_skyline_max_height_position, "ly:skyline-max-height-position",
lily/skyline-scheme.cc:83:LY_DEFINE (ly_skyline_height, "ly:skyline-height",
lily/skyline-scheme.cc:95:LY_DEFINE (ly_skyline_empty_p, "ly:skyline-empty?",
lily/skyline-scheme.cc:123:LY_DEFINE (ly_skyline_pad, "ly:skyline-pad",



Ofcourse show-horizontal/vertical-skylines will help. as Jean wrote, though
that was not invented a few years back.

As sort of a summary, I'd like to emphasize that the work on user
requests on the mailing-list is the most promising part to get more
insight in LilyPond internals.


<nod in agreement>


The good advice "take another tutorial" _is_ good, but I will not follow it.
Ask again in another decade or better two.



I never seriously used a C++ tutorial :-)

(OK, I did read C tutorials.)

Cheers,
Jean




reply via email to

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