(Automatically) split partcombined voices to temporary staff

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

(Automatically) split partcombined voices to temporary staff

Urs Liska

Hi all,

I have a question regarding complicated orchestral material. Note that I don't need a solution right now, only a plausible estimate if that's possible to implement at all.

Consider the situation of a staff with two partcombined voices (say, flutes). If there are spots (measures or ranges of measures) where the voices are so individualized or complex that the part combination becomes unreadable I would like to split this range (measure) to two individual staves.

The attached image shows the (manually constructed) intended result. Let's assume I would consider m. 7 too complex to be combined and therefore want the whole "current" system to be split in two staves.

The ideal way would be to have an automatic function that I can call within such a measure (tagging it as "non-combinable") that would:

  • Determine in which system I'm currently in and from where to where it spans (i.e. previous and next line break)
  • Create a temporary staff for exactly that range
  • Copy the music of the second voice to that staff
  • remove the second voice from the current staff
  • (suppress partcombine texts)

In the potential score at hand the music will be maintained in a measure based grid. That means if I could get just the first of these (i.e.. determining the current and previous line breaks) I *might* be able to achieve something. But it would be a great feature (and a "selling point" for LilyPond) if we could integrate it. I got this request from a professional engraver who says it's a problem he's dealing with all the time: manually handling the combination and temporary splitting of voices in a staff - and especially fixing things if the line breaking happens to change. He said it would be a dramatic advantage if LilyPond could do that automatically.

Any suggestions welcome.

Urs


_______________________________________________
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user

autosplit.png (41K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: (Automatically) split partcombined voices to temporary staff

tisimst
Urs,

On Fri, Sep 16, 2016 at 9:29 AM, Urs Liska <[hidden email]> wrote:

Hi all,

I have a question regarding complicated orchestral material. Note that I don't need a solution right now, only a plausible estimate if that's possible to implement at all.

Consider the situation of a staff with two partcombined voices (say, flutes). If there are spots (measures or ranges of measures) where the voices are so individualized or complex that the part combination becomes unreadable I would like to split this range (measure) to two individual staves.

The attached image shows the (manually constructed) intended result. Let's assume I would consider m. 7 too complex to be combined and therefore want the whole "current" system to be split in two staves.

The ideal way would be to have an automatic function that I can call within such a measure (tagging it as "non-combinable") that would:

  • Determine in which system I'm currently in and from where to where it spans (i.e. previous and next line break)
  • Create a temporary staff for exactly that range
  • Copy the music of the second voice to that staff
  • remove the second voice from the current staff
  • (suppress partcombine texts)

In the potential score at hand the music will be maintained in a measure based grid. That means if I could get just the first of these (i.e.. determining the current and previous line breaks) I *might* be able to achieve something. But it would be a great feature (and a "selling point" for LilyPond) if we could integrate it. I got this request from a professional engraver who says it's a problem he's dealing with all the time: manually handling the combination and temporary splitting of voices in a staff - and especially fixing things if the line breaking happens to change. He said it would be a dramatic advantage if LilyPond could do that automatically.

Any suggestions welcome.

I believe this thread would interest you:


Best,
Abraham

_______________________________________________
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user
Reply | Threaded
Open this post in threaded view
|

Re: (Automatically) split partcombined voices to temporary staff

Kieren MacMillan
In reply to this post by Urs Liska
Hi Urs,

This is very closely related to the oft-discussed topic of “smart divisi” (for lack of a better rubric) — see, for example, the threads at <http://lists.gnu.org/archive/html/lilypond-user/2015-11/msg00794.html>, the more recent <http://lists.gnu.org/archive/html/lilypond-user/2016-08/msg00256.html>, and the one that may be the oldest in the “modern [Lilypond] era” <http://lists.gnu.org/archive/html/lilypond-user/2012-12/msg00425.html>.

> The ideal way would be to have an automatic function that I can call within such a measure (tagging it as "non-combinable") that would:

> • Determine in which system I'm currently in and from where to where it spans (i.e. previous and next line break)
> • Create a temporary staff for exactly that range
> • Copy the music of the second voice to that staff
> • remove the second voice from the current staff
> • (suppress partcombine texts)

Short answer: It can be “faked” by loading up the score with lots of individual staves that french out when they’re combinable, allowing the [part-]combined staves to appear. I put “faked” in quotes, because it requires the preparation of lots of hats into and out of which the various musical rabbits are pulled — it doesn’t (as you’ve outlined) take a single staff and do the splitting automatically.

> He said it would be a dramatic advantage if LilyPond could do that automatically.

Once I get my two current commissions done and out the door**, I want to return to my “Wither’s Carol” (the main inspiration for all of my feature requests in this regard during the last five years) and use it as a demonstration of this advantage.  =)

Hope that helps!
Kieren.

** Perhaps ironically, these two commissions — a wind symphony, and a huge piece (requiem kind of thing) for orchestra, choir, and soloist — would benefit directly from this framework/mechanism, if it were already state-of-the-art.  =\
________________________________

Kieren MacMillan, composer
‣ website: www.kierenmacmillan.info
‣ email: [hidden email]


_______________________________________________
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user
Reply | Threaded
Open this post in threaded view
|

Re: (Automatically) split partcombined voices to temporary staff

tisimst
In reply to this post by tisimst


On Fri, Sep 16, 2016 at 9:41 AM, Abraham Lee <[hidden email]> wrote:
Urs,

On Fri, Sep 16, 2016 at 9:29 AM, Urs Liska <[hidden email]> wrote:

Hi all,

I have a question regarding complicated orchestral material. Note that I don't need a solution right now, only a plausible estimate if that's possible to implement at all.

Consider the situation of a staff with two partcombined voices (say, flutes). If there are spots (measures or ranges of measures) where the voices are so individualized or complex that the part combination becomes unreadable I would like to split this range (measure) to two individual staves.

The attached image shows the (manually constructed) intended result. Let's assume I would consider m. 7 too complex to be combined and therefore want the whole "current" system to be split in two staves.

The ideal way would be to have an automatic function that I can call within such a measure (tagging it as "non-combinable") that would:

  • Determine in which system I'm currently in and from where to where it spans (i.e. previous and next line break)
  • Create a temporary staff for exactly that range
  • Copy the music of the second voice to that staff
  • remove the second voice from the current staff
  • (suppress partcombine texts)

In the potential score at hand the music will be maintained in a measure based grid. That means if I could get just the first of these (i.e.. determining the current and previous line breaks) I *might* be able to achieve something. But it would be a great feature (and a "selling point" for LilyPond) if we could integrate it. I got this request from a professional engraver who says it's a problem he's dealing with all the time: manually handling the combination and temporary splitting of voices in a staff - and especially fixing things if the line breaking happens to change. He said it would be a dramatic advantage if LilyPond could do that automatically.

Any suggestions welcome.

I believe this thread would interest you:


Best,
Abraham

Here's the official archived thread start:


and a message in that thread that shows a more complex example:


What it comes down to is the need to have a staff for all three scenarios:
1. Flute 1 staff
2. Flute 2 staff
3. Flute 1/2 combined staff

The examples demonstrate how to tell LP when/how to keep which staff alive, which conveniently doesn't require you to know which system the "non-combinable" passage ends up on. That is all handled automagically (Thanks, Mark!). You simply add a mark for where the "non-combinable" section starts and stops and LP handles the frenching.

Best,
Abraham

_______________________________________________
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user
Reply | Threaded
Open this post in threaded view
|

Re: (Automatically) split partcombined voices to temporary staff

Urs Liska
In reply to this post by Urs Liska

Hi all,

thanks so far for the links. When that recent thread went by I didn't realize that it might be relevant to me so soon ...

I'll have a closer look at everything ASAP.
Urs


Am 16.09.2016 um 17:29 schrieb Urs Liska:

Hi all,

I have a question regarding complicated orchestral material. Note that I don't need a solution right now, only a plausible estimate if that's possible to implement at all.

Consider the situation of a staff with two partcombined voices (say, flutes). If there are spots (measures or ranges of measures) where the voices are so individualized or complex that the part combination becomes unreadable I would like to split this range (measure) to two individual staves.

The attached image shows the (manually constructed) intended result. Let's assume I would consider m. 7 too complex to be combined and therefore want the whole "current" system to be split in two staves.

The ideal way would be to have an automatic function that I can call within such a measure (tagging it as "non-combinable") that would:

  • Determine in which system I'm currently in and from where to where it spans (i.e. previous and next line break)
  • Create a temporary staff for exactly that range
  • Copy the music of the second voice to that staff
  • remove the second voice from the current staff
  • (suppress partcombine texts)

In the potential score at hand the music will be maintained in a measure based grid. That means if I could get just the first of these (i.e.. determining the current and previous line breaks) I *might* be able to achieve something. But it would be a great feature (and a "selling point" for LilyPond) if we could integrate it. I got this request from a professional engraver who says it's a problem he's dealing with all the time: manually handling the combination and temporary splitting of voices in a staff - and especially fixing things if the line breaking happens to change. He said it would be a dramatic advantage if LilyPond could do that automatically.

Any suggestions welcome.

Urs



_______________________________________________
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user


_______________________________________________
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user
Reply | Threaded
Open this post in threaded view
|

Re: (Automatically) split partcombined voices to temporary staff

Mark Knoop-4
At 18:24 on 16 Sep 2016, Urs Liska wrote:
>Hi all,
>
>thanks so far for the links. When that recent thread went by I didn't
>realize that it might be relevant to me so soon ...

As mentioned, this mostly works at the moment. The additional part I'm
currently working on (well, trying to find time to work on) is allowing
different groups of instruments to combine and separate independently.
See attachments for how this works. NB this code is not yet merged, or
even ready for review.

>Am 16.09.2016 um 17:29 schrieb Urs Liska:
>>
>> Hi all,
>>
>> I have a question regarding complicated orchestral material. Note
>> that I don't need a solution right now, only a plausible estimate if
>> that's possible to implement at all.
>>
>> Consider the situation of a staff with two partcombined voices (say,
>> flutes). If there are spots (measures or ranges of measures) where
>> the voices are so individualized or complex that the part combination
>> becomes unreadable I would like to split this range (measure) to two
>> individual staves.
>>
>> The attached image shows the (manually constructed) intended result.
>> Let's assume I would consider m. 7 too complex to be combined and
>> therefore want the whole "current" system to be split in two staves.
>>
>> The ideal way would be to have an automatic function that I can call
>> within such a measure (tagging it as "non-combinable") that would:
>>
>>   * Determine in which system I'm currently in and from where to
>> where it spans (i.e. previous and next line break)
>>   * Create a temporary staff for exactly that range
>>   * Copy the music of the second voice to that staff
>>   * remove the second voice from the current staff
>>   * (suppress partcombine texts)
>>
>> In the potential score at hand the music will be maintained in a
>> measure based grid. That means if I could get just the first of these
>> (i.e.. determining the current and previous line breaks) I *might* be
>> able to achieve something. But it would be a great feature (and a
>> "selling point" for LilyPond) if we could integrate it. I got this
>> request from a professional engraver who says it's a problem he's
>> dealing with all the time: manually handling the combination and
>> temporary splitting of voices in a staff - and especially fixing
>> things if the line breaking happens to change. He said it would be a
>> dramatic advantage if LilyPond could do that automatically.
>>
>> Any suggestions welcome.
>>
>> Urs
--
Mark Knoop

_______________________________________________
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user

divisiproblem.ly (4K) Download Attachment
divisiproblem.pdf (72K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: (Automatically) split partcombined voices to temporary staff

David Kastrup
In reply to this post by Urs Liska
Urs Liska <[hidden email]> writes:

> I have a question regarding complicated orchestral material. Note that I
> don't need a solution right now, only a plausible estimate if that's
> possible to implement at all.
>
> Consider the situation of a staff with two partcombined voices (say,
> flutes). If there are spots (measures or ranges of measures) where the
> voices are so individualized or complex that the part combination
> becomes unreadable I would like to split this range (measure) to two
> individual staves.

[...]

> Any suggestions welcome.

That's what the remove-layer feature is for.  Maybe take a look at
input/regression/divisi-staves.ly for an example.

Note that the various layers don't need to contain the same material, so
you are free to use \partcombine for the combined layer while not
combining layers when split.

--
David Kastrup

_______________________________________________
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user
Reply | Threaded
Open this post in threaded view
|

Re: (Automatically) split partcombined voices to temporary staff

Urs Liska


Am 16.09.2016 um 21:51 schrieb David Kastrup:

> Urs Liska <[hidden email]> writes:
>
>> I have a question regarding complicated orchestral material. Note that I
>> don't need a solution right now, only a plausible estimate if that's
>> possible to implement at all.
>>
>> Consider the situation of a staff with two partcombined voices (say,
>> flutes). If there are spots (measures or ranges of measures) where the
>> voices are so individualized or complex that the part combination
>> becomes unreadable I would like to split this range (measure) to two
>> individual staves.
> [...]
>
>> Any suggestions welcome.
> That's what the remove-layer feature is for.  Maybe take a look at
> input/regression/divisi-staves.ly for an example.
>
> Note that the various layers don't need to contain the same material, so
> you are free to use \partcombine for the combined layer while not
> combining layers when split.
>

Thanks David. This is exactly what I was looking for. It will be trivial
to wrap this into a nice set-up where you can simply pass a list of
measures (per part or combined staff) that are not to be combined. This
works independently from manual or automatic breaking, and it is
possible to change one's mind about the decisions without having to
modify the content files!

Best
Urs

_______________________________________________
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user