lilypond-user
[Top][All Lists]
Advanced

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

Re: the "perfect" break-engraver (was Re: [Feature Request] \compressFul


From: Jay Anderson
Subject: Re: the "perfect" break-engraver (was Re: [Feature Request] \compressFullBarRests improvement(s))
Date: Fri, 27 Dec 2013 23:19:10 -0700

On Fri, Dec 27, 2013 at 4:08 PM, Kieren MacMillan
<address@hidden> wrote:
> I think the “perfect” break-engraver would admit coding like the following 
> (pseudocode; all numbers in measures):
>
>     \lineBreakAt 27
>     \lineBreaksAt (12 28 34 48)
>     \noLineBreaks (27-30)
>     \lineBreaksForbidAt 28
>     \lineBreaksAllowAt 34
> etc., and identical for \pageBreaks-
>
> These breaking-codes would be put in the \layout block of a score — cf. the 
> way David N’s engraver currently works — so that there is no need to mix this 
> presentation-layer information into the content layer.
>
> The only additional [optional] argument I can think of is a Staff (or Voice?) 
> "context target”, e.g.,
>
>     \lineBreakAt 27 #”soprano"
>
> which would be necessary for polymetric music (where the measures might not 
> all end simultaneously).
>
> Thoughts?

I like the ideas (though I haven't been following the preceding
conversation). Some minor changes would be needed if a break is needed
mid-measure (something like \lineBreakAt 27 3/4). I think I'd still
prefer keeping the breaks within the score section (instead of in the
\layout). Something like:

\score <<
  \new Staff {...}
  \breakmode {
    \lineBreakAfter 27
    \pageBreakForbidAfter 98
    etc...
  }
>>

It could even be expanded into the regular music after parsing. I'm
not sure how possible that would be, but it would isolate the changes
needed. The above would be transformed into something like:
\score <<
  ...
  {
    % Assuming '\time 4/4'
    s1*27 \break
    s1*71 \noPageBreak
    etc...
  }
>>

-----Jay



reply via email to

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