Leszek Wroński <elw...@gmail.com> writes:

> I was delighted to learn that Lilypond allows one to use custodes. I was
> wondering how they really work, namely, how one can, upon a linebreak,
> check what the next pitch is.  I have limited Scheme experience.

> source code, and after grepping found two files of interest: custos.cc
> and custos-engraver.cc . In the latter I found an expression headed by
>
> "void
>  Custos_engraver::acknowledge_note_head (Grob_info info)"
>
> (line 83). Could anyone tell me if I'm on the right track?

Sort of.  That's where the Custos_engraver sees graphical objects that
have been declared to have a note-head-interface pass into the current
score.

> My problem is that, while I'm willing to learn, I have a very limited
> experience with C++ and with any object programming whatsoever (having
> spent much time decades ago with Turbo Pascal 5 :-)).

Well, imagine how frustrating it would be if you were a gee-whiz
C++ programmer and still couldn't tell the stuff LilyPond does from
Turbo Pascal 5.  C++ knowledge actually does not buy you all that much
for reading the source code.

> I'd be very grateful for any pointers regarding what happens during a
> linebreak (and, in general, how one should learn such things).

I'd take a look at the Contributor's Guide first: there are a few
sketches of code workings in it.  There is a file ROADMAP in the
repository that points out what kind of code is grouped into which
directories.

Other than that, it's mostly reading code and asking back on the list.

-- 
David Kastrup

_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to