[Top][All Lists]

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

Re: TextSpanner at Score level?

From: Carl Sorensen
Subject: Re: TextSpanner at Score level?
Date: Wed, 22 Apr 2009 22:22:34 +0000 (UTC)
User-agent: Loom/3.14 (

Simon Bailey <binabik <at>> writes:

> > - how do you find out which contexts and engravers are involved?

You use the Internals Reference.  You find the object you want engraved
under 3.1 All layout objects:  3.1.111 TextSpanner.

The IR tells you that TextSpanners are created by Dynamic_engraver, 
New_dynamic_engraver, and Text_spanner_engraver.

So then you look in section 2.2 Engravers and Performers (or you just
click the link on Text_spanner_engraver.  Section 2.2.117
Text_spanner_engraver tells you that this is part of all of the Voice
contexts.  So then you know which contexts to remove it from and
which contexts to add it to.

> <snipping to kieren's post>
> On 21 Apr 2009, at 22:30, Kieren MacMillan wrote:
> > Since I'm currently teaching (a week-long FileMaker Pro course), I  
> > must be in good instructor mode... 
> instructor mode is good... but why FileMaker for heaven's sake? ;)
> > All that being said, I'd still like to know why StaffGroup doesn't  
> > "Do The Right Thing", [i.e., why this behavior shouldn't be  
> > considered a bug].
> i've become VERY wary of calling anything a bug in lilypond. however,  
> this exact case seems to be a perfect qualifier for a bug. i'm  
> wondering why it didn't work as well though... but there may be  
> something totally and horrendously fundamental that we're missing in  
> this case and is so simple that the only ppl likely to know the answer  
> will be mats, han-wen or graham. :) [not necessarily in that order ;)]

I believe the reason LilyPond can't do this automagically is because 
StaffGroup contexts can be (and are) nested arbitrarily.  In this case, 
there is an implicit StaffGroup that is created above all of the explicit
StaffGroups.  So StaffGroup exists at multiple levels (and we like
it that way.  But this means that the Staff_group_engraver that gets
the music is the top-level Staff_group_engraver, and it all gets
engraved at that top level.

So that's why you need to create a new context with the 
Text_spanner_engraver in it for each of the groups you want to 
have text spanners printed at the top of.

Does this make any sense to you?




reply via email to

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