Paul Morris <p...@paulwmorris.com> writes:

> On Jan 11, 2013, at 12:40 PM, David Kastrup <d...@gnu.org> wrote:
>
>>> But to do that I need the "translator object" (which seems to be an
>>> engraver?), and I'm not sure how to do that.  Maybe there is a way to
>>> get to it from the grob?
>> 
>> A grob can be announced in multiple contexts, so no.
>
> Ok, thanks.
>
>
>>> displaceHeads =
>>> #(define-music-function (parser location offsets) (list?)
>>> "
>>> Moves the NoteHeads, using (shift offsets)
>>> "
>>> #{
>>>   \once \override NoteColumn #'before-line-breaking = #(shift offsets)
>>> #})
>> 
>> At the time this is called, there are no live contexts.  You might want
>> to try fiddling with the context grob properties (huh, do we even have
>> functions for that?) directly in a function called via \applyContext.
>
> Ok, good to know about \applyContext.  After looking into it a bit,
> I'm not sure whether it will do what I need it to do, but that's fine
> since this is not essential.  It's just something that would be nice
> to have.  I can always just copy and paste the music and then add or
> remove the overrides that go in it (one version of the music for each
> of the two staff types).
>
> (I also should be able to write some code to automatically do the
> overrides in my custom staff context instead of having to enter them
> manually.  That would be the ideal solution, and a better place to put
> the effort.)

Uh, if you have a _custom_ staff context for which you want particular
overrides, you just do

\layout {
  \context {
    \Staff
    \name "MyStaff"
    \alias "Staff"
    \override ...
    \override ...
  }
}

at the bottom, and then in the music you use

\new MyStaff { ... }

and, of course, the overrides will be in every staff of that type, and
not anywhere else.

-- 
David Kastrup


_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to