lilypond-auto
[Top][All Lists]
Advanced

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

Re: [Lilypond-auto] Issue 2883 in lilypond: Patch: Make arguments like C


From: lilypond
Subject: Re: [Lilypond-auto] Issue 2883 in lilypond: Patch: Make arguments like Context.GrobName accessible as symbol lists
Date: Fri, 12 Oct 2012 17:42:52 +0000

Updates:
Cc: address@hidden address@hidden address@hidden address@hidden

Comment #14 on issue 2883 by address@hidden: Patch: Make arguments like Context.GrobName accessible as symbol lists
http://code.google.com/p/lilypond/issues/detail?id=2883

Ok, getting this patch/branch integrated successfully will require quite a bit of heavy lifting, and I am not really able to do all of that myself.

First we need to agree on a solution for the function interfaces that currently depend on the distinction string/symbol for recognizing optional arguments.

Issue #1 is \tweak.  We currently have two forms of tweak, namely

\tweak #'color #red cis            (tweak of direct grob)
\tweak Accidental #'color #red cis (tweak of particular grob)

The current form of the patch proposes translation into

\tweak color #red cis
\tweak Accidental.color #red cis

It has been pointed out that the latter syntax is confusingly different from \override Accidental color = #red (no dot allowed!).

The short form of \tweak is rather prevalent, so we don't want to change that. Alternatives for the second form might be

\on Accidental \tweak color #red cis
\tweakOn Accidental color #red cis
\single \override Accidental color = #red cis

The last line already works but is cumbersome and sufficiently different from \tweak that it seems inconvenient. \on as a separate command has its charm for working on tweaks not just generated by the \tweak command, like

\on Accidental \hide cis

as an alternative wording for

\single \hide Accidental cis

Huh. The grammar of \on does seem a bit strange in usage. Better proposals?

\only Accidental \hide cis

maybe?  Or

\grob Accidental \hide cis

Similarly, the yet again new \footnote interface has no really fabulous way to place the grob spec. The proposal used here has a few advantages (most notably never needing \default, not being able to express the invalid combination of override-like behavior without grob specification, and fitting in a pattern with \hide/\omit), but still does not really have people much enthused about it, mostly due to the trialing position of the Grob name when using it in override-like manner.

The positive thing is that \footnote now really, really, really is just a \once\override or \tweak, so using things like \grob or \single on it is feasible, and it works exactly in those circumstances as the other commands in that vein do.

Those are the interface design problems.

There is also a lot of documentation work pending, starting with bringing the German documentation at least into a state where convert-ly generates valid code, or just skip this stage and start from the new English version. Which also needs to be written, or at least retouched.

Then there needs to be an introductory section on LilyPond's relation between input syntax and Scheme data structures. At least the first iteration will probably be my lot. Then one has to look through the whole \override/\revert etc section, assuming that we go for the variant without #' which seems like something not only I consider desirable.

The documentation work does not to complete before committing, but it will still be significant. And at least the interface changes of \tweak and \footnote should be something where we are reasonably sure that it's the best we can do.




reply via email to

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