Re: still no ultimate way to create three-staff piano layout
"Keith OHara" writes: > On Mon, 16 Dec 2013 01:07:35 -0800, David Kastrup wrote: > >> Keith OHara writes: >> >>> The StaffGrouper, that makes different spacing at the end of a group, is >>> created by the Vertical_align_engraver (despite what the manual says) so >>> if you remove the Vertical_align_engraver form the PianoStaff, only the >>> enclosing StaffGroup will have the appearance of a group. >> >> Does that mean that the patch pushed in >> http://code.google.com/p/lilypond/issues/detail?id=3641#c7> (why >> has the issue been reopened instead of creating a new one for the >> documentation) is incomplete? The effect of the patch should be that >> nested "Vertical_align_engraver"s behave as if the inner engravers have >> been removed altogether. >> > > Vertical_align_engraver makes the start braces around, and adjusts > spacing between, the staves it contains. We do sometimes want a > GrandStaff (Flute 1 and 2) inside a StaffGroup (woodwinds) and in > those cases want both Vertical_align_engravers to be active and > drawing their braces. > > Karol had a special case, here, where he did *not* want the inner > Vertical_align_engraver doing its job. > > David, you might have confused the jobs of Vertical_align_engraver > (draws start braces, etc.) and Axis_group_engraver (arranges notes, > etc. on to lines of music). I'll comment on your patch so you can > check that it does what you meant to at the time. Ah yes. Can't get them all sorted out always. -- David Kastrup ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: still no ultimate way to create three-staff piano layout
On Mon, 16 Dec 2013 01:07:35 -0800, David Kastrup wrote: Keith OHara writes: The StaffGrouper, that makes different spacing at the end of a group, is created by the Vertical_align_engraver (despite what the manual says) so if you remove the Vertical_align_engraver form the PianoStaff, only the enclosing StaffGroup will have the appearance of a group. Does that mean that the patch pushed in http://code.google.com/p/lilypond/issues/detail?id=3641#c7> (why has the issue been reopened instead of creating a new one for the documentation) is incomplete? The effect of the patch should be that nested "Vertical_align_engraver"s behave as if the inner engravers have been removed altogether. Vertical_align_engraver makes the start braces around, and adjusts spacing between, the staves it contains. We do sometimes want a GrandStaff (Flute 1 and 2) inside a StaffGroup (woodwinds) and in those cases want both Vertical_align_engravers to be active and drawing their braces. Karol had a special case, here, where he did *not* want the inner Vertical_align_engraver doing its job. David, you might have confused the jobs of Vertical_align_engraver (draws start braces, etc.) and Axis_group_engraver (arranges notes, etc. on to lines of music). I'll comment on your patch so you can check that it does what you meant to at the time. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: still no ultimate way to create three-staff piano layout
Keith OHara writes: > Eluze gmail.com> writes: > >> karol wrote >> > This doesn't solve the problem. Look at the example. In the first system >> > spacing is proper, but in the second, distance between 'b' and 'd' is 9 >> > (should be 10.5). >> >> I think this is a paradoxical situation: >> >> if a staff (group) is removed then the vertical spacing of the staff group >> above is applied >> > > If I understand, the PianoStaff inside StaffGroup should be treated as a > group for purposes of removing empty staves together, but not treated as a > group for purposes of spacing. > > The StaffGrouper, that makes different spacing at the end of a group, is > created by the Vertical_align_engraver (despite what the manual says) so > if you remove the Vertical_align_engraver form the PianoStaff, only the > enclosing StaffGroup will have the appearance of a group. Does that mean that the patch pushed in http://code.google.com/p/lilypond/issues/detail?id=3641#c7> (why has the issue been reopened instead of creating a new one for the documentation) is incomplete? The effect of the patch should be that nested "Vertical_align_engraver"s behave as if the inner engravers have been removed altogether. Doesn't it do that job completely, and if not, what is it that causes the difference? -- David Kastrup ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: still no ultimate way to create three-staff piano layout
Eluze gmail.com> writes: > karol wrote > > This doesn't solve the problem. Look at the example. In the first system > > spacing is proper, but in the second, distance between 'b' and 'd' is 9 > > (should be 10.5). > > I think this is a paradoxical situation: > > if a staff (group) is removed then the vertical spacing of the staff group > above is applied > If I understand, the PianoStaff inside StaffGroup should be treated as a group for purposes of removing empty staves together, but not treated as a group for purposes of spacing. The StaffGrouper, that makes different spacing at the end of a group, is created by the Vertical_align_engraver (despite what the manual says) so if you remove the Vertical_align_engraver form the PianoStaff, only the enclosing StaffGroup will have the appearance of a group. \new StaffGroup << \new PianoStaff \with { \remove "Span_bar_engraver" \remove "System_start_delimiter_engraver" \remove "Vertical_align_engraver" } << \new Staff \new Staff >> \new Staff >> \new StaffGroup << \new Staff \new Staff \new Staff >> >> } ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: still no ultimate way to create three-staff piano layout
Hi all, > I think this is a paradoxical situation: > if a staff (group) is removed then the vertical spacing of the staff group > above is applied This isn’t “paradoxical”; it’s a lack in the spacing algorithm/.parameters, one which has irritated me for a long time. There should be a way to set pre-system/pre-staff spacing, not just post-. Regards, Kieren. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: still no ultimate way to create three-staff piano layout
karol wrote > This doesn't solve the problem. Look at the example. In the first system > spacing is proper, but in the second, distance between 'b' and 'd' is 9 > (should be 10.5). I think this is a paradoxical situation: if a staff (group) is removed then the vertical spacing of the staff group above is applied I'm sorry I can't even see a workaround - I'll report this issue to the bug list. Eluze -- View this message in context: http://lilypond.1069038.n5.nabble.com/still-no-ultimate-way-to-create-three-staff-piano-layout-tp153648p155440.html Sent from the User mailing list archive at Nabble.com. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: still no ultimate way to create three-staff piano layout
This doesn't solve the problem. Look at the example. In the first system spacing is proper, but in the second, distance between 'b' and 'd' is 9 (should be 10.5). = \version "2.17.96" musicMusic = { c'1 \break c'1 } emptyMusic = { R1 \break c'1 } musicEmpty = { c'1 \break R1 } emptyEmpty = { R1 \break R1 } \score { << \new StaffGroup \with { systemStartDelimiter = #'SystemStartBrace \override StaffGrouper.staffgroup-staff-spacing.basic-distance = #10.5 } << \new PianoStaff \with { \remove "Span_bar_engraver" \remove "System_start_delimiter_engraver" \override StaffGrouper.staffgroup-staff-spacing.basic-distance = #9 } << \new Staff \with { instrumentName = #"a" } \musicMusic \new Staff \with { instrumentName = #"b" } \musicMusic >> \new Staff \with { instrumentName = #"c" \RemoveEmptyStaves \override VerticalAxisGroup.remove-first = ##t } \musicEmpty >> \new StaffGroup << \new Staff \with { instrumentName = #"d" } \musicMusic \new Staff \with { instrumentName = #"e" } \musicMusic \new Staff \with { instrumentName = #"f" } \musicMusic >> >> } = An ideal solution would be to have Keep_alive_together_engraver modified so that it keeps_alive_together only selected staves in the group (not all). Then we could do: \score { << \new PianoStaff \with { \remove "Keep_alive_together_engraver" \consist "Keep_alive_selected_together_engraver" } << \new Staff \with { \RemoveEmptyStaves \KeepAlive } \upper \new Staff \with { \RemoveEmptyStaves \KeepAlive } \lower \new Staff \with { \RemoveEmptyStaves \override VerticalAxisGroup.remove-first = ##t } \extra >> >> } Or alternatively to modify Keep_alive_together_engraver so that it doesn't keep alive selected staves: \score { << \new PianoStaff \with { \remove "Keep_alive_together_engraver" \consist "Do_not_keep_alive_selected_together_engraver" } << \new Staff \with { \RemoveEmptyStaves } \upper \new Staff \with { \RemoveEmptyStaves } \lower \new Staff \with { \RemoveEmptyStaves \override VerticalAxisGroup.remove-first = ##t \DoNotKeepAlive } \extra >> >> } Without this we cannot build stable \PianoThreeStaff context. Karol 1.pdf Description: Adobe PDF document ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: still no ultimate way to create three-staff piano layout
karol wrote > Hi Eluze, > > it works, but only if all three piano-staves are visible. When staff 'c' > is empty (hidden), distance between 'b' and 'd' is smaller than it should > be. No idea how to solve this... what if you augment the value in the PianoStaff: << \new PianoStaff \with { \remove "Span_bar_engraver" \remove "System_start_delimiter_engraver" \override StaffGrouper.staffgroup-staff-spacing.basic-distance = #15 } << did I misunderstand? Eluze -- View this message in context: http://lilypond.1069038.n5.nabble.com/still-no-ultimate-way-to-create-three-staff-piano-layout-tp153648p155363.html Sent from the User mailing list archive at Nabble.com. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: still no ultimate way to create three-staff piano layout
Hi Eluze, it works, but only if all three piano-staves are visible. When staff 'c' is empty (hidden), distance between 'b' and 'd' is smaller than it should be. No idea how to solve this... = \version "2.17.96" music = { c'1 } musicEmpty = { R1 } \score { << \new StaffGroup \with { systemStartDelimiter = #'SystemStartBrace \override StaffGrouper.staffgroup-staff-spacing.basic-distance = #10.5 } << \new PianoStaff \with { \remove "Span_bar_engraver" \remove "System_start_delimiter_engraver" \override StaffGrouper.staffgroup-staff-spacing.basic-distance = #9 } << \new Staff \with { instrumentName = #"a" } \music \new Staff \with { instrumentName = #"b" } \music >> \new Staff \with { instrumentName = #"c" \RemoveEmptyStaves \override VerticalAxisGroup.remove-first = ##t } \musicEmpty >> \new StaffGroup << \new Staff \with { instrumentName = #"d" } \music \new Staff \with { instrumentName = #"e" } \music \new Staff \with { instrumentName = #"f" } \music >> >> } = > karol wrote > > Hi, > > > > I'm still working on ultimate three-staff piano layout. When I write > > piano-solo music it works fine. The problem occures when I add another > > StaffGroup: > > you probably have to override the values for the staff grouper: > > \score { > << > \new StaffGroup \with { > \override StaffGrouper.staffgroup-staff-spacing.basic-distance = #44 > systemStartDelimiter = #'SystemStartSquare > } > << > \new PianoStaff \with{ > \override StaffGrouper.staffgroup-staff-spacing.basic-distance = 55 > } > << > \new Staff \music > \new Staff \music > \new Staff \music > >> > \new Staff \music > >> > \new StaffGroup << > \new Staff \music > \new Staff \music > \new Staff \music > >> > >> > } > > does this work for you? > > Eluze > > > > -- > View this message in context: > http://lilypond.1069038.n5.nabble.com/still-no-ultimate-way-to-create-three-staff-piano-layout-tp153648p155355.html > Sent from the User mailing list archive at Nabble.com. > > ___ > lilypond-user mailing list > lilypond-user@gnu.org > https://lists.gnu.org/mailman/listinfo/lilypond-user ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: still no ultimate way to create three-staff piano layout
karol wrote > Hi, > > I'm still working on ultimate three-staff piano layout. When I write > piano-solo music it works fine. The problem occures when I add another > StaffGroup: you probably have to override the values for the staff grouper: \score { << \new StaffGroup \with { \override StaffGrouper.staffgroup-staff-spacing.basic-distance = #44 systemStartDelimiter = #'SystemStartSquare } << \new PianoStaff \with{ \override StaffGrouper.staffgroup-staff-spacing.basic-distance = 55 } << \new Staff \music \new Staff \music \new Staff \music >> \new Staff \music >> \new StaffGroup << \new Staff \music \new Staff \music \new Staff \music >> >> } does this work for you? Eluze -- View this message in context: http://lilypond.1069038.n5.nabble.com/still-no-ultimate-way-to-create-three-staff-piano-layout-tp153648p155355.html Sent from the User mailing list archive at Nabble.com. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: still no ultimate way to create three-staff piano layout
Hi, I'm still working on ultimate three-staff piano layout. When I write piano-solo music it works fine. The problem occures when I add another StaffGroup: = \version "2.17.96" music = { c'1 } \score { << \new StaffGroup \with { systemStartDelimiter = #'SystemStartBrace } << \new PianoStaff \with { \remove "Span_bar_engraver" \remove "System_start_delimiter_engraver" } << \new Staff \with { instrumentName = #"a" } \music \new Staff \with { instrumentName = #"b" } \music >> \new Staff \with { instrumentName = #"c" \RemoveEmptyStaves \override VerticalAxisGroup.remove-first = ##t } \music >> \new StaffGroup << \new Staff \with { instrumentName = #"d" } \music \new Staff \with { instrumentName = #"e" } \music \new Staff \with { instrumentName = #"f" } \music >> >> } = As you can see, the distance between 'b' and 'c' is bigger than between 'a' and 'b'. To prevent this, in piano-solo music I used to add: \override VerticalAxisGroup #'staff-staff-spacing = #'((basic-distance . 9) (minimum-distance . 7) (padding . 1) (stretchability . 5)) to the main StaffGroup. But when I add it to layout with more StaffGroups (example above), distance between 'c' and 'd' gets smaller too, and this is not what I want. I got stuck. Don't know how to achieve this: dist.ab = dist.bc dist.bc < dist.cd Any ideas? -Best Karol <>___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: still no ultimate way to create three-staff piano layout
Hi, > yes - but please if you go public (eg. LSR) - and I hope you will - don't > call the variables "left" or "right"; leftHand and rightHand seems less > confusable within LilyPond Might I suggest pianoUpper/pianoLower/pianoThird, or pianoI/pianoII/pianoIII, or similar? It's not a fact that the left hand always plays the lower staff, and the right the upper, etc. Cheers, Kieren. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: still no ultimate way to create three-staff piano layout
karol wrote > So this is how three-staff piano layout should look like: > > [...] yes - but please if you go public (eg. LSR) - and I hope you will - don't call the variables "left" or "right"; leftHand and rightHand seems less confusable within LilyPond thanks Eluze -- View this message in context: http://lilypond.1069038.n5.nabble.com/still-no-ultimate-way-to-create-three-staff-piano-layout-tp153648p153680.html Sent from the User mailing list archive at Nabble.com. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: still no ultimate way to create three-staff piano layout
Thanks Eluze! So this is how three-staff piano layout should look like: \score { \new StaffGroup \with { systemStartDelimiter = #'SystemStartBrace \override VerticalAxisGroup #'staff-staff-spacing = #'((basic-distance . 9) (minimum-distance . 7) (padding . 1) (stretchability . 5)) } << \new PianoStaff \with { \remove "System_start_delimiter_engraver" \remove "Span_bar_engraver" } << \new Staff = "right" \right \new Staff = "left" \left >> >> \new Staff = "leftExtra" \with { \RemoveEmptyStaves \override VerticalAxisGroup.remove-first = ##t } \leftExtra >> } -Karol ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: still no ultimate way to create three-staff piano layout
Hi all, > I think you can group or nest these contexts, eg. > > \new StaffGroup \with { } << >\new PianoStaff << > \new Staff = "A" \A > \new Staff = "B" \B >>> >\new Staff = "C" \C \with { } >>> > > and then (with \removeEmpty... specified) will always keep together but > staff C can be removed if it doesn't play. Maybe wrap it up as a custom context (e.g., \PianoThreeStaff), so that template-level control — and sharing with the community at large — is easy? Good luck! Kieren. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: still no ultimate way to create three-staff piano layout
karol wrote > The question is: what if three-staff piano is part of orchestra? In > orchestral score, when piano is "tacet", the whole PianoStaff should be > removed from the page. > > Adding \RemoveEmptyStaves to every Staff is a bad idea, because when the > "right" staff has some nmusic and the "left" staff is empty - only the > "right" will be shown (And I want the "left" to be shown also!) > > \score { > \new PianoStaff \with { > \remove "Keep_alive_together_engraver" > } << > \new Staff = "right" \with { \RemoveEmptyStaves } \right > \new Staff = "left" \with { \RemoveEmptyStaves } \left > \new Staff = "leftExtra" \with { \RemoveEmptyStaves \override > VerticalAxisGroup.remove-first = ##t } \leftExtra > >> > } > > So, is there any way to create such layout? Maybe it's possible to: > 1) remove single Staff from PianoStaff without removing > "Keep_alive_together_engraver"? > 2) make "Keep_alive_together_engraver" to keep alive only two highest > Staves in PianoStaff? I think you can group or nest these contexts, eg. \new StaffGroup \with { } << \new PianoStaff << \new Staff = "A" \A \new Staff = "B" \B >> \new Staff = "C" \C \with { } >> and then (with \removeEmpty... specified) will always keep together but staff C can be removed if it doesn't play. maybe you have to construct an example to see how this works hth Eluze -- View this message in context: http://lilypond.1069038.n5.nabble.com/still-no-ultimate-way-to-create-three-staff-piano-layout-tp153648p153653.html Sent from the User mailing list archive at Nabble.com. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
still no ultimate way to create three-staff piano layout
It seems that there is no ultimate way to create three-staff piano layout. When typing solo piano piece, there is no problem. The following does the job: \score { \new PianoStaff \with { \remove "Keep_alive_together_engraver" } << \new Staff = "right" \right \new Staff = "left" \left \new Staff = "leftExtra" \with { \RemoveEmptyStaves \override VerticalAxisGroup.remove-first = ##t } \leftExtra >> } The question is: what if three-staff piano is part of orchestra? In orchestral score, when piano is "tacet", the whole PianoStaff should be removed from the page. Adding \RemoveEmptyStaves to every Staff is a bad idea, because when the "right" staff has some nmusic and the "left" staff is empty - only the "right" will be shown (And I want the "left" to be shown also!) \score { \new PianoStaff \with { \remove "Keep_alive_together_engraver" } << \new Staff = "right" \with { \RemoveEmptyStaves } \right \new Staff = "left" \with { \RemoveEmptyStaves } \left \new Staff = "leftExtra" \with { \RemoveEmptyStaves \override VerticalAxisGroup.remove-first = ##t } \leftExtra >> } So, is there any way to create such layout? Maybe it's possible to: 1) remove single Staff from PianoStaff without removing "Keep_alive_together_engraver"? 2) make "Keep_alive_together_engraver" to keep alive only two highest Staves in PianoStaff? -Karol ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user