bug-lilypond
[Top][All Lists]
Advanced

[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



reply via email to

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