[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: controlling the spacing *above* a context
From: |
tisimst |
Subject: |
Re: controlling the spacing *above* a context |
Date: |
Mon, 5 May 2014 06:59:50 -0700 (PDT) |
Kieren MacMillan wrote
> I often run into the situation where I have to control the spacing *above*
> a context, independent of what context is there.
I understand your pain...
Kieren MacMillan wrote
> For example, consider a choir score structured as follows:
>
> ScoreMarks
> ChoirStaff <<
> SA-Lyrics
> SA-Staff
> SATB-Lyrics
> TB-Staff
> TB-Lyrics
> >>
> ScoreMarksForReduction
> Reduction <<
> ReductionUpperStaff
> ReductionLowerStaff
> >>
>
> I want to control the amount of padding *above* the ScoreMarksForReduction
> context.
Not sure if this is what you are looking for, but it seems like I saw the
solution as I read through the Notation and Snippets documentation. Your
pseudo-score structure looks a lot like that in the notation documentation
<http://www.lilypond.org/doc/v2.18/Documentation/notation/flexible-vertical-spacing-within-systems#spacing-of-grouped-staves>
. Since you are specifically dealing with StaffGroups (like ChoirStaff and
PianoStaff), one of the easiest ways of controlling the distance between two
StaffGroups, regardless of what's in-between (including the TB-Lyrics), is
to include
\with {
\override StaffGrouper.staffgroup-staff-spacing.basic-distance = #20
}
to the StaffGroup ABOVE the context (the ChoirStaff, in your case) and
adjusting the number to your taste. Here's a full example (modified from the
snippets documentation
<http://www.lilypond.org/doc/v2.18/Documentation/snippets/vocal-music#vocal-music-vocal-ensemble-template-with-automatic-piano-reduction>
):
\paper {
top-system-spacing #'basic-distance = #10
score-system-spacing #'basic-distance = #20
system-system-spacing #'basic-distance = #20
last-bottom-spacing #'basic-distance = #10
}
global = {
\key c \major
\time 4/4
}
sopMusic = \relative c'' {
c4 c c8[( b)] c4
}
sopWords = \lyricmode {
hi hi hi hi
}
altoMusic = \relative c' {
e4 f d e
}
altoWords =\lyricmode {
ha ha ha ha
}
tenorMusic = \relative c' {
g4 a f g
}
tenorWords = \lyricmode {
hu hu hu hu
}
bassMusic = \relative c {
c4 c g c
}
bassWords = \lyricmode {
ho ho ho ho
}
\score {
<<
\new ChoirStaff \with {
\override StaffGrouper.staffgroup-staff-spacing.basic-distance = #15
} <<
\new Lyrics = "sopranos" \with {
% This is needed for lyrics above a staff
\override VerticalAxisGroup.staff-affinity = #DOWN
}
\new Staff = "women" <<
\new Voice = "sopranos" { \voiceOne << \global \sopMusic >> }
\new Voice = "altos" { \voiceTwo << \global \altoMusic >> }
>>
\new Lyrics = "altos"
\new Lyrics = "tenors" \with {
% This is needed for lyrics above a staff
\override VerticalAxisGroup.staff-affinity = #DOWN
}
\new Staff = "men" <<
\clef bass
\new Voice = "tenors" { \voiceOne << \global \tenorMusic >> }
\new Voice = "basses" { \voiceTwo << \global \bassMusic >> }
>>
\new Lyrics = "basses"
\context Lyrics = "sopranos" \lyricsto "sopranos" \sopWords
\context Lyrics = "altos" \lyricsto "altos" \altoWords
\context Lyrics = "tenors" \lyricsto "tenors" \tenorWords
\context Lyrics = "basses" \lyricsto "basses" \bassWords
>>
\new PianoStaff <<
\new Staff <<
\set Staff.printPartCombineTexts = ##f
\partcombine
<< \global \sopMusic >>
<< \global \altoMusic >>
>>
\new Staff <<
\clef bass
\set Staff.printPartCombineTexts = ##f
\partcombine
<< \global \tenorMusic >>
<< \global \bassMusic >>
>>
>>
>>
}
Sorry if I misunderstood/didn't answer your exact question.
Regards,
Abraham
--
View this message in context:
http://lilypond.1069038.n5.nabble.com/controlling-the-spacing-above-a-context-tp162071p162082.html
Sent from the Dev mailing list archive at Nabble.com.