Initial implementation of songbook toolset

Kotlin/JVM multi-module project for generating a scout songbook PDF
from ChordPro-format text files. Includes ChordPro parser, layout engine
with greedy spread packing for double-page songs, OpenPDF renderer,
CLI (Clikt), Compose Desktop GUI, and 5 sample songs.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
shahondin1624
2026-03-17 08:35:42 +01:00
commit e386501b57
56 changed files with 5152 additions and 0 deletions

View File

@@ -0,0 +1,27 @@
{title: Abend wird es wieder}
{lyricist: Christian Gottlob Barth, 1836}
{composer: Volksweise}
{key: C}
{tags: Abendlied}
{ref: pfadfinderliederbuch 12}
{start_of_verse: Strophe 1}
[C]Abend wird es [G]wieder,
[G]über Wald und [C]Feld
säuselt [F]Frieden [C]nieder,
und es [G]ruht die [C]Welt.
{end_of_verse}
{start_of_verse: Strophe 2}
[C]Nur der Bach er[G]gießet
[G]sich am Felsen [C]dort,
und er [F]braust und [C]fließet
immer, [G]immer [C]fort.
{end_of_verse}
{start_of_verse: Strophe 3}
[C]Und kein Abend [G]bringet
[G]Frieden ihm und [C]Ruh,
keine [F]Glocke [C]klinget
ihm ein [G]Rastlied [C]zu.
{end_of_verse}

View File

@@ -0,0 +1,26 @@
{title: Auf, auf zum fröhlichen Jagen}
{lyricist: Traditionell, 18. Jahrhundert}
{composer: Volksweise}
{key: F}
{tags: Volkslied, Jagd}
{start_of_verse: Strophe 1}
[F]Auf, auf zum fröhlichen [C]Jagen,
auf [C]in die grüne [F]Heid'!
Es [F]gibt nichts Schönres [Bb]auf Erden,
als [C]jetzt zur Herbstes[F]zeit.
{end_of_verse}
{start_of_chorus}
Halli, hallo, halli, hallo,
auf [C]in die grüne [F]Heid'!
{end_of_chorus}
{start_of_verse: Strophe 2}
[F]Der Hirsch, der springt im [C]Walde,
das [C]Reh steht auf der [F]Flur,
die [F]Vöglein singen [Bb]alle
zur [C]schönen Jägerei[F]natur.
{end_of_verse}
{chorus}

View File

@@ -0,0 +1,42 @@
{title: Die Gedanken sind frei}
{alias: Gedankenfreiheit}
{lyricist: Deutsches Volkslied}
{composer: Deutsches Volkslied, ca. 1810}
{key: G}
{tags: Volkslied, Freiheit}
{note: Eines der bekanntesten deutschen Volkslieder. Text erstmals 1780.}
{ref: mundorgel 42}
{ref: pfadfinderliederbuch 118}
{start_of_verse: Strophe 1}
Die Ge[G]danken sind [D]frei,
wer [D]kann sie er[G]raten?
Sie [G]fliehen vor[C]bei
wie [D]nächtliche [G]Schatten.
Kein [C]Mensch kann sie [G]wissen,
kein [Am]Jäger er[D]schießen.
Es [G]bleibet da[C]bei:
Die Ge[D]danken sind [G]frei!
{end_of_verse}
{start_of_verse: Strophe 2}
Ich [G]denke, was ich [D]will
und [D]was mich be[G]glücket,
doch [G]alles in der [C]Still',
und [D]wie es sich [G]schicket.
Mein [C]Wunsch und Be[G]gehren
kann [Am]niemand ver[D]wehren,
es [G]bleibet da[C]bei:
Die Ge[D]danken sind [G]frei!
{end_of_verse}
{start_of_verse: Strophe 3}
Und [G]sperrt man mich [D]ein
im [D]finsteren [G]Kerker,
das [G]alles sind rein [C]
ver[D]gebliche [G]Werke.
Denn [C]meine Ge[G]danken
zer[Am]reißen die [D]Schranken
und [G]Mauern ent[C]zwei:
Die Ge[D]danken sind [G]frei!
{end_of_verse}

View File

@@ -0,0 +1,18 @@
{title: Hejo, spann den Wagen an}
{lyricist: Traditionell}
{composer: Traditionell}
{key: Am}
{tags: Kanon, Fahrt}
{ref: mundorgel 15}
{start_of_verse: Kanon}
[Am]Hejo, spann den Wagen an,
denn der [G]Wind treibt [Am]Regen übers Land.
[Am]Hol die goldnen Garben rein,
denn der [G]Wind treibt [Am]Regen übers Land.
{end_of_verse}
{start_of_verse: 2. Stimme}
[Am]Hejo, spann den Wagen an,
denn der [G]Wind treibt [Am]Regen übers Land.
{end_of_verse}

View File

@@ -0,0 +1,33 @@
{title: Kein schöner Land}
{alias: Kein schöner Land in dieser Zeit}
{lyricist: Anton Wilhelm von Zuccalmaglio}
{composer: Volksweise, 1840}
{key: D}
{tags: Volkslied, Abendlied}
{note: Veröffentlicht 1840 in "Deutsche Volkslieder mit ihren Original-Weisen".}
{ref: mundorgel 88}
{ref: pfadfinderliederbuch 65}
{start_of_verse: Strophe 1}
Kein [D]schöner Land in [A]dieser Zeit,
als [A]hier das unsre [D]weit und breit,
wo [D]wir uns [G]finden
wohl [D]unter [A]Linden
zur [D]Abend[A]zeit.
{end_of_verse}
{start_of_verse: Strophe 2}
Da [D]haben wir so [A]manche Stund'
ge[A]sessen da in [D]froher Rund'
und [D]taten [G]singen,
die [D]Lieder [A]klingen
im [D]Eichen[A]grund.
{end_of_verse}
{start_of_verse: Strophe 3}
Dass [D]wir uns hier in [A]diesem Tal
noch [A]treffen so viel [D]hundertmal,
Gott [D]mag es [G]schenken,
Gott [D]mag es [A]lenken,
er [D]hat die [A]Gnad'.
{end_of_verse}