lilypond-user
[Top][All Lists]
Advanced

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

Re: parts sharing a staff


From: Kieren MacMillan
Subject: Re: parts sharing a staff
Date: Thu, 15 Jun 2017 23:05:13 -0400

Hi Shevek,

> I'd be fascinated to have an in depth conversation about shared staves in
> Lilypond. I've been giving a fair bit of thought to how I'd like it to work,
> at least based on my particular use case.

I'd like that, too!

I’ve found that the whole situation is fairly simple if the layout is fixed 
(e.g., when I'm copying an existing edition exactly), and it becomes 
*massively* more complex when I want options/flexibility in my layout choices. 
For example, in the short choral piece I'm currently engraving (SATB + brass 
sextet), there are sections which are *optimally* engraved in every possible 
configuration:
  1 staff: SATB unison
  2 staves: SA+TB (a cappella chorus); 3 high brass + 3 low brass (instrumental 
interlude, in reduction); etc.
  3 staves: SATB unison + 3 high brass + 3 low brass;
  4 staves: S+A+T+B (a cappella); SA+TB + 3 high brass + 3 low brass; etc.
  ...
  10 staves: S + A + T + B + 1 staff per brass part.

In terms of outputs, I want to have at least the following:
  octavo choral score (with brass as a 2-stave reduction)
  U.S. letter choral score (with brass as a 2-stave reduction)
  A4 choral score (with brass as a 2-stave reduction)
  9x12 full score (with brass 'correctly engraved')

I would like to be able to test a large number of layout possibilities as 
efficiently as possible. In a perfect world, I want to be able to play around 
with system (line) breaks and see all the 'good' casting-off choices without 
having to do much work beyond just choosing where the breaks are: staff names, 
staff combining and splitting, lyric attachment/affinity, etc. should all just 
Do The Right Thing™.

Some things are already relatively easy to either automate, or at least get 
done with pretty minimal effort. I've defined some syntactic sugar 
(\letStaffVanish, \showStaff, etc.) so that *if* a certain measure requires 4 
full choral staves, they will appear as desired. Mark Knoop (who did most of 
the really great keep-alive-together programming in the last few years) also 
created some amazing sugar, which helps Lily *always* choose the most efficient 
layout. But most of these things require a *lot* of engineering in the score 
file, and the staff code quickly gets quite large and complex.

Also, it would be best if layout and other presentation decisions could be kept 
out of the content (music) code. I like to use the edition-engraver to 
implement almost all of the choices (line and page breaks, staff naming, etc.). 
Hence, for example, adding \partcombineApart into the music code isn't 
necessarily the best option from a reuse perspective. That being said, 
sometimes I feel like my whole engraving life is a series of solutions in 
search of a problem…  =\

Perhaps the best plan is for us to start with some *very simple* use cases — 
more simple than the choral work I mention above (and which Mark K "solved") — 
and discuss how existing Lilypond features do or do not satisfy the 
constraints/expectations. And once we've set up some basic test files/cases, we 
should definitely get Mark K and David K [at least] in on the thread, because 
they have (I believe) the most in-depth knowledge of how all of the 
remove-layer stuff does/can work.

Cheers,
Kieren.
________________________________

Kieren MacMillan, composer
‣ website: www.kierenmacmillan.info
‣ email: address@hidden




reply via email to

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