[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Bug: Repeated chords (via "q") are not rendered when using ly:book-p
From: |
Lovis B. Suchmann |
Subject: |
Re: Bug: Repeated chords (via "q") are not rendered when using ly:book-process. |
Date: |
Sat, 30 Mar 2024 17:46:33 +0000 |
On Saturday, March 30th, 2024 at 18:01, Jean Abou Samra <jean@abou-samra.fr>
wrote:
> Le samedi 30 mars 2024 à 16:47 +0000, Lovis B. Suchmann a écrit :
>
> > \version "2.24.3"
> >
> > % Repeated chords (via "q") are not rendered when using ly:book-process.
> >
> > test = { r4 <c' e'> r q | }
> >
> > \book { \score { \test \layout {} } }
> >
> > #(ly:book-process (ly:make-book $defaultpaper
> > #f
> > (ly:make-score test))
> > $defaultpaper
> > $defaultlayout
> > (string-append (ly:parser-output-name) "-1"))
>
>
>
>
> This isn't a bug. You probably want to use scorify-music instead of
> the low-level function ly:make-score.
Thank you so much, that did the trick.
The naming of lilypond scheme functions can be really unintuitive sometimes. At
the very least, the internals reference could use some major extensions making
clear what the functions do and how, with examples. Via [1], it would have been
impossible for me to understand what scorify-music does or that I need this
function over ly:make-score. Am I missing some other place where this is
already documented in more detail?
If not, I'd be happy to start investing my time to contribute to the Internals
reference documentation, especially Section 4 "Scheme functions". In addition
to better explanatory texts this section could benefit from more crosslinks and
examples - or maybe the examples should be in a different (new) section to keep
this reference concise. I'd be happy to discuss this further.
As a start, here are my suggestions for the two functions in question:
- - - - -
A) In Internals, Section 4 "Scheme functions", change the explanation text for
"scorify-music" as follows:
Preprocess _music_ and encapsulate it into a score smob.
Among other things, preprocessing replaces chord repetitions via `q` with the
correct actual chords.
B) In Internals, Section 4 "Scheme functions", change the explanation text for
"ly:make-score" as follows:
Encapsulate _music_ into a score smob.
Note: This is a low-level function that does not preprocess _music_ in any way.
You might be looking for `scorify-music` instead, which also preprocesses
_music_.
- - - - -
If someone else is already working improving this Section, you may let me know
- I'd love to join in. Otherwise, as my understanding of the internals is still
fragmentary, I'd need some help getting things right. I could just continue to
send improvement suggestions as mentioned in [2] to this mailinglist (or
lilypond-devel?) and someone corrects me if I get things wrong? Or is someone
willing to "proofread" some suggestions of mine in advance so I do not add too
much noise to the mailinglists? I could also give larger-scale structural
improvement suggestion as a start for debate if you would consider this
appropriate from a "newbie" to the mailinglists.
I'd be thankful for any pointers on the best way to keep contributing to this
part of the documentation and help this amazing project (which I have been
using for many years!) become even better.
Cheers!
Lovis
[1] https://lilypond.org/doc/v2.24/Documentation/internals/scheme-functions
[2]
https://lilypond.org/doc/v2.24/Documentation/contributor/documentation-suggestions