Re: still no ultimate way to create three-staff piano layout

2013-12-16 Thread David Kastrup
"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

2013-12-16 Thread Keith OHara

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

2013-12-16 Thread David Kastrup
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

2013-12-16 Thread Keith OHara
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

2013-12-09 Thread Kieren MacMillan
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

2013-12-09 Thread Eluze
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

2013-12-08 Thread Karol Majewski
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

2013-12-08 Thread Eluze
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

2013-12-08 Thread Karol Majewski
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

2013-12-08 Thread Eluze
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

2013-12-08 Thread Karol Majewski
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

2013-11-10 Thread Kieren MacMillan
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

2013-11-10 Thread Eluze
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

2013-11-10 Thread Karol Majewski
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

2013-11-10 Thread Kieren MacMillan
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

2013-11-10 Thread Eluze
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

2013-11-10 Thread Karol Majewski
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