lilypond-devel
[Top][All Lists]
Advanced

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

Re: Context paths (and the Edition Engraver)


From: David Kastrup
Subject: Re: Context paths (and the Edition Engraver)
Date: Tue, 21 Jan 2020 20:20:44 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)

Dan Eble <address@hidden> writes:

> On Jan 21, 2020, at 11:31, Jan-Peter Voigt <address@hidden> wrote:
>> I'd like that, though it would be a quite invasive change.
>> And if we stay with the string for the context id and then use
>> lists/paths in the \context statement like
>> \new Staff = "choir" << \new Voice = "soprano" …
>> 
>> and then use
>> \context Voice = choir.soprano
>> 
>> it would be inconsistent with \new <Context> = "…"
>> 
>> I will write down some more text about this topic later.
>
> I see similarities with languages like CSS and XPATH select nodes in a
> DOM.  Notation borrowed directly from them will not integrate well
> into LilyPond, but it might be fruitful to ask how we could modify
> expressions like these to fit in.
>
>     %% find the voice in the example quoted above, very specifically
>     \context Staff#choir > Voice#soprano { … }         % CSS
>     \context Staff[@id=choir]/Voice[@id=soprano] { … } % XPATH
>
>     %% ditto, but using context type only
>     \context Staff > Voice { … }                       % CSS
>     \context Staff/Voice { … }                         % XPATH
>
>     %% ditto, but using ID only
>     \context #choir > #soprano { … }                   % CSS
>     \context [@id=choir]/[@id=soprano] { … }           % XPATH
>
>     %% find the context where the rehearsalMark property is defined
>     \context [rehearsalMark] { … }                     % CSS
>     \context [@rehearsalMark] { … }                    % XPATH
>
> Dan

The syntax appears not to be a good match to LilyPond even though the
concept may be considered fitting.

-- 
David Kastrup



reply via email to

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