lilypond-user
[Top][All Lists]
Advanced

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

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


From: Karol Majewski
Subject: Re: still no ultimate way to create three-staff piano layout
Date: Sun, 08 Dec 2013 14:00:56 +0100

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

Attachment: 1.pdf
Description: Adobe PDF document


reply via email to

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