diff --git a/Makefile b/Makefile index 77ce1e9..a4281df 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -TOPDIR :::= $(PWD) +TOPDIR ::= $(shell pwd) build_dir ::= $(TOPDIR)/build config_dir ::= $(TOPDIR)/config docker ::= podman @@ -31,8 +31,6 @@ build_docker_image: $(docker) build -t songsheet_generator . pull_docker: $(docker) pull gitea.leopold.fajtak.at/leopold/songsheet_generator:latest -build_in_docker: - $(docker) run -v `pwd`:/data songsheet_generator make -j all tex_deps ::= $(template_dir)/variables.tt $(config_dir)/qr_codes.csv $(config_dir)/variables.tt $(dynamic_deps) songsheet.tex: $(template_dir)/songsheet.tt $(tex_deps) $(template_dir)/header.tt $(template_dir)/head.tt $(template_dir)/footer.tt %.tex: build $(tex_deps) diff --git a/build_in_docker.sh b/build_in_docker.sh new file mode 100755 index 0000000..4d66e69 --- /dev/null +++ b/build_in_docker.sh @@ -0,0 +1 @@ +podman run -v `pwd`:/data songsheet_generator make "$@" diff --git a/config/song_choices.csv b/config/song_choices.csv index 5176628..873069b 100644 --- a/config/song_choices.csv +++ b/config/song_choices.csv @@ -1,12 +1,12 @@ -purpose | content | template | variables -| | | freie_lieder/adeste_fideles +purpose | template | assignments_directory | overrides +| | freie_lieder/adeste_fideles | introitus | | | -#confiteor | \input{library/gebete/confiteor/confiteor_de.tex} | | +#confiteor | | | lyrics = "\\input{${library_dir}/gebete/confiteor/confiteor_de.tex}" kyrie | | | gloria | | | graduale | | | tractus | | | -#credo | \input{library/gebete/credo/apostolisch_de.tex} | | +#credo | | | lyrics = "\\input{${library_dir}/gebete/credo/apostolisch_de.tex}" offertorium | | | sanctus | | | agnus | | | diff --git a/library/geschuetzte_lieder/agnus_dei_honeck/agnus_dei_honeck_leadsheet.ly b/library/geschuetzte_lieder/agnus_dei_honeck/agnus_dei_honeck_leadsheet.ly deleted file mode 100644 index 2ebf227..0000000 --- a/library/geschuetzte_lieder/agnus_dei_honeck/agnus_dei_honeck_leadsheet.ly +++ /dev/null @@ -1,21 +0,0 @@ -\version "2.24.1" -\language deutsch - -\include "../../../lilypond_musician_score_paper.ly" -\include "agnus_dei_honeck_vars.ly" -\score { - << - \new ChordNames { - \set chordChanges = ##t - \Song.Chords - } - \new Voice = "melody" {\Song.Melody} - \new Lyrics \lyricsto "melody" {\Song.Lyrics} - >> - \layout { - \context { - \Score - \omit BarNumber - } - } -} diff --git a/library/geschuetzte_lieder/agnus_dei_honeck/agnus_dei_honeck_lyrics.tt b/library/geschuetzte_lieder/agnus_dei_honeck/agnus_dei_honeck_lyrics.tt deleted file mode 100644 index a8765b3..0000000 --- a/library/geschuetzte_lieder/agnus_dei_honeck/agnus_dei_honeck_lyrics.tt +++ /dev/null @@ -1,4 +0,0 @@ -\song{[% purpose %]}{}{% -Du Lamm das geopfert ist / Verspottet und verhöhnt / Starbst, gabst uns den Frieden / Hast die Welt versöhnt\par -Agnus Dei / Du Retter dieser Welt / Agnus Dei\par -Herr erbarme dich / Herr erbarme dich / Den Frieden schenke uns.} diff --git a/library/geschuetzte_lieder/agnus_dei_honeck/agnus_dei_honeck_lz.ly b/library/geschuetzte_lieder/agnus_dei_honeck/agnus_dei_honeck_lz.ly deleted file mode 100644 index ef8a948..0000000 --- a/library/geschuetzte_lieder/agnus_dei_honeck/agnus_dei_honeck_lz.ly +++ /dev/null @@ -1,17 +0,0 @@ -\version "2.24.1" -\language deutsch - -\include "../../../lilypond_songsheet_paper.ly" -\include "agnus_dei_honeck_vars.ly" -\score { - << - \new Voice = "melody" {\Song.Melody} - \new Lyrics \lyricsto "melody" {\Song.Lyrics} - >> - \layout { - \context { - \Score - \omit BarNumber - } - } -} diff --git a/library/geschuetzte_lieder/agnus_dei_honeck/agnus_dei_honeck_vars.ly b/library/geschuetzte_lieder/agnus_dei_honeck/agnus_dei_honeck_vars.ly deleted file mode 100644 index 1040bb1..0000000 --- a/library/geschuetzte_lieder/agnus_dei_honeck/agnus_dei_honeck_vars.ly +++ /dev/null @@ -1,35 +0,0 @@ -\language deutsch -Song.Melody = \relative c' { - \key c \major - \time 2/2 - c4 d e c | e4. d8 4. g,8 | c4 d e c | g1 - c4 d e c | e4. (d8) 2 | c4 d e c | g1 - \repeat volta 2 { - f'2 d | e c4. 8 | f4 f d d | e1 - f2 d | \time 3/2 e4 (d) c1 | \time 2/2 c4 e d4. c8 | e1| - c4 e d4. c8 | 2~ 4. - c8 | 4 e4 d4. c8 | c1 - } -} - -Song.Lyrics = \lyricmode { -Du Lamm das ge -- op -- fert ist -ver -- spot -- tet und ver -- höhnt -starbst, gabst uns den Frie -- den -hast die Welt ver -- söhnt -Ag -- nus De -- i Du Ret -- ter die -- ser Welt -Ag -- nus De -- i Herr er -- bar -- me Dich -Herr er -- bar -- me Dich -den Frie -- den schen -- ke uns.} - -Song.Chords = \chordmode { - c1 | c/f | c/e | g | - c | c/f | c/e | g - % ref - f2 g | c/e a:m | - f g | a1:m | - f2 g | c4/e e:m a1:m | - f2 g | a1:m | - f2 g | a1:m | - f2 g | c1 -} \ No newline at end of file diff --git a/library/geschuetzte_lieder/agnus_dei_honeck/assignments.tt b/library/geschuetzte_lieder/agnus_dei_honeck/assignments.tt deleted file mode 100644 index 4d063cb..0000000 --- a/library/geschuetzte_lieder/agnus_dei_honeck/assignments.tt +++ /dev/null @@ -1,8 +0,0 @@ -[% - purpose_print = 'agnus' ? 'Zum Agnus Dei' : purpose; - scores = { - leadsheet = 'geschuetzte_lieder/agnus_dei_honeck/agnus_dei_honeck_leadsheet.ly' - congregation = 'geschuetzte_lieder/agnus_dei_honeck/agnus_dei_honeck_lz.ly' - } - credits.TM = 'Anna Maria Honeck'; --%] diff --git a/templates/Makefile b/templates/Makefile index 25365ae..56e2dac 100644 --- a/templates/Makefile +++ b/templates/Makefile @@ -3,11 +3,17 @@ tpage = tpage $(tpage_defs) tex_deps = *.tt $(config_dir)/variables.tt $(dynamic_deps) songsheet.tex: songsheet.tt $(tex_deps) header.tt head.tt footer.tt $(tpage) $< > $(build_dir)/$@ -musician_scores.tex: musician_scores.tt $(tex_deps) - $(tpage) $< > $(build_dir)/$@ -leadsheet_collection.tex: musician_scores.tt $(tex_deps) - $(tpage) --define parts=band $< > $(build_dir)/$@ +full_scores.tex: musician_scores.tt $(tex_deps) + $(tpage) --define parts=full $< > $(build_dir)/$@ choir_scores.tex: musician_scores.tt $(tex_deps) $(tpage) --define parts=SATB $< > $(build_dir)/$@ +leadsheets.tex: musician_scores.tt $(tex_deps) + $(tpage) --define parts=band $< > $(build_dir)/$@ $(build_dir)/dynamic_deps.mk: dynamic_deps.mk.tt $(song_choices) $(user_variables) $(tpage) $< > $@ +violin_parts.tex: musician_scores.tt $(tex_deps) + $(tpage) --define parts=violin $< > $(build_dir)/$@ +viola_parts.tex: musician_scores.tt $(tex_deps) + $(tpage) --define parts=viola $< > $(build_dir)/$@ +cello_parts.tex: musician_scores.tt $(tex_deps) + $(tpage) --define parts=cello $< > $(build_dir)/$@ diff --git a/templates/header.tt b/templates/header.tt index 189dd3f..32db6b0 100644 --- a/templates/header.tt +++ b/templates/header.tt @@ -79,8 +79,7 @@ BoldFont = *-Bold \footnotesize Originaltitel: #1}} \newcommand{\TM}[1]{{ \footnotesize T \& M: #1}} -\newcommand{\arrangement}[1]{{ - \footnotesize S: #1}} +\newcommand{\arrangement}[1]{} \newcommand{\lyrics}[1]{{ \footnotesize T: #1}} \newcommand{\melody}[1]{{ diff --git a/templates/musician_scores.tt b/templates/musician_scores.tt index 013e38b..be4356c 100644 --- a/templates/musician_scores.tt +++ b/templates/musician_scores.tt @@ -71,9 +71,9 @@ RawFeature = {+ss06} \begin{document} \section*{[% title %]} -\begin{centering} [% subtitle %] -\end{centering} +\vfill +[% parts %] [% USE song_choices = datafile("${config_dir}/song_choices.csv", delim= '|') %] [% IF parts == 0 -%] @@ -81,14 +81,13 @@ parts = ensemble [% END -%] [% FOREACH song = song_choices %] \newpage -[% template = song.template == '' ? "song_template.tt" : song.template -%] -[% INCLUDE "$template" +[% template = song.template == '' ? "song_template.tt" : song.template; +INCLUDE "$template" purpose = song.purpose - title = song.title - content = song.content - variables = song.variables ? "${library_dir}/${song.variables}/assignments.tt" : '' - directory = song.variables ? "${library_dir}/${song.variables}" : '' -%] -[% END %] + assignments = song.assignments_directory ? "${library_dir}/${song.assignments_directory}/assignments.tt" : '' + directory = song.assignments_directory ? "${library_dir}/${song.assignments_directory}" : '' + overrides = song.overrides; +-%] +[% END; -%] \end{document} diff --git a/templates/song_template.tt b/templates/song_template.tt index 9590ec8..7a174fe 100644 --- a/templates/song_template.tt +++ b/templates/song_template.tt @@ -1,6 +1,9 @@ [% PROCESS purpose_processing.tt; - IF variables; - PROCESS "$variables"; + IF assignments; + PROCESS "$assignments"; + END; + IF overrides != ''; + "\[% $overrides %\]" | evaltt; END; -%] \song{[% purpose_print ? purpose_print : purpose %]}{[% song_title -%]}{ @@ -14,10 +17,12 @@ GET "\\gregorioscore{${directory}/${scores.gregorian}}\n"; END; ELSE; - GET '\lilypondfile{'; IF parts; - IF parts == 'band'; - IF scores.leadsheet; + GET '\lilypondfile{'; + IF parts == 'band' || parts == 'full'; + IF scores.full; + GET "${directory}/${scores.full}"; + ELSIF scores.leadsheet; GET "${directory}/${scores.leadsheet}"; ELSE; GET "${directory}/${scores.SATB}"; @@ -28,11 +33,25 @@ ELSE; GET "${directory}/${scores.leadsheet}"; END; + ELSE; + IF scores.${parts}; + GET "${directory}/${scores.$parts}"; + ELSE; + IF scores.full; + GET "${directory}/${scores.full}"; + ELSIF scores.leadsheet; + GET "${directory}/${scores.leadsheet}"; + ELSE; + GET "${directory}/${scores.SATB}"; + END; + END; END; + GET "}\n"; ELSE; - GET "${directory}/${scores.congregation}"; + IF scores.congregation; + GET "\\lilypondfile{${directory}/${scores.congregation}}\n"; + END; END; - GET "}\n"; END; ELSIF lyrics; GET lyrics; diff --git a/templates/songsheet.tt b/templates/songsheet.tt index 55f364d..c128adb 100644 --- a/templates/songsheet.tt +++ b/templates/songsheet.tt @@ -10,15 +10,16 @@ [% USE song_choices = datafile("${config_dir}/song_choices.csv", delim= '|') %] -[% FOREACH song = song_choices %] -[% template = song.template == '' ? "song_template.tt" : song.template -%] -[% INCLUDE "$template" - purpose = song.purpose - content = song.content - variables = song.variables ? "${library_dir}/${song.variables}/assignments.tt" : '' - directory = song.variables ? "${library_dir}/${song.variables}" : '' -%] -[% END %] +[% +FOREACH song = song_choices; + template = song.template == '' ? "song_template.tt" : song.template; + INCLUDE "$template" + purpose = song.purpose + assignments = song.assignments_directory ? "${library_dir}/${song.assignments_directory}/assignments.tt" : '' + directory = song.assignments_directory ? "${library_dir}/${song.assignments_directory}" : '' + overrides = song.overrides; +END; +-%] [% INCLUDE footer.tt %]