[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Advice sought on making parts for string quartet
From: |
karl |
Subject: |
Re: Advice sought on making parts for string quartet |
Date: |
Wed, 13 Mar 2019 12:50:05 +0100 (CET) |
...
> I cannot be the only person to need to deal with this. What's the best
> practice for making parts when using explicit page breaking?
So the question is, how do one handle, for a given set of music,
varying requirements for line and page breaks ?
The way I handle it is to first split the lilypond code into two sets.
I'm using
http://aspodata.se/git/musik/Guillaume_du_Fay/ave_regina_caelorum/
http://aspodata.se/git/musik/Franz_Zaver_Brixi/heac_est_dies/
here to exemplify things.
One file (the .ily) with just the music and some defaults, e.g.:
musTen = \relative a {
\key c \major
\[ a\breve*3/2 \melisma | % 1
g\breve \] f1 \melismaEnd | % 2
e\breve*3/2 | % 3
d\breve e1 | % 4
...
}
I.e. just the music put in variables.
Then I have realisation files, the .ly's, where I set e.g. paper and
score things. In this I can also redefine the defaults set in the .ily
file. In this example I have two of them ave_regina_caelorum.ly and
ave_regina_caelorum_alt.ly, which differ in the look, old or a somewhat
more modern:
http://aspodata.se/choir/ensemble/2019-03-23/Guillaume_du_Fay_ave_regina_caelorum.pdf
http://aspodata.se/choir/ensemble/2019-03-23/Guillaume_du_Fay_ave_regina_caelorum_alt.pdf
or small typed (two pages) vs. big typed (three pages):
http://aspodata.se/choir/osthammar/Brixi/
http://aspodata.se/git/musik/bin/mkinstr.pl relieves my of much the
work writing staff things, which is much cut and paste.
It generates the .instr_ily and .staff_ily files.)
///
Now regarding page and line breaks, I use a variable PS which is set
empty as default: PS = {} and usually that is sufficient, but in
http://aspodata.se/git/musik/Franz_Zaver_Brixi/heac_est_dies/heac_est_dies_big.ly
I want to put the page break in a proper place, like:
\include "heac_est_dies.ily"
PS = \relative f {
s2.*85 | \pageBreak % 1..85
s2.*25 | % 86..110
}
where in the "normal" two page version, I don't need that, which
thus doesn't contain that redefinition.
Then writing the staff part, make a new variable which has the
with the line/page breaks, something linke:
staffSop = \new Staff << \voiceSop \PS >>
And the score becomes something like:
For a partiture:
\score {
<<
\new ChoirStaff <<
\staffSop
\staffAlt
\staffTen
\staffBas
>>
>>
}
for parts:
\score { \staffSop }
or if you wants it all in one file:
PS = { ... \break ... }
\score {
\new Staff << \voiceSop \PS >>
}
PS = { ... some other \break's ... }
\score {
<<
\new ChoirStaff <<
\new Staff << \voiceSop \PS >>
...
>>
>>
}
So, by using variables, you can completely separate the "break
structure" from the music.
///
You mentioned \tag's, I don't know how this interract with tags.
You mentioned signature changes, you can handle \time , \clef,
\bar in the same way. Just write the Cello = \relative c' { } without
any of theese things and use it like
\new \Staff << \PS \timeCello \clefCello \barCello ... \Cello >>
An example of that is in
http://aspodata.se/git/musik/JohannPachelbel/magnificat/
clefCem.ily contains two variants of clef use which I can switch between
them in magnificat.ly by commenting:
\include "clefCem.ily"
%clefCem = \clefCemOrg
clefCem = \clefCemMod
...
\score {
...
\new GrandStaff <<
\transpose c \pitchTranspose \new Staff = "up" << \musA \musB \musC \BS
\PS >>
\transpose c \pitchTranspose \new Staff = "down" \with \nameCem <<
\clefCem \voiceCem \BS \PS >>
\new FiguredBass \gbCem
>>
...
}
Regards,
/Karl Hammar