ubuntuusers.de

Du betrachtest eine alte Revision dieser Wikiseite.

LilyPond

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:


Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

./lilypond.png LilyPond ist ein freies Notensatz-Programm für Linux, FreeBSD, MacOS X und Windows. Anders als Noteedit oder Rosegarden ist LilyPond kein "What you see is what you get"-Programm - die Noten werden ähnlich wie bei LaTeX in einer Textdatei gespeichert, die dann von LilyPond zum Beispiel in das PDF-Format übersetzt wird. Auch eine MIDI-Datei kann erzeugt werden.

Installation

Ubuntu-Quellen

LilyPond liegt in den Ubuntu-Quellen und kann deshalb einfach über die Paketverwaltung installiert werden. Folgendes Paket muss installiert [1] werden:

  • lilypond (universe, [2])

Manuelle Installation

Es kann auch die aktuelle Version von Downloadseite 🇩🇪 heruntergeladen und installiert werden. Generell sollte den Paketen aus den Ubuntu-Quellen immer Vorzug gegeben werden. In besonderen Fällen jedoch kann eine aktuelle Version vorteilhaft sein, wenn man zum Beispiel verschiedene Ubuntu-Versionen und damit eigentlich auch LilyPond-Versionen nutzt oder bei Konvertierungsproblemen aus anderen Formaten und innerhalb von LilyPond.

Die Entwickler von LilyPond stellen ein Installationsprogramm bereit, da das Kompilieren, nach den Angaben der Entwickler, kompliziert sein soll. Hat man das Installationsprogramm heruntergeladen, so kann LilyPond im Terminal [3] mit dem Befehl

sudo sh lilypond-X.Y.Z.linux-x86.sh 

installiert werden. Hierbei bezeichnet X.Y.Z die entsprechende Versionsnummer.

Deinstallation

Das manuell installierte LilyPond kann mit dem Befehl

sudo /usr/local/bin/uninstall-lilypond 

wieder gelöscht werden.

Benutzung

Eine kurze Einleitung findet sich im sogenannten Intensivkurs 🇩🇪 , das Studium einer ausführlichen Anleitung ist aber für komplexere Beispiele zu empfehlen. Eine ausführliche Anleitung ist auf der offiziellen Homepage zu finden. Bietet diese nicht die gewünschten Informationen, so kann man in den Archiven der LilyPond Mailingliste 🇬🇧 suchen, oder sich auf der Liste anmelden und Fragen stellen. Eine Übersicht über die gebräuchlichsten Befehle zeigt das LilyPond Cheat Sheet 🇬🇧 .

Hinweis:

Die Syntax von LilyPond ist zwischen den Major Releases (also z.B. zwischen 2.6 und 2.8) kleineren oder größeren Änderungen unterworfen. Deswegen sollte man darauf achten, die zur verwendeten Version passende Dokumentation zu verwenden. Die Konvertierung von Quelldateien zwischen zwei Versionen übernimmt das Hilfsprogramm convert-ly, das mit LilyPond ausgeliefert wird.

LilyPond-Dateien sind einfache Text-Dateien, ähnlich wie beim Textsatzsystem LaTeX, mit der Endung .ly. Auch die Syntax hat eine gewisse Ähnlichkeit zu LaTeX. Die Eingabe der Noten erfolgt sehr intuitiv.

Hat man ein Stück gesetzt, so kann dies mit

lilypond DATEINAME 

in ein PDF-Dokument bzw. in eine MIDI-Datei exportiert werden. Auch andere Ausgabeformate wie PNG oder SVG sind möglich. Eine PNG-Datei wird zum Beispiel mit

lilypond --png DATEINAME 

erzeugt.

Kile-Profil einrichten

Da LilyPond keine graphische Benutzeroberfläche bereitstellt, muss man, ähnlich wie bei LaTeX, von Zeit zu Zeit ein PDF-Dokument erstellen, um eventuelle Fehler ausfindig zu machen. Möchte man dies nicht im Terminal machen, so kann man zum Beispiel in Kile ein Ausgabeprofil für LilyPond erstellen und sich die Arbeit etwas komfortabler gestalten. Unter Ubuntu Karmic ist bereits ein Lilypond Profil in Kile vorhanden.

Lädt man eine LilyPond-Datei, also eine Datei mit der Endung .ly, erkennt Kile automatisch den Typ und wählt den passenden Hervorhebungsmodus (Syntax Highlighting). Dieser Punkt ist im Menü unter "Extras → Hervorhebungen → Sonstige → LilyPond" zu finden.

Kile bietet zwar eine eingebettete Konsole, aber man kann sich auch einen eigenen Menüpunkt erstellen, so dass man ein LilyPond-Dokument wie jedes andere TeX-Dokument auch, per Knopfdruck kompilieren kann. Dazu erstellt man unter "Einstellungen → Kile einrichten → Werkzeuge → Erstellen" ein "Neues Werkzeug". Unter Befehl trägt man "lilypond" und unter Optionen "'%source'" oder für die Ausgabe als Bild die Option "--png '%source'" oder ein anderes gewünschtes Format ein. Im Reiter "Menü" lässt sich festlegen, wo der Menüpunkt unter "Erstellen" angelegt werden soll. Bei Bedarf kann man sich den Menüpunkt auch noch in eine der Werkzeugleisten legen.

Natürlich kann man auch mehrere Build- bzw. Quickbuild-Profile anlegen, am einfachsten orientiert man sich dafür an den vorhandenen Profilen.

Beispiele

Alle meine Entchen

Hier ein einfaches Beispiel:

\header {
  title = "Alle meine Entchen"
}
\version "2.6.3"
<<
\relative c'
{
\time 2/4
\key d \major
d8[ e fis g] a4 a b8[ b b b] a4 r b8[ b b b]
a4 r g8[ g g g] fis4 fis a8[ a a a] d4 r
}
\addlyrics { Al -- le mei -- ne Ent -- chen schwim -- men auf dem See,
schwim -- men auf dem See, Köpf -- chen un -- ters Was -- ser,
Schwänz -- chen in die Höh’ }
>>

Obiges Beispiel gibt folgendes Resultat:

./entchen.png

Belle, qui tiens ma vie

Und noch ein komplexeres Beispiel mit Kommentaren, diese werden mit dem %-Zeichen eingeleitet.

% Die Angabe der Versionsnummer stellt sicher, dass die Datei mit dem Programm convert-ly konvertiert werden kann.
\version "2.6.3"

% Um die Noten auf eine Seite einzupassen, kann die Größe der Systeme per Hand angepasst werden.
#(set-global-staff-size 20)

% Im sogenannten "header" kann man Überschriften u.Ä. setzen.
\header {
        title    = "Belle, qui tiens ma vie"
        composer = "Musik: Thoinot Arbeau (1520-1595)"
        arranger = "Aus \"Orchésgraphie\" (1589)"
        poet     = "Text: 16. Jh."
        tagline  = "- 1 -"
}

global = {
        \key f \major
        \time 2/2
}

% Die Noten können als Variablen abgespeichert werden, damit man im sogenannten "score" Block auf sie zurückgreifen kann.
% Somit können komplexere Dokumente gut strukturiert werden.
SopranNoten = \relative c'' {
                \repeat volta 2 { \partial 2 g2 g4 fis g a bes2 bes4 d c bes bes a bes2 } \break
                bes2 \repeat volta 2 { a4 a g g fis2 d e8( f) g4 g fis }
                \alternative { { g2 bes } { g } } \bar "|."
}
AltNoten = \relative c' {
                \repeat volta 2 { \partial 2 d2 d4 d d f f2 f4 f e f g f f2 }
                f2 \repeat volta 2 { f4 f d es d2 f c4 d d d }
                \alternative { { b2 d } { d } }
}
TenorNoten = \relative c' {
                \repeat volta 2{ \partial 2 bes2 bes4 a bes c d2 d4 bes g d' c c d2 }
                d \repeat volta 2 {c4 d bes c a2 bes g4 bes a a}
                \alternative { { g2 bes } { g } }
}
BassNoten = \relative c' {
                \repeat volta 2 { \partial 2 g2 g4 d g f bes,2 bes4 bes c d es f bes,2 }
                bes'2 \repeat volta 2 { f4 d g c, d2 bes c4 g d' d }
                \alternative { { g,2 g' } { g, } }
}
stropheEins = \lyricmode {
        \set stanza = "1. " Bel -- le, qui tiens ma vi -- e cap -- ti -- ve dans tes yeux,
        viens tôt me se -- cou -- rir, ou me __ fau -- dra mou -- rir, viens rir.
}
stropheEinsWiederholung = \lyricmode {
        qui m'as l'â -- me ra -- vi -- e d'un sou -- riz gra -- ci -- eux,
}
stropheZwei = \lyricmode {
        \set stanza = "2. " Pour -- quoi fuis -- tu, mi -- gnar -- de, si je suis près de toy,
        car tes per -- fec -- ti -- ons chan -- gent __ mes ac -- ti -- ons, car ons.
}
stropheZweiWiederholung = \lyricmode {
        quand tex yeux je re -- gar -- de je me perds de -- dans moy,
}
stropheDrei = \lyricmode {
        \set stanza = "3. " Ap -- pro -- che donc ma bel -- le, ap -- pro -- che toy mon bien,
        pour mon mal ap -- pai -- ser, don -- ne __ moy un bai -- ser. pour ser.
}
stropheDreiWiederholung = \lyricmode {
        ne me sous plus re -- bel -- le puis -- que mon coeur est tien,
}

% Im score-Block wird die Gestaltung der Seite festgesetzt.
\score {
        <<
                \new ChoirStaff <<
                        \new Staff <<
                                \new Voice  { \voiceOne << \global \SopranNoten >> }
                                \new Voice  { \voiceTwo << \global \AltNoten >> }
                                \addlyrics { \stropheEins }
                                \addlyrics { \stropheEinsWiederholung }
                                \addlyrics { \stropheZwei }
                                \addlyrics { \stropheZweiWiederholung }
                                \addlyrics { \stropheDrei }
                                \addlyrics { \stropheDreiWiederholung }
                        >>
                        \new Staff  <<
                                \new Voice  { \voiceOne << \global \clef bass  \TenorNoten >> }
                                \new Voice  { \voiceTwo << \global \clef bass  \BassNoten >> }
                                \addlyrics { \stropheEins }
                                \addlyrics { \stropheEinsWiederholung }
                        >>
                >>
        >>
}

% Das Stück beeinhaltet Wiederholungen, die von der Midi-Ausgabe nicht berücksichtigt werden.
% Um die Wiederholungen in der Midi-Datei auszuspielen, gibt es die Option "unfoldRepeats"
\score {
                \new ChoirStaff <<
                        \new Staff  <<
                                \new Voice  { \global \unfoldRepeats \SopranNoten }
                        >>
                        \new Staff  <<
                                \new Voice  { \global \unfoldRepeats \AltNoten }
                        >>
                        \new Staff  <<
                                \new Voice { \global \unfoldRepeats \TenorNoten }
                        >>
                        \new Staff  <<
                                \new Voice { \global \unfoldRepeats \BassNoten }
                        >>
                >>
   \midi {
     \context {
       \Score
       tempoWholesPerMinute = #(ly:make-moment 120 4)
       }
   }
}

Obiges Beispiel gibt folgendes Resultat:

./belle.png

Integration von LilyPond in LaTeX

Musiknoten und Textgestaltung können mit LaTeX miteinander verbunden werden.

Das Textdokument

Als erstes wird mit einem der LaTeX-Editoren [4] ein Textdokument erstellt und in einem beliebigen Verzeichnis gespeichert. In diesem Artikel wird das Beispieldokument test.tex genannt und befindet sich im Verzeichnis /home/benutzer/lilypond. Das folgende Beispiel zeigt, wie ein Textdokument aussehen kann, in welchem LilyPond Dokumente in LaTeX integriert sind. Es kann als Vorlage für eigene Versuche genutzt werden und ist bewusst einfach gehalten.

\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsfonts}
\usepackage{amsmath}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}

\pagestyle{empty}

\begin{document}


\begin{huge}
\textbf{Integration von LilyPond in $\LaTeX $}
\end{huge}\

Hier kann nun alles stehen, was $\LaTeX $ zu bieten hat: Anweisungen, Erklärungen, Bilder, usw.
Immer dann, wenn Musiknoten zum Einsatz kommen, wird LilyPond folgendermaßen eingebettet:\
\vspace*{1cm}

\begin{lilypond}
\header {
  title = "Dies ist ein phantasieloses Stück"
}

<<

\relative c'
{

\time 4/4
\key c \major
g'2 e g4 c g8 f e  d e4 f g a g8 f e d c2
}

>>
\end{lilypond}\
\vspace*{1cm}

Anschließend wird das $\LaTeX $ Dokument weiter gestaltet. Natürlich können weitere Musiknoten integriert werden.
In diesem Beispiel sind es reine Rhythmusnoten.\
\vspace*{1cm}

\begin{lilypond}
\header {
  title = "Dies ist irgendein Rhythmus"
}

<<

\new RhythmicStaff {
  \time 4/4
\override Staff.VerticalAxisGroup #'minimum-Y-extent = #'(-6 . 6)  %vergrössert den Abstand!
  c4 c8 c c2 | r4 g r2 | c4 c c r | r2 c | c8 c c c c2 | r c | c4 r c2 | c8 c c2 c4 | r r2 c4 |c c8 c c c c c | c2 r | r r4 c | r c8 c c4 r |
}


>>
\end{lilypond}\

Für weitere Möglichkeiten, betreffend Lilypond oder $\LaTeX $ siehe Doku.\
Viel Spass!\

Onkel Tom

\end{document}

Die Verarbeitung

Es gibt zwei möglichkeiten, um aus dem LaTeX-Quelltext ein fertiges PDF-Dokument zu erstellen.

Möglichkeit 1

Bei der ersten Möglichkeit sind insgesamt fünf Schritte notwendig, um aus dem einfachen Textdokument ein fertiges PDF herzustellen. Terminal [3]:

  • In das Verzeichnis wechseln, in welchem sich das Textdokument befindet:

cd /home/benutzer/lilypond 

  • LilyPond:

lilypond-book --output=out/ test.tex 

Damit wird ein Ordner erstellt, in dem alle nötigen Files entstehen für die weitere Verarbeitung. Die Noten selber sind als .eps Dateien abgespeichert. Diese könnten alternativ natürlich auch als Bildgrafik in ein LaTeX Dokument eingebaut werden. Für die weitere Verarbeitung mit LaTeX wird die neue Datei test.tex verwendet.

  • In den neuen Order wechseln:

cd out 

  • LaTeX:

latex test.tex 

Es entsteht unter anderm ein DVI Dokument, test.dvi

  • Daraus wird zum Schluss ein PDF mit:

dvipdf test.dvi 

Möglichkeit 2

Die zweite Möglichkeit besteht darin, das Programm pdflatex an Stelle von latex zu verwenden, um aus der LaTeX-Quelldatei ein fertiges Dokument zu erstellen. Im Gegensatz zu latex erstellt pdflatex nicht eine DVI-Datei, die danach in eine PDF-Datei umgewandelt werden muss, sondern erzeugt direkt eine PDF-Datei. Da man nun das Programm pdflatex verwendet, muss man jedoch den lilypond-book-Befehl leicht abändern. Insgesamt müssen folgende Befehle in dieser Reihenfolge ausgeführt werden:

  • In das Verzeichnis wechseln, in welchem sich das Textdokument befindet:

cd /home/benutzer/lilypond 

  • LilyPond:

lilypond-book --output=out/ --pdf test.tex 
  • In den neuen Order wechseln:

cd out 
  • Das Programm pdflatex ausführen:

pdflatex test.tex 

Die fertige PDF-Datei befindet sich nun im Unterverzeichnis out.

Das Endergebnis

./LaTeX_logo.png Das Produkt kann sich sehen lassen und liefert ein Dokument in hervorragender Druckqualität.

./latexundlilypdf.png
Fertiges PDF

Integration von LilyPond in XeTeX

Auch bei der Textgestaltung mit XeTeX, einer Alternative zu LaTeX, die Opentype-Schrftarten unterstützt, kann Lilypond in das betreffende Dokument eingebunden werden. Das Erstellen des Enddokumentes und somit der Befehlsaufruf im Terminal unterscheidet sich jedoch leicht zu der oben aufgeführten Variante mit LaTeX.

Das Textdokument

Weil lilypond-book nicht mit XeTeX-Quelldateien bzw. deren Kopfdaten (engl. headers) umgehen kann, muss man die Kopfdaten vom Rest der XeTeX-Quelldatei trennen. In diesem Beispiel befinden sich folgende Kopfdaten in der Datei headers.tex, die sich im Verzeichnis /home/benutzer/lilypond-xetex befindet:

%! TEX TS−program = xetex
%! TEX encoding = UTF-8 Unicode

\documentclass[a4paper]{article}
% \usepackage[utf8]{inputenc}                   % Für Xetex überflüssig, da UTF-8

\usepackage {xunicode}                          % für Xetex
\usepackage {fontspec}                          % für Xetex
\usepackage {xltxtra}                           % für Xetex
\usepackage {url}                               % für Xetex zum Umbrechen von langen URLs
\usepackage {ngerman}

\defaultfontfeatures {Scale=MatchLowercase}     % skaliert alle verw. Fonts auf eine x-Höhe (Harmonisierung)

\setmainfont[Mapping=tex-text]{Linux Libertine O}

\pagestyle{empty}

\input{document.tex}

Der Rest der XeTeX-Quelldatei befindet sich in der Datei document.tex, die sich im selben Verzeichnis wie die Datei headers.tex befinden soll:

\begin{document}


\begin{huge}
\textbf{Integration von LilyPond in $\LaTeX $}
\end{huge}\

Hier kann nun alles stehen, was $\LaTeX $ zu bieten hat: Anweisungen, Erklärungen, Bilder, usw.
Immer dann, wenn Musiknoten zum Einsatz kommen, wird LilyPond folgendermaßen eingebettet:\
\vspace*{1cm}

\begin{lilypond}
\header {
  title = "Dies ist ein phantasieloses Stück"
}

<<

\relative c'
{

\time 4/4
\key c \major
g'2 e g4 c g8 f e  d e4 f g a g8 f e d c2
}

>>
\end{lilypond}\
\vspace*{1cm}

Anschließend wird das $\LaTeX $ Dokument weiter gestaltet. Natürlich können weitere Musiknoten integriert werden.
In diesem Beispiel sind es reine Rhythmusnoten.\
\vspace*{1cm}

\begin{lilypond}
\header {
  title = "Dies ist irgendein Rhythmus"
}

<<

\new RhythmicStaff {
  \time 4/4
\override Staff.VerticalAxisGroup #'minimum-Y-extent = #'(-6 . 6)  %vergrössert den Abstand!
  c4 c8 c c2 | r4 g r2 | c4 c c r | r2 c | c8 c c c c2 | r c | c4 r c2 | c8 c c2 c4 | r r2 c4 |c c8 c c c c c | c2 r | r r4 c | r c8 c c4 r |
}


>>
\end{lilypond}\

Für weitere Möglichkeiten, betreffend Lilypond oder $\LaTeX $ siehe Doku.\
Viel Spass!\

Onkel Tom

\end{document}

Die Verarbeitung

Folgende Befehle sind nun notwendig, um aus den beiden Quelldateien ein fertiges PDF-Dokument zu erstellen:

  • In das Verzeichnis wechseln, in welchem sich das Textdokument befindet:

cd /home/benutzer/lilypond-xetex 

  • LilyPond:

lilypond-book --output=out/ --pdf headers.tex 
  • In den neuen Order wechseln:

cd out 
  • Das Programm xelatex ausführen:

xelatex headers.tex 

Die fertige PDF-Datei befindet sich nun im Unterverzeichnis out.


Diese Revision wurde am 26. Februar 2010 15:46 von Debjanux erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Multimedia, Bildung, Notensatz