lilypond-user
[Top][All Lists]
Advanced

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

Re: A question about \override in markuplist


From: David Kastrup
Subject: Re: A question about \override in markuplist
Date: Sat, 30 Nov 2019 16:26:19 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)

Peter Toye <address@hidden> writes:

> David,
>
> Thanks for this. My comments are below. My mind is much clearer now.
>
> -------------------------
> Friday, November 29, 2019, 10:25:36 PM, David Kastrup wrote:
>
>> Peter Toye <address@hidden> writes:
>
>>> I'm a bit confused by he documentation concerning \override. In most
>>> of the LR and NR it is described as a LilyPond command which changes
>>> the value of a property.
>
>>> However, it also seems to appear as a special function within a
>>> \markup which adds, as opposed to changes, a property.value pair to
>>> the property list (which one isn't explicitly stated, but it can
>>> presumably be inferred from the context).
>
>> What is "the property list"?  What is "adds
>> to"?  You make it sound like
>> something gets modified.  It doesn't.  A new list is constructed for
>> passing to subordinate markup functions, a list that has some overrides
>> in front while using the passed property list for its tail.
>
> Quote from NR A.11.7 "\override": "Add the argument new-prop to the
> property list. " That sounds to me to be just what I said. The
> implementation that you describe obviously has this effect. But I
> think that it's different from the way that \override works outside of
> a \markup.

It's identical to the effect of \temporary \override .

> I don't think that users should have to know how things are
> implemented (it's interesting to me, as an ex-professional programmer,
> but not to the average composer/arranger) and what appears to be the
> dual use of aword is confusing.

It does the same thing.

> Hence my original post, which was, after all, only asking for
> confirmation about how to use oveeride, not its implementation.
>
>>> Presumably the property value is removed from the list after the
>>> markup argument has been evaluated, so there is no need for a \revert
>>> command.
>
>> There is nothing added anywhere, so nothing
>> needs get "removed".  The
>> property lists are only passed downwards in markup functions, never
>> upwards, so there would not even be a sane way of removing something.
>
> Given the previous paragraph, I agree.
>
>>> To sum up, am I right in thinking that within a \markup, the function
>>> supersedes the command?
>
>> The markup command takes the task of adding overrides to a markup's
>> properties that are usually set up from a
>> variety of sources including
>> the grob properties of a grob containing
>> markup, which in turn are
>> initialized from the context's respective grob
>> properties for this grob
>> type.
>
> I don't think this answers my question, but your previous paragraphs do.
>
>>> I have to say, this does not feel like good program design. One does
>>> not usually have two built-in operators with the same name and
>>> different scopes. :)
>
>> Well, LilyPond is not competing for a "good program design" prize.  I
>> have retrofitted some logic and coherence into a number of its parts
>> in order to have people more confident in being able to work with it
>> and predict its behavior.  The various property regimes are one of
>> the more complex inherited messes and fundamental to its operation.
>> You are not going to fundamentally change it.
>
> My comment did end with a smiley.

Usually a smiley applies to the preceding sentence.

>> Though being able to get rid of override-property eventually would be
>> a good thing.  That's a really ugly duckling.
>
> Agreed.

Just to avoid a misunderstanding: \override-property is brought up first
in that sentence of mine and does not in any way concern the \override
markup command \override music syntax parallel.

-- 
David Kastrup



reply via email to

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