- Sat 28 May 2016
- Simon Dreher
- Linux
- Tags: linux, music
Letztens hatte ich den Fall, dass ich ein paar Noten zusammenschreiben wollte, um bei den Liedern nicht zwischen den Strophen die Bücher wechseln zu müssen. Ich hatte schon gehört, dass man mit lilypond Notenblätter erstellen kann und der Ansatz, eine Textdatei zu erstellen und daraus die Notenblätter zu erstellen, ähnlich wie bei LaTeX, gefällt mir. Da lilypond auch midi-Dateien erstellen kann, die man mit einem Mediaplayer abspielen kann, wäre zumindest für mich ein Ersatz für professionelle Notensatzprogramme wie finale oder Sibelius vorhanden, wenn ich Noten eingeben, probehören und dann als PDF ausgeben könnte. Zumindest den Notensatz von finale schlägt lilypond schonmal um Längen...
Eingabe
Noten werden so eingegeben, dass zuerst der Notenname (klein geschrieben) und dahinter die Länge der Note eingegeben wird, zum Beispiel g4 wäre ein Viertel g. Dabei wird immer die Tonhöhe gewählt, die am nächsten zum vorherigen Ton ist. Möchte man also größere Sprünge machen muss man mit , oder ' eine Oktave nach unten oder oben verschieben, z.B. mit a,2. Für deutsche Benutzer ist noch wichtig zu wissen, dass ein h mit dem Buchstaben b eingegeben wird und der Ton b mit bes. Ein -es und -is funktioniert auch bei allen anderen Tönen. Einen Bindebogen erstellt man mit Klammern.
g4 a4( b4 c4)
Obiges Beispiel erstellt einen Bogen vom a bis zum c. Ein Haltebogen wird erstellt, indem an die zu haltende Note ein ~ angehängt wird. Auch auf der lilypond-Webseite gibt es hierzu eine Einführung.
Mit diesen Grundkenntissen lassen sich einfache Noten eingeben, alle weiteren Funktionen finden sich in der lilypond-Hilfe. Meine größte Schwierigkeit am Anfang war herauszufinden, welchen Text ich wo platzieren sollte. Darum hier eine Vorlage, die sich für mich bewährt hat:
\header {
title = "Titel"
subtitle = "Untertitel"
composer = "Komponist"
% Hinweis auf lilypond auf der letzten Seite entfernen
tagline = ##f
}
\paper {
indent = 0\cm
ragged-right = ##f
}
% Einstellungen, die für alle Stimmen gelten
global = {
% Tonart
\key c \major
% Takt
\time 4/4
\tempo 4 = 110
}
% Stimmen:
TrompeteA = \relative c'' {
\set Staff.midiInstrument = #"acoustic grand"
% Noten:
}
Tuba = \relative c {
\set Staff.midiInstrument = #"acoustic grand"
\clef bass
% Noten:
}
% Ausgabe
\score {
\new StaffGroup <<
\new Staff <<
\new Voice { \voiceOne \global \TrompeteA }
\new Voice { \voiceTwo \global \TrompeteA }
>>
\new Staff <<
\global \Tuba
>>
>>
\midi{}
\layout{}
}
Mit dieser Vorlage kann man zuerst einstellen, wie das Stück heißt, Takt, Tempo usw. Für jede Stimme wird so etwas wie für TrompeteA und Tuba angelegt. Dabei muss "TrompeteA" natürlich in etwas anderes geändert werden, wobei nur Klein- und Großbuchstaben verwendet werden dürfen. Damit wird eine Variable angelegt, die man später mit \TrompeteA oder \welchenStimmennamenSieAuchImmerNehmen verwendet wird. Eine Verwendung ist das selbe, wie wenn alles hinter dem Gleichheitszeichen kopiert und für \TrompeteA einsetzt wird.
Zum Inhalt der Variablen: \relative zeigt dabei an, wie hoch der erste Ton sein soll, mit \clef legt man den Notenschlüssel fest. Danach kommen die eigentlichen Noten der Stimme. Wenn ich ein Stück abschreibe setze ich immer | zwischen die Noten um Taktgrenzen zu markieren und fange auch eine neue Zeile an, wenn in der Vorlage eine neue Zeile beginnt. Das sind aber nur kosmetische Hilfen, um besser vergleichen zu können und hat keinen funktionalen Grund.
In dem score-Bereich werden dann die Stimmen zu Notensystemen (Staff) zusammengefügt und diese wiederum zu Gruppen. Mit \voiceOne werden alle Hälse der Stimme nach oben ausgerichtet, mit \voiceTwo nach unten. So passen zwei Stimmen in ein System, wie man es zum Beispiel von mehrstimmigen Klaviernoten oder von Posaunenchorsätzen kennt [1].
Mit dem midi wird angegeben, dass eine midi-Datei ausgegeben werden soll, um die Komposition probehören zu könne. Dafür kann auch in den Stimmen ein Instrument angeben werden, in der Zeile mit midiInstrument. Eine Liste der Instrumente gibt es hier. Durch die Angabe von midi muss mit \layout auch explizit angeben werden, dass ein pdf dazugeneriert werden soll, ansonsten erhalten wir nur die midi-Datei.
Wiederholungen sind dabei schwierig, denn sie werden für die midi-Datei standardmäßig nicht verdoppelt, sondern nur einmal gespielt. Dafür muss, wie in der Dokumentation \unfoldRepeats festgelegt werden, dass Wiederholungen ausgeschrieben werden.
midi
Um diese midi-Datei abspielen zu können müssen unter Linux zusätzliche Pakete installiert werden, ein Synthesizer und eine Soundfont. Dafür habe ich fluisynth mit der dazugehörigen Soundfont und einem Plugin für VLC installiert, damit es dort abgespielt werden kann.
yaourt fluidsynth soundfont-fluid vlc-plugin-fluidsynth
echo "soundfont /usr/share/soundfonts/FluidR3_GM2-2.sf2" >> /etc/timidity++/timidity.cfg
Das Plugin wird dann nach dieser Anleitung in VLC eingebunden.
Ausgabe
lilypond $dateiname.ly
Generiert eine midi-Datei und ein PDF. Die midi-Datei kann man probehören und so lange an der lilypond-Datei herumbasteln, bis es einem gefällt. Die Wiedergabe klingt oft nicht besonders realistisch, aber um abschätzen zu können, wie ein Stück klingt, reicht es aus.
Wenn man aus der midi-Datei noch eine realistischer klingende Audiodatei erhalten möchte muss man dafür eine Digital Audio Workstation (DAW), wie Rosegarden oder Ardour, verwenden. Damit fehlt mir aber die Erfahrung, vielleicht greife ich das Thema einmal in einem späteren Artikel auf.
Mehrere Stücke zusammenbringen
Um entweder mehrere Musikstücke auf ein Blatt zu drucken oder aus mehreren Liedern ein Buch zu erstellen gibt es zwei Wege:
- lilypond \book: Um das Score-Elemt in der Lilypond-Datei wird eine book-Umgebung gepackt [Doc]. Dabei können andere lilypond-Dateien mit include eingebunden werden. Nachteile dabei sind, dass nur ein Titel (nämlich der des letzten Stückes) gesetzt wird und Variablen wie das oben verwendete global zu Fehlern führen. Dies ist also dafür gedacht, für ein großes Werk (Oper o.ä.) mehrere Teilstücke zu kombinieren.
- Alternativ können lilypond-book und LaTeX verwendet werden. Eigentlich ist es dazu gedacht, in LaTeX-Dokumenten Notenbeispiele einbinden zu können.
Grundsätzlich muss nur ein LaTeX-Dokument angelegt werden und darin
\begin{lilypond}
\include "/dateipfad.ly"
\end{lilypond}
eingebaut werden. Mit diesem Code wird zwischen Notensystemen noch kein Platz gelassen, darum muss im LaTeX-Dokument noch ein Makro definiert werden, das den Abstand zwischen den Systemen festlegt:
\newcommand{\betweenLilyPondSystem}[1]{
\linebreak
% Abstand 0.7 bis 2cm, Standard 1cm
\vspace{ 1cm plus 1cm minus 0.3cm }
% Alternativ allen verfügbaren Platz auf die Zwischenräume aufteilen
%\vspace{ \stretch{1} }
}
Dann zu LaTeX transformieren mit
lilypond-book --output=out-dir --pdf Vorspiele.lytex
und im Ordner out-dir das LaTeX-Dokument kompilieren (ich verwende gerne latexrun).
Rechtliches
Noch ein bisschen was zur rechtlichen Seite (wozu hatte ich Jura im Ergänzungsfach...): Eine Eigenkomposition ist natürlich unproblematisch, doch oft genug möchte man vielleicht ein vorhandenes Musikstück anpassen, zum Beispiel um es zu vereinfachen oder an die Besetzung anzupassen. Dabei kommt das Urheberrecht ins Spiel, das in §23 UrhG genau den Bereich der Bearbeitung regelt. Damit ist nach Satz 2 zwar das Anfertigen einer Bearbeitung erlaubt, nach Satz 1 muss jedoch für eine Veröffentlichung und Verwertung die Genehmigung des Urhebers eingholt werden. Als Veröffentlichung zählt dabei auch eine Aufführung in der Öffentlichkeit. Rechtlich gesehen ist eine Aufführung öffentlich, sobald zumindest ein Gast keine persönliche Bindung zum Gastgeber hat. Also ist eine Aufführung praktisch immer öffentlich, wenn man es nicht gerade nur einem Freund vorspielt.
Zudem ist zu Beachten, dass nicht nur ein Komponist Urheberrechte an einem Musikstück hat. So haben bei einer Tonaufnahme die Musiker oder bei einem Notensatz der Setzer ein Leistungsschutzrecht. Es bietet sich darum an, Portale für freie Musik zu verwenden. Auf https://imslp.org und https://musopen.org gibt es jeweils Noten (und zum Teil auch Aufnahmen), bei denen die Lizenzsituation dabei steht und die als Grundlage für eigene Bearbeitungen dienen können.