lilypond-user
[Top][All Lists]
Advanced

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

Re: Understanding marks in 2.24


From: Jean Abou Samra
Subject: Re: Understanding marks in 2.24
Date: Tue, 31 Jan 2023 22:32:00 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.6.0

On 31/01/2023 22:07, Saul Tobin wrote:
> I have a few questions:
> 1. How to achieve horizontal alignment and avoid vertical overlap of 
> RehearsalMarks and MetronomeMarks at the beginning of a system, or when 
> musical objects push them away from the staff as in measure 3? I have to say 
> I think the default output could be improved.


It's been requested a few times, but there is no easy way to do this
at the moment (although you can find some hacks in the list archives).



> 2. How to prevent TextMarks from printing many identical marks at the same 
> point in time? The docs suggest that \textMark should be used as a drop-in 
> replacement for \mark \markup... but the behavior seems incompatible. The 
> examples given are for instructions specific to a single player. Is it 
> feasible to use \textMark for ensemble-wide instructions without relying on 
> tags to prevent duplicates in the full score?


Typically, you would have your \textMark's in a separate music
expression and only include that once in the main score.

It was intentional not to deduplicate for \textMark because
it's messy in the first place: if you do this, the user will
expect that

<<
  \new Staff { \textMark $CODE } 
  \new Staff { \textMark $CODE }
>>

yields only one text mark, but this falls apart for things like

$CODE = \markup \table #'(0 0 0) ...

or

$CODE = \markup \on-the-fly #(lambda things ...) ...

because procedures are compared by identity, and whether two
"equal?" quote expressions are "eq?" is an optimization detail
not specified by Guile.

\mark \markup had this problem and we didn't want to carry it
over with \textMark.


> 3. I formerly used a custom MarkLine context to align all marks on the same 
> horizontal baseline. I see that LSR lists the snippet as deprecated since a 
> bug was fixed that allowed mark engravers to be moved to StaffGroups (though 
> it is still referenced in the 2.24 docs here: 
> https://lilypond.org/doc/v2.24/Documentation/snippets/contexts-and-engravers#contexts-and-engravers-using-marklines-in-a-frenched-score
>  
> <https://lilypond.org/doc/v2.24/Documentation/snippets/contexts-and-engravers#contexts-and-engravers-using-marklines-in-a-frenched-score>).
>  Is there another preferred method to baseline-align all marks in a system?


You're looking at two different snippets. This one

https://lsr.di.unimi.it/LSR/Item?id=1010

serves the purpose of printing marks other than above the
very top staff, and is deprecated. This one:

https://lsr.di.unimi.it/LSR/Item?id=1150

is not deprecated.

> 4. What is the difference between an AdHocMark and a RehearsalMark? I find 
> some references to AdHocMark in the Internals docs but I'm unclear how to 
> actually use them.



There is no AdHocMark grob, just an AdHocMarkEvent music type. It's the
event for \mark \markup, thus soft-deprecated (not planned for removal
ATM but not recommended for use) and you should use TextMarkEvent instead.

Jean



Attachment: OpenPGP_signature
Description: OpenPGP digital signature


reply via email to

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