lilypond-devel
[Top][All Lists]
Advanced

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

Re: Contexts


From: Stephen
Subject: Re: Contexts
Date: Mon, 10 Apr 2006 07:38:09 -0500

From: "David Feuer" <address@hidden>
To: "Han-Wen Nienhuys" <address@hidden>
Cc: "lily-devel" <address@hidden>
Sent: Sunday, April 09, 2006 1:05 PM
Subject: Re: Contexts


On 4/4/06, Han-Wen Nienhuys <address@hidden> wrote:
<top-post fixed>
David Feuer wrote:
> Why are properties set by default in the bottom context?  I think it
> would make more sense to do what Postscript does with dictionaries and
> set them by default in the lowest context that has those properties

I don't understand your question. Properties inherit from Score
downwards. Usually, bottom context doesn't have any property set, only
inherited values.

Sorry it took me so long to respond. In section 9.2.1 (Common tweaks), it says

% This will not work, see below:
         \override MetronomeMark #'padding = #3
         \tempo 4=120
         c1
% This works:
         \override Score.MetronomeMark #'padding = #3
         \tempo 4=80
         d1
"Note in the second example how important it is to figure out what
context handles a certain object. Since the MetronomeMark object is
handled in the Score context, property changes in the Voice context
will not be noticed."

What I was suggesting was that when the \override does not
specifically mention a context, it should apply not to the current
context, but rather to the bottom-most active context that actually
has the relevant object.  The Voice context has no MetronomeMark, so
\override MetronomeMark in a Voice context should actually override it
in the Score context.

David

You mean the default should be the Staff context for MetronomeMark, I hope, so that if the user explicitly uses the Voice context:

\override Voice.MetronomeMark #'padding = #3

that is what he will get even if it has no effect. Let's not forget that the user can add and remove contexts as in this example from 8.4.1 Polymetric notation:

\layout {
 \context { \Score
    \remove "Timing_translator"
    \remove "Default_bar_line_engraver"
 }
 \context {
   \Staff
   \consists "Timing_translator"
   \consists "Default_bar_line_engraver"
 }

}

Stephen
_______________________________________________
lilypond-devel mailing list
address@hidden
http://lists.gnu.org/mailman/listinfo/lilypond-devel




reply via email to

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