[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Splitting Staves
From: |
David Kastrup |
Subject: |
Re: Splitting Staves |
Date: |
Thu, 06 Feb 2020 15:10:04 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) |
Valentin Petzel <address@hidden> writes:
> Hello,
>
> As it is I think one of the important features missing in Lilypond is the
> ability to split one staff into multiple staves, which is a feature quite
> nescessary for orchestral and choral settings. There is an ”official“ hack to
> do
> it by using different staves and switching context, but this is neighter
> beautyful nor useful in large settings and it bears the problem that one
> needs
> to manually specify all these splits, including System breaks &c.
Take a look at input/regression/divisi-staves.ly : that at least
showcases some low-level interfaces/hooks for implementing that sort of
functionality. It doesn't really constitute a user interface, though.
> So what I want to work on is some sort of ”Splittable Staff“. Main specs
> should
> be:
>
> → At any point in the Score a staff should be splittable
> → Splits can be denoted by a markup like divisi
> → If a split occurs within on system, one should have the choice between:
> →→ Extending the split to the whole system, doubling not split notes (as it’s
> usually done)
> →→ Splitting the staff in the middle of the system, as sometimes done in more
> complex scores.
> → There should be a penalty for having a longer split start or end in such a
> way, that it eighter starts very late into the system or ends very early in
> the system (leading to lots of duplicated stuff)
> → One should be able to specify brackets for splits
> → One should be able to specify if a split will occur only at a barline
> (potentially doubling stuff) of at any point
> → There should be a way to make Voices work nicely with splits (so if you
> split four Voices 1,2,3,4 from high to low into 1,2 and 3,4 they should
> automatically be remapped to the voice configurations 1,3,4,2 when together,
> and 1,2 and 1,2 when split.
> → It should be possible to do nested splits
> → It should be possible to specify Instrument names for split Staves
>
> I have thought up a way one could specify this, but I do not have time to
> elaborate it here, so I will probably follow up on this.
>
> Now, for the gist of my question: I’m very well versed with the Lilypond
> codebase, so I appreciate if someone could give me a few directions, what
> parts I should study to get into the right direction.
See above for some low-level hooks, but the rest will be a bunch of
programming work including juggling contexts and both split and
condensed versions typeset in parallel.
--
David Kastrup