[Top][All Lists]

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

Re: „Anonymous” properties, deafening engravers and font features

From: David Kastrup
Subject: Re: „Anonymous” properties, deafening engravers and font features
Date: Thu, 18 Nov 2021 22:08:12 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)

Valentin Petzel <> writes:

> Hello,
> I have three ideas for maybe useful features for Lilypond:
> First, Lilypond is very strict about what values grob/context
> properties can take. While this is generally a good thing it can be
> hindering, as properties are more or less hard coded. So I suggest
> that maybe we could have some sort of identifier for „custom”
> properties that skip the type check. This would be useful for extended
> scripting where we want to store arbitrary information.

That seems like a complete confused proposal to me since LilyPond is
strict about the values of properties because it has to be able to
_interpret_ them.  If you want to define your _own_ properties without
any constraint whatsoever (what is then going to be able to interpret
just _any_ Scheme value you throw at it?), you can define them to be of
type scheme? .

> For example we might have Staves that should behave differently if
> certain other Staves are present. E.g. if we have some splitted staves
> and we want to have voices behave differently depending on whether
> they are in a separate staff or in the common staff.


> So for this it would be nice if we could simply save information in
> the Staff context that tells us things like how many different Parts
> we currently have in the Staff, for example.

How are you going to do that without the value having _any_ predictable
type or structure?

> Second it would be very useful if we could somehow give engravers some
> sort of filtering option that would allow us to make them not to
> listen to certain events, so that we’d basically be able to
> disable/enable engravers outside of withing the score, or even disable
> engravers for certain Types of events or for events that fit some
> condition (like having a certain tag).

Engravers only listen to a given type of event.  Removing events with a
certain tag is done by the \removeWithTag command.  So what is your
proposal supposed to achieve exactly?

> Third: Using font-features with Lilypond is a bit weird, as using \override 
> #'(font-features featureA featureB bla bla . ()) will override any previously 
> applied font-features. So I suggest adding markup functions addFontFeature 
> and 
> removeFontFeature like in the appended example to make this easier.

I have no idea about font handling so I cannot say anything concerning that.

> What are your takes on this?

I don't see what you propose that isn't already covered.  Perhaps some
actual examples of what you want to achieve would help?

David Kastrup

reply via email to

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