Hello list

Triggered by my recent problem with a strange notion of Lilypond, due to which 
it seems to prefer an even number of pages for a score in a multi-score 
work, I wanted to try and fix that in another document of mine.

This work (namely Bach’s Mass in B minor, BWV 232) has 27 pieces, hence I 
wanted to make it as easy as possible to work on single pieces at a time, but 
also to compile the whole thing.

So, of course, each piece is in an own file again. But this time, I wanted to 
have everything that is needed to load a piece in one single line (so they can 
be switched on and off the easiest).


As a result, the piece files now contain the entire score block, plus variable 
definitions for all staves and lyrics to be used within the \score. However 
there is one problem - I can't use this approach with bookparts, because I 
can't define variables within a bookpart (I get unknown string error). The 
obvious solution to this would be of course to not use variables, but write 
everything into the \score directly. This has at least the problem of having 
to duplicate parts that are common to all staves.


But still, I am curious: how do you structure your bigger projects (both in 
terms of physical files as well as logical structure) in order to remain 
flexible in case you decide to change something globally? I'm only producing 
choir sheets, so I have no need for separate versions of the files like 
instrument parts.


I attached one piece and the main file, adapted to be a working minimal 
example. ;-)
-- 
Gruß | Greetings | Qapla'
Kids in the back seat cause accidents. Accidents in the backseat cause kids.
\version "2.12.2"
%\include "titling.ly" % more elaborate title page
\include "deutsch.ly"

#(set-global-staff-size 14.14)
\paper {
	#(set-paper-size "a4")
	top-margin = 1.3 \cm
	bottom-margin = 1.6 \cm
	default-paper-size = "a4"
	between-system-padding = 0\cm
	line-width = 17.5\cm
	ragged-last-bottom = ##f
}

\layout { indent = #0 }

%\book {
	\header {
		title="Mass in B minor"
		composer="Johann Sebastian Bach"
	}
	\markuplines \table-of-contents
%}
\pageBreak
%part="1. Kyrie eleison" \tocItem \markup \part \include "01.ly"
%part="3. Kyrie eleison" \tocItem \markup \part \include "03.ly"
%part="4. Gloria in excelsis" \tocItem \markup \part \include "04,05.ly"
%part="25. Osanna repetatur" \tocItem \markup \part \include "25.ly"
part="27. Dona nobis pacem" \tocItem \markup \part \include "27.ly"
\version "2.12.2"
\include "deutsch.ly"
tags=#'clefold
part="27. Dona nobis pacem"

control={
	\set Score.skipBars = ##t
	\set Score.skipTypesetting = ##f
	\override Score.RehearsalMark #'self-alignment-X = #left
	\time 2/1\mark\markup{\part}
	\set Staff.timeSignatureFraction = # '(2 . 2)

	s\breve
	s\breve * 45
	
	\bar "|."
}

SopranStaff={
	\set Staff.instrumentName="S"
	\set Staff.shortInstrumentName="S"
	<<
		\control
	\new Voice="Sopran" \relative c'' {
		\tag #'clefold {\clef soprano}
		\tag #'clefnew {\clef treble}
		\key h \minor
		\autoBeamOff
		\set Score.skipBars = ##t
		
		R\breve * 2
		r2 a( h) cis
		d \melisma cis4 h cis \melismaEnd a d2~
		d cis h1
	% Seite 5 Takt 6
		a2 r r1
		r2 d1 cis2
		d4 \melisma cis8[ h] a[ h g a] h[ a h c] h[ c h a]
	% Seite 6, Takt 9
		g4 \melismaEnd e a2 d, r
		r1 r2 a'(
		h) cis d \melisma cis4 h
		cis \melismaEnd fis, fis'2~ \melisma fis4 e8[ d] e2~
		e4 d2 \melismaEnd g4 cis, e d( cis)
	% Seite 7, Takt 14
		h1 r
		r d(
		e2) fis g \melisma fis4 e
		fis \melismaEnd d g1 fis2
		e1 d
	% Seite 8, Takt 19
		r r2 e~
		e dis e4 \melisma d8[ c] h[ c a h]
		c[ h c d] c[ e d c] h4 \melismaEnd cis d2
		g,4 r cis1 h2
	% Seite 9, Takt 23
		e4 e a,2 a4 r fis'2~
		fis eis fis4 \melisma e8[ d] cis[ d h cis]
		d[ cis d e] d[ fis e d] cis4 \melismaEnd cis fis2
		h,2 r r d(
	% Seite 10, Takt 27
		e) fis g \melisma fis4 e
		fis \melismaEnd d g1 fis2
		e d~ d4 h2 h4
		a a h2 e,4 r a2(
		h) cis d \melisma cis4 h
	% Seite 11, Takt 32
		cis \melismaEnd a d1 cis2
		h1 a
		R\breve
		d1( e2) fis
		g \melisma fis4 e fis \melismaEnd d g2~
	% Seite 12, Takt 37
		g fis e1
		d2 d1 cis2
		d8[ \melisma e d cis] h[ cis a h] cis[ d h cis] dis[ e cis dis]
		e1~ e4 d!8[ cis] d[ e fis d]
	% Seite 13, Takt 42
		g1~ g2 \melismaEnd fis
		e\breve
		d2 r4 d \melisma e2~ e8[ fis e d]
		cis4 \melismaEnd a fis'1 \melisma e2~
		e4 \melismaEnd a, d2~ d4 cis8[ h] cis2
		d\breve\fermata
	}
>>
}
SopranLyrics=\lyricmode {
	Do -- na no -- bis pa -- cem, pa --
	cem, pa -- cem, do --
	na no -- bis, do -- na no -- bis pa -- cem, do -- na no --
	bis, do -- na no -- bis pa -- cem, pa -- cem,
	pa -- cem, do -- na no -- bis pa -- cem,
	do -- na no -- bis pa -- cem, do -- na no -- bis, do --
	na no -- bis pa -- cem, pa -- cem, __ do -- na no -- bis pa -- cem, do -- na no --
	bis pa -- cem, pa -- cem, do -- na no -- bis pa --
	cem, pa -- cem, pa -- cem, do --
	na pa -- cem, do -- na, do -- na no -- bis pa -- cem.
}

AltStaff={
	\set Staff.instrumentName="A"
	\set Staff.shortInstrumentName="A"
	<< \control
	\new Voice="Alt" \relative c' {
		\tag #'clefold {\clef alto}
		\tag #'clefnew {\clef treble}
		\key h \minor
		\autoBeamOff
		\set Score.skipBars = ##t
		
		R\breve
		r1 r2 d(
		e) fis  g \melisma fis4 e
		fis \melismaEnd d g1 fis2
		e1 d
	% Seite 5, Takt 6
		r1 r2 a'~
		a gis a4 \melisma g8[ fis] e[ fis d e]
		fis[ e fis g] fis[ g fis e] d4 \melismaEnd h fis'2
	% Seite 6, Takt 9
		h, r r1
		r2 d( e) fis
		g \melisma fis4 e fis \melismaEnd h, h'2~ \melisma
		h4 a2 \melismaEnd d4 g, h a( g)
		fis1 r
	% Seite 7, Takt 14
		r a(
		h2) cis d \melisma cis4 h
		cis \melismaEnd a d1 cis2
		h1 a2 d,(
		e) fis g \melisma fis4 e
	% Seite 8, Takt 19
		fis \melismaEnd d a'1 g2
		fis1 e2 g~
		g fis g4 \melisma fis8[ e] d[ e cis d]
		e[ d e fis] e[ g fis e] d4 \melismaEnd e fis2
	% Seite 9, Takt 23
		h,2 e2~^\markup{todo} e4 d cis a'
		gis1 fis2 r
		r d( e) fis
		g \melisma fis4 e fis \melismaEnd d g2~
	% Seite 10, Takt 27
		g fis e1
		d2 r r4 d'2 d4
		cis cis d8[( cis h a] g4) d g2~
		g4 fis d2( e) fis
		g \melisma fis4 e fis \melismaEnd d g2~
	% Seite 11, Takt 32
		g fis e1
		d r2 d(
		e) fis g \melisma fis4 e
		fis \melismaEnd d g1 \melisma fis2~
		fis4 e8[ d] a'2~ a4 g8[ fis] h2 \melismaEnd
	% Seite 12, Takt 37
		a a gis a~
		a gis a8[ \melisma e fis gis] a[ h gis a]
		h4 \melismaEnd fis h2~ h4 e, a2
		e4 r cis'2~ cis4 h8[ ais] h2~
	% Seite 13, Takt 42
		h4 h e,2 d d(
		e) fis g \melisma fis4 e
		fis h2 \melismaEnd h4 e, \melisma gis h2~
		h4 \melismaEnd e, a2~ a4 d, g!2~ \melisma
		g4 fis8[ e] fis4 \melismaEnd h fis( e8[ d] e2)
		fis\breve\fermata
	}
	>>
}
AltLyrics=\lyricmode {
	Do -- na no -- bis pa -- cem, pa -- cem,
	pa -- cem, do -- na no --
	bis, do -- na no -- bis pa -- cem, do -- na no -- bis,
	do -- na no -- bis pa -- cem, pa -- cem, do -- na no --
	bis pa -- cem, pa -- cem, pa -- cem, do -- na no --
	bis, do -- na no -- bis pa -- cem, do -- na no -- bis pa --
	cem, pa -- cem, do -- na no -- bis, do -- na pa -- cem, do -- na no -- bis pa --
	cem, pa -- cem, do -- na no -- bis pa --
	cem, do -- na pa -- cem, do -- na, do -- na no -- bis pa -- cem, do --
	na no -- bis, do -- na no -- bis pa -- cem, do -- na no -- bis pa -- cem.
}

TenorStaff={
	\set Staff.instrumentName="T"
	\set Staff.shortInstrumentName="T"
	<<
		\control
	\new Voice="Tenor" \relative c' {
		\tag #'clefold {\clef tenor}
		\tag #'clefnew {\clef "G_8"}
		\key h \minor
		\autoBeamOff
		\set Score.skipBars = ##t
		
		r1 r2 a(
		h) cis d \melisma cis4 h
		cis \melismaEnd a d1 cis2
		h1 a
		r r2 d2~
	% Seite 5, Takt 6
		d cis d4 \melisma cis8[ h] a[ h g a]
		h[ a h cis] h[ d cis h] a4 \melismaEnd e a2
		d,1 r
	% Seite 6, Takt 9
		r2 a'( h) cis
		d \melisma cis4 h cis \melismaEnd fis, fis'2~ \melisma
		fis4 e2 \melismaEnd a4 d, fis e( d)
		cis1 r
		d( e2) fis
	% Seite 7, Takt 14
		g \melisma fis4 e fis \melismaEnd d a'2~
		a g fis1
		e2 a,( h) cis
		d \melisma cis4 h cis \melismaEnd a d2~
		d cis h1
	% Seite 8, Takt 19
		a2 e'4 e dis( h2) h4
		c2( h) g r
		r1 r2 h~
		h ais h4 \melisma a8[ g] fis[ g e fis]
	% Seite 9, Takt 23
		g[ fis g a] g[ h a g] fis4 \melismaEnd g a2
		d,4 d'( cis) cis cis d e2
		a, r r a(
		h) cis d \melisma cis4 h
	% Seite 10, Takt 27
		cis \melismaEnd a d1 c2
		c( h) a1
		r2 a( h) cis
		d \melisma cis4 h cis \melismaEnd a d2~
		d cis h4 \melisma fis' e d
	% Seite 11, Takt 32
		cis e d fis h,2 \melismaEnd a~
		a g a h
		g a( h) cis
		d \melisma cis4 h cis \melismaEnd a d2~ \melisma
		d4 cis8[ h] e2~ e4 \melismaEnd a, d2(
	% Seite 12, Takt 37
		e) d4( cis) h2 cis
		d4( cis) h2 e2. e4
		fis d e2~ e4 e fis2
		h, fis'~ \melisma fis8[ g fis e] fis4 \melismaEnd d
	% Seite 13, Takt 42
		d2( cis4) a a2 a
		r a( h) cis
		d( e4) fis h,2 \melisma e~
		e4 \melismaEnd cis2 d8[( cis] h4 a) h( g)
		a( h8[ cis] d4) h a1
		a\breve\fermata
	}
>>
}
TenorLyrics=\lyricmode {
	Do -- na no -- bis pa -- cem, pa -- cem, pa --
	cem, do -- na no -- bis,
	do -- na no -- bis pa -- cem, do -- na no -- bis, do -- na
	no -- bis pa -- cem, pa -- cem, do -- na no -- bis pa -- cem, pa --
	cem, do -- na no -- bis pa -- cem, pa -- cem, do --
	na no -- bis pa -- cem, do -- na no -- bis, do -- na no --
	bis pa -- cem, pa -- cem, do -- na no -- bis pa -- cem, do --
	na __ no -- bis pa -- cem, do -- na no -- bis pa -- cem, do --
	na no -- bis pa -- cem, do -- na no -- bis pa -- cem, pa -- cem, do -- na
	no -- bis pa -- cem, do -- na no -- bis pa -- cem, do -- na no -- bis pa -- cem.
}

BassStaff={
	\set Staff.instrumentName="B"
	\set Staff.shortInstrumentName="B"
	<< \control
	\new Voice="Bass" \relative c {
		\clef bass
		\key h \minor
		\autoBeamOff
		\set Score.skipBars = ##t

		r2 d( e) fis
		g \melisma fis4 e fis \melismaEnd d g2~
		g fis e1
		d1 r
		r2 a'1 gis2
	% Seite 5, Takt 6
		a4 \melisma g!8[ fis] e[ fis d e] fis[ e fis g] fis[ g fis e]
		d4 \melismaEnd h  e2 a,1
		r r2 d2(
	% Seite 6, Takt 9
		e) fis g \melisma fis4 e
		fis \melismaEnd h, h'2~ \melisma h4 a2 \melismaEnd d4
		g, h a( g) fis1
		R\breve
		r2 h1 ais2
	% Seite 7, Takt 14
		h8[ \melisma cis a! h] cis[ d h cis] d[ cis d e] d[ e d cis]
		h1~ h4 cis \melismaEnd d2
		a g4( fis) e2 a
		d,( e) a,1~
		a2 ais8[ \melisma h gis ais] h[ cis ais h] cis[ d h cis]
	% Seite 8, Takt 19
		d[ cis d e] c[ h c d] h4 \melismaEnd h e2
		a, h e r
		R\breve
		r1 r2 d2~
	% Seite 9, Takt 23
		d cis d4 \melisma cis8[ h] a[ h gis a]
		h[ a h cis] h[ d cis h] a4 \melismaEnd h cis2
		fis,4 r h'2~ h4 a g fis
		e2( a) d, r
	% Seite 10, Takt 27
		R\breve
		r1 d(
		e2) fis g \melisma fis4 e
		fis \melismaEnd d g1 fis2
		e( a) d,4 r h'2~ \melisma
	% Seite 11, Takt 32
		h4 cis \melismaEnd d( h) g e a2
		d, r r1
		R\breve
		r1 a(
		h2) cis d \melisma cis4 h
	% Seite 12, Takt 37
		cis \melismaEnd a d1 cis2
		h1 a2 a'~
		a gis a8[ \melisma h a g] fis[ g e fis]
		gis[ a fis gis] ais[ h gis ais] h1~
	% Seite 13, Takt 42
		h4 a!8[ g] a[ h cis a] d4 a d2~
		d \melismaEnd c h1~
		h2 a gis1
		a4 a2 d,4 g!( fis g) e
		fis2. \melisma g4 a2 a, \melismaEnd
		d\breve\fermata
	}
>>
}
BassLyrics=\lyricmode {
	Do -- na no -- bis pa -- cem, pa -- cem, pa -- cem,
	do -- na no -- bis, do --
	na no -- bis pa -- cem, do -- na no -- bis pa -- cem,
	pa -- cem, do -- na no -- bis pa -- cem, __ do --
	na no -- bis pa -- cem, pa --
	cem, do -- na no -- bis, do -- na no -- bis pa -- cem,
	do -- na no -- bis pa -- cem, pa -- cem, do --
	na no -- bis pa -- cem, do -- na no --
	bis pa -- cem, pa -- cem, pa -- cem, do --
	na no -- bis pa -- cem, do -- na no -- bis pa -- cem.
}


\score {
	\keepWithTag \tags
	\new ChoirStaff <<
		\new Staff="Sopran" \SopranStaff
		\new Lyrics \lyricsto "Sopran" \SopranLyrics

		\new Staff="Alt" \AltStaff
		\new Lyrics \lyricsto "Alt" \AltLyrics

		\new Staff="Tenor" \TenorStaff
		\new Lyrics \lyricsto "Tenor" \TenorLyrics

		\new Staff="Bass" \BassStaff
		\new Lyrics \lyricsto "Bass" \BassLyrics
	>>
	\layout {
		page-count = 3
		system-count = 12
	}
}
_______________________________________________
lilypond-user mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to