[[Vorlage(Getestet, , precise)]] {{{#!vorlage Wissen [:Pakete_installieren: Installation von Paketen] [:Paketquellen_freischalten: Bearbeiten von Paketquellen] [:Terminal: Ein Terminal öffnen] [:Editor: Einen Editor öffnen] }}} [[Inhaltsverzeichnis(2)]] [[Bild(./lilypond.png, align=left)]] [http://www.lilypond.org LilyPond] {de} {en} 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 vor, folgendes Paket muss installiert [1] werden: {{{#!vorlage Paketinstallation lilypond, universe }}} == Manuelle Installation == Es kann auch die aktuelle Version von [http://lilypond.org/web/install/index.de.html Downloadseite] {de} 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 {{{#!vorlage 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 {{{#!vorlage Befehl sudo /usr/local/bin/uninstall-lilypond }}} wieder gelöscht werden. = Benutzung = Eine kurze Einleitung findet sich im sogenannten [http://lilypond.org/web/switch/howto.de.html Intensivkurs] {de} , 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 [http://lists.gnu.org/mailman/listinfo/lilypond-user Mailingliste] {en} suchen, oder sich auf der Liste anmelden und Fragen stellen. Eine Übersicht über die gebräuchlichsten Befehle zeigt das [http://lilypond.org/doc/v2.6/Documentation/user/lilypond/Cheat-sheet.html#Cheat-sheet LilyPond Cheat Sheet] {en} . {{{#!vorlage 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 {{{#!vorlage Befehl 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 {{{#!vorlage Befehl 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. 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: {{{#!code tex \header { title = "Alle meine Entchen" } \version "2.12.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: [[Bild(./entchen.png, 400, center)]] == Belle, qui tiens ma vie == Und noch ein komplexeres Beispiel mit Kommentaren, diese werden mit dem %-Zeichen eingeleitet. {{{#!code tex % Die Angabe der Versionsnummer stellt sicher, dass die Datei mit dem Programm convert-ly konvertiert werden kann. \version "2.12.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 beinhaltet 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 ergibt eine Midi-Datei und ein PDF, das folgendermaßen aussieht: [[Bild(./belle.png, 400, center)]] = 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 folgendem Beispiel wird die Datei mit dem LaTeX-Quelltext '''test.tex''' genannt und befindet sich im Verzeichnis '''/home/benutzer/lilypond'''. Das Beispiel soll zeigen 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. {{{#!code tex \documentclass[a4paper]{article} \usepackage[utf8]{inputenc} \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: {{{#!vorlage Befehl cd /home/benutzer/lilypond }}} * LilyPond: {{{#!vorlage Befehl lilypond-book --output=out/ test.tex }}} Damit wird ein Ordner erstellt, in dem alle nötigen Daten für die weitere Verarbeitung entstehen. 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: {{{#!vorlage Befehl cd out }}} * LaTeX: {{{#!vorlage Befehl latex test.tex }}} Es entsteht unter anderm ein DVI Dokument, '''test.dvi''' * Daraus wird zum Schluss ein [:PDF:] mit: {{{#!vorlage Befehl 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 dem `lilypond-book`-Befehl den zusätlichen Parameter `-pdf` hinzufügen. Insgesamt müssen folgende Befehle in dieser Reihenfolge ausgeführt werden: * In das Verzeichnis wechseln, in welchem sich das Textdokument befindet: {{{#!vorlage Befehl cd /home/benutzer/lilypond }}} * LilyPond: {{{#!vorlage Befehl lilypond-book --output=out/ --pdf test.tex }}} * In den neuen Order wechseln: {{{#!vorlage Befehl cd out }}} * Das Programm ``pdflatex`` ausführen: {{{#!vorlage Befehl pdflatex test.tex }}} Die fertige PDF-Datei befindet sich nun im Unterverzeichnis ``out``. === Möglichkeit 3 === Eine andere Möglichkeit mit höchster Flexibilität sind [:Makefile:Makefiles]. Einige kennen diese Datei von der Installation einiger Programme aus dem Quellcode. Im Grundverzeichnis wird die Datei '''Makefile''' mit folgendem Inhalt angelegt: {{{#!code make SUBDIRS = out FILE = weihnachtslieder.tex FILEPDF = $(addsuffix .pdf, $(basename $(FILE) .tex)) lilypond: $(FILE) for dir in $(SUBDIRS); do \ lilypond-book --output=$$dir/ --pdf $(FILE); \ done pdf: $(FILE) for dir in $(SUBDIRS); do \ cd $$dir; pdflatex $(FILE); pdflatex $(FILE); cd ..; mv $$dir/$(FILEPDF) .; \ done lilypond-pdf: $(FILE) for dir in $(SUBDIRS); do \ lilypond-book --output=$$dir/ --pdf $(FILE); \ cd $$dir; pdflatex $(FILE); pdflatex $(FILE); cd ..; mv $$dir/$(FILEPDF) .; done }}} Kurz zum Inhalt: Als SUBDIRS ist das gewünschte Unterverzeichnis (hier ``out``) und als FILE die Hauptdatei angegeben. Mit dem Befehl {{{#!vorlage Befehl make lilypond }}} werden die Dateien von LilyPond verarbeitet. Besonders interessant ist die Sache durch {{{#!vorlage Befehl make lilypond-pdf }}} da in einem ersten Schritt LilyPond die Dateien abarbeitet, gefolgt von 2x pdfLaTeX und anschließend einem Verschieben der generierten PDF ins Stammverzeichnis. Somit hat man die Zieldatei direkt vorliegen und muss nicht erst umständlich in ein Unterverzeichnis wechseln. == Das Endergebnis == [[Bild(./LaTeX_logo.png, align=right)]] Das Produkt kann sich sehen lassen und liefert ein Dokument in hervorragender Druckqualität. || [[Bild(./latexundlilypdf.png, 200, )]] || || ~-(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-eigenen Kopfdaten (eng. ''headers'') umgehen kann, müssen diese mit Hilfe des Pakets ``ifxetex`` in einen If-else-Block integriert werden. Im folgenden Beispiel nennen wir die Datei mit dem XeTeX-Quelltext '''test2.tex'''. Sie befindet sich im Verzeichnis '''/home/benutzer/lilypond-xetex'''. {{{#!code tex %!TEX TS-program = Lilypond-XeLaTeX \documentclass[a4paper]{article} \usepackage{ifxetex} \ifxetex \usepackage{xunicode} \usepackage{fontspec} \usepackage{xltxtra} \usepackage[ngerman]{babel} \setmainfont[Mapping=tex-text,Ligatures=Common,Numbers={OldStyle, Proportional}]{Linux Libertine O} \defaultfontfeatures{Scale=MatchLowercase} \else \usepackage[utf8]{inputenc} \fi \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 == 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: {{{#!vorlage Befehl cd /home/benutzer/lilypond-xetex }}} * LilyPond: {{{#!vorlage Befehl lilypond-book --output=out/ --pdf test2.tex }}} * In den neuen Order wechseln: {{{#!vorlage Befehl cd out }}} * Das Programm ``xelatex`` ausführen: {{{#!vorlage Befehl xelatex test2.tex }}} Die fertige PDF-Datei befindet sich nun im Unterverzeichnis ``out``. (Auf Grund des If-Else-Blocks (``ifxetex``) kann man das Dokument an Stelle von ``xelatex`` auch mit ``latex`` oder ``pdflatex`` ausführen. Dabei verzichtet man jedoch auf die Vorteile von XeTeX.) = Editoren = Ein speziell auf LilyPond zugeschnittener Texteditor ist [http://frescobaldi.org/ Frescobaldi] {en}. Er bietet u.a. eine integrierte PDF-Vorschau, die LilyPond-Dokumentation, einen eingebauten Midi-Player sowie das Einfügen einiger musikalischer Sonderzeichen per Mausklick. Es existieren auch einige graphische Notensatzprogramme, mit denen die Noten per Maus (oder Tastatur, in seltenen Fällen auch Mikrophon) eingegeben werden und welche das Dokument schließlich ins LilyPond-Format ``.ly`` exportieren können (um es danach im Editor weiter zu bearbeiten). Diese Programme unterstützen jedoch nur einen Bruchteil der Funktionen, die LilyPond bietet und sind deswegen nur bedingt zu empfehlen. * [:Noteedit:] – verwendet das Qt-Toolkit und ist in KDE eingebunden * [:NtEd:] - Weiterentwicklung von Noteedit vom selben Entwickler * [:Denemo:] – verwendet das GTK+-Toolkit, unterstützt nur sehr wenige Funktionen * [:Rosegarden:] – Audio- und MIDI-Sequenzer mit umfangreicher Notenschreibfunktion = Links = * [http://www.lilypond.org offizielle Homepage] {de} {en} * [http://lilypond.org/web/switch/howto Intensivkurs] {de} * [http://lilypond.org/doc/stable/Documentation/ Dokumentation der aktuellen stabilen Version von LilyPond] {de} {en} (Das [http://lilypond.org/learning.de.html Handbuch] ist für den Einstieg besonders zu empfehlen.) * [http://lists.gnu.org/mailman/listinfo/lilypond-user LilyPond Mailingliste] {en} * [http://www.mutopiaproject.org/ Viele freie LilyPond Beispieldateien] {en} # tag: Multimedia, Bildung, Notensatz