@c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
@c This file is part of lilypond-program.tely
@ignore
    Translation of GIT committish: c1be53409464d49dffa013f3dfeb9eb4910edd92

    When revising a translation, copy the HEAD committish of the
    version that you are working on.  See TRANSLATION for details.
@end ignore

@c Translators: Reinhold Kainhofer

@node Converting from other formats
@chapter Converting from other formats

LilyPond kann auch Musik aus diversen anderen Formaten importieren.
Dieses Kapitel beschreibt die dazu mit LilyPond mitgelieferten
Hilfsprogramme. Daneben existieren natürlich auch noch weitere
Programme, die Dateien für LilyPond erstellen können, wie etwa
graphische Sequenzierprogramme und XML-Konverter. Näheres dazu
findet sich auf der @uref{http://@/lilypond@/.org,Homepage} von LilyPond.

Die im Folgenden beschriebenen Programme sind eigenständige Hilfsprogramme
und werden üblicherweise von der Kommandozeile aufgerufen. Siehe
@ref{Command-line usage} für weitere Informationen.


@knownissues
Leider haben wir nicht ausreichend viele Entwickler, um all die folgenden
Hilfsprogramme ständig zu warten. Wir stellen den aktuellen Stand zur
Verfügung, können aber leider Fehlerberichte nur selten bearbeiten.
Selbstverständlich sind Patches von Ihnen sehr willkommen!


@menu
* Invoking midi2ly::          Import von MIDI
* Invoking musicxml2ly::      Import von MusicXML
* Invoking abc2ly::           Import von ABC
* Invoking etf2ly::           Import von (alten) Finale-Dateien
* Generating LilyPond files:: Grafische Benutzeroberflächen,
Musikübersetzer und Programme zur algorithmischen Komposition
@end menu

@node Invoking midi2ly
@section Invoking @command{midi2ly}

@cindex MIDI

@command{midi2ly} übersetzt eine Typ@tie{}1 MIDI-Datei in eine
Eingabedatei für LilyPond.

MIDI (Music Instrument Digital Interface) ist ein internationaler
Standard für digitale Instrumente: Es spezifiziert die Verkabelung,
ein serielles Protokoll und ein Dateiformat. Das MIDI-Dateiformat
ist der de-facto Standard um Musik von vielen Programmen zu exportieren.
Allerdings fehlen in den MIDI-Dateien viele Ausdrucks- und
Artikulationszeichen. Dennoch kann MIDI vielfach nützlich sein,
um Musik von einem Programm zu importieren, für das kein spezielles
Hilfsprogramm den direkten Import nach LilyPond unterstützt.

@command{midi2ly} konvertiert die MIDI-Spuren nach @rinternals{Staff} und
MIDI-Kanäle in @rinternals{Voice} Kontexte. Tonhöhen werden relativ
angegeben, Tondauern nur wenn nötig.

MIDI-Dateien können auch direkt von einem digitalen Keyboard
aufgenommen und dann in eine @file{.ly}-Datei konvertiert werden.
Allerdings sind Musikinterpretationen von Menschen (aus gutem Grund!) 
rhythmisch nicht exakt genug um die Konvertierung von MIDI nach LY 
trivial zu gestalten. Wenn @command{midi2ly} mit Quantisierung
(@code{-s} und @code{-d} Kommandozeilenoptionen) aufgerufen wird, 
versucht es diese Unschärfen im Zeitablauf zu korrigieren, ist 
allerdings nicht sonderlich gut darin. Daher können wir diese Technik 
leider nicht für die Konvertierung von MIDI-Aufnahmen empfehlen.


@command{midi2ly} wird von der Kommandozeile folgendermaßen aufgerufen:
@example
midi2ly [@var{Optionen}]@dots{} @var{MIDI-Datei}
@end example

Unter @q{Kommandozeile} verstehen wir dabei die Kommandozeile des
jeweiligen Betriebssystems. Für nähere Informationen hierzu siehe 
@ref{Converting from other formats}.

Die folgenden Kommandozeilenoptionen werden von @command{midi2ly} 
unterstützt:

@table @code
@item -a, --absolute-pitches
Gibt absolute Tonhöhen aus.

@item -d, --duration-quant=@var{LÄNGE}
Quantisiert Tondauern zu Vielfachen von @var{LÄNGE}.

@item -e, --explicit-durations
Gibt alle Tondauern explizit an.

@item -h,--help
Zeigt eine Zusammenfassung der Programmbenutzung und der Optionen.

@item -k, --key=@var{acc}[:@var{Moll}]
Setzt die Standard-Tonart. @math{@var{acc} > 0} gibt die Anzahl der
Kreuze an, @math{@var{acc} < 0} gibt die Anzahl der Bs der Tonart an.
Eine Moll-Tonart wird durch @code{:1} angegeben.

@item -o, --output=@var{Datei}
Die Ausgabe wird in die Datei @var{Datei}@file{.ly} geschrieben.

@item -s, --start-quant=@var{LÄNGE}
Quantisiert den Beginn der Noten zu Vielfachen von @var{LÄNGE}.

@item -t, --allow-tuplet=@var{DUR}*@var{NUM}/@var{DEN}
Erlaubt Tuplet-Dauern der Form @var{DUR}*@var{NUM}/@var{DEN}.

@item -V, --verbose
Gibt ausführliche informative Meldungen während der Konvertierung aus.

@item -v, --version
Gibt die Versionsnummer aus.

@item -w, --warranty
Zeigt die Lizenzbedingungen und Urheberrechtshinweise.

@item -x, --text-lyrics
Interpretiert alle Texte als Liedtexte.
@end table


@knownissues

Überlappende Noten in einem Arpeggio werden nicht korrekt dargestellt.
Nur die erste Note wird eingelesen und konvertiert, die restlichen 
werden ignoriert. Als Abhilfe können Sie alle Noten auf dieselbe
Tonlänge setzen und Phrasierungszeichen oder Pedalindikatoren 
hinzufügen.


@node Invoking musicxml2ly
@section Invoking @code{musicxml2ly}

@cindex MusicXML

@uref{http://@/www.@/musicxml@/.org/,MusicXML} ist ein XML-Dialekt
zur Darstellung von Musiknotation.

@command{musicxml2ly} wandelt eine MusicXML-Datei nach LilyPond um,
wobei sowohl die Noten, Artikulationszeichen, Struktur der Partitur, 
Liedtexte etc. einer MusicXML-Datei (im @q{part-wise}-Format) in eine
.ly-Datei um.

@command{musicxml2ly} wird von der Kommandozeile folgendermaßen aufgerufen:
@example
musicxml2ly [@var{Optionen}]@dots{} @var{XML-Datei}
@end example

Unter @q{Kommandozeile} verstehen wir dabei die Kommandozeile des
jeweiligen Betriebssystems. Für nähere Informationen hierzu siehe 
@ref{Converting from other formats}.

Wenn als Dateiname @file{-} angegeben wird, liest @command{musicxml2ly}
Daten direkt von der Kommandozeile ein.

Die folgenden Kommandozeilenoptionen werden von @command{musicxml2ly}
unterstützt:

@table @code
@item -a, --absolute
Konvertiert in absolute Tonhöhen.

@item -h,--help
Zeigt eine Zusammenfassung der Programmbenutzung und der Optionen.

@item -l, --language=LANG
Inkludiert die Sprachdatei @var{LANG}@file{.ly} in der Ausgabe. Wird z.B.
'deutsch' angegeben, wird @file{deutsch.ly} in die .ly-Datei eingebunden
und deutsche Notenbezeichnungen benutzt.

@item --lxml
Benutzt das lxml.etree Python-Paket für die Verarbeitung von XML (benötigt weniger Speicher und Rechenleistung)

@item --nd --no-articulation-directions
Konvertiert keine Richtungsangaben (@code{^}, @code{_} oder @code{-})
von Artikulations- und Lautstärkebezeichnungen.

@item --no-beaming
Konvertiert keine Informationen über die Balkensetzung aus der 
MusicXML-Datei. Stattdessen wird dies LilyPond überlassen.

@item -o,--output=@var{Dateiname}
Die Ausgabe wird in die Datei @var{Dateiname}@file{.ly} geschrieben. Wird 
als @var{Dateiname} nur @file{-} angegeben, wird das Ergebnis der Konvertierung
an der Kommandozeile ausgegeben. Wird diese Option nicht angegeben, so
erfolgt die Ausgabe in die Datei @var{XML-Datei}@file{.ly}.

@item -r,--relative
Konvertiert in relative Tonhöhen. (Standardeinstellung)

@item -v, --verbose
Gibt ausführliche informative Meldungen während der Konvertierung aus.

@item --version
Gibt die Versionsnummer aus.

@item  -z,--compressed
Die Eingabedatei wird als komprimierte MusicXML-Datei eingelesen.
Dies ist die Standardeinstellung für Dateien mit der Erweiterung
@file{.mxl}.
@end table


@node Invoking abc2ly
@section Invoking @code{abc2ly}

@cindex ABC

ABC ist ein relativ einfaches ASCII-basierendes Musikformat und ist 
dokumentiert auf der ABC-Homepage:

@quotation
@uref{http://@/www@/.walshaw@/.plus@/.com/@/abc/@/learn@/.html}.
@end quotation

@command{abc2ly} konvertiert ABC-Dateien nach LilyPond und wird 
von der Kommandozeile folgendermaßen aufgerufen:

@example
abc2ly [@var{Optionen}]@dots{} @var{ABC-Datei}
@end example

Unter @q{Kommandozeile} verstehen wir dabei die Kommandozeile des
jeweiligen Betriebssystems. Für nähere Informationen hierzu siehe 
@ref{Converting from other formats}.

Die folgenden Kommandozeilenoptionen werden von @command{abc2ly}
unterstützt:

@table @code
@item -b,--beams=None
Die Balkensetzung aus der ABC-Datei erhalten.
@item -h,--help
Zeigt eine Zusammenfassung der Programmbenutzung und der Optionen.
@item -o,--output=@var{Dateiname}
Die Ausgabe wird in die Datei @var{Dateiname}@file{.ly} geschrieben.
@item -s,--strict
Strenge Auslegung einer erfolgreichen Konvertierung.
@item -v,--version
Gibt die Versionsnummer aus.
@end table

Es existiert außerdem die Möglichkeit, LilyPond-Befehle für die 
Konvertierung mit @command{abc2ly} gleich in der ABC-Datei anzugeben.
Wenn sich etwa in der ABC-Datei das Kommentar 

@example
%%LY voices \set autoBeaming = ##f
@end example

@noindent 
befindet, so wird der Text nach dem Schlüsselwort @q{voices} direkt
in die aktuelle Stimme in der LilyPond-Datei eingefügt.

Ebenso bewirkt

@example
%%LY slyrics more words
@end example

@noindent
dass alles nach dem @q{slyrics} Schlüsselwort an der aktuellen Stelle 
im Liedtext eingefügt wird.


@knownissues

Der ABC-Standard ist eigentlich kein wirklich vollständiger Standard. 
Für komplexere Notation wie etwa Polyphonie existieren verschiedene
Konventionen.

Mehrere Lieder in einer Datei können nicht konvertiert werden.

ABC synchronisiert den Liedtext am Anfang jeder Zeile mit den Noten, 
@command{abc2ly} macht dies nicht.

@command{abc2ly} ignoriert die Balkensetzung in der ABC-Datei.


@node Invoking etf2ly
@section Invoking @command{etf2ly}

@cindex ETF
@cindex enigma
@cindex Finale
@cindex Coda Technology

ETF (Enigma Transport Format) ist ein Dateiformat, das Coda 
Music Technology in älteren Versionen des Programms Finale benutzt hat.

@command{etf2ly} konvertiert Teile einer ETF-Datei nach LilyPond
und wird von der Kommandozeile folgendermaßen aufgerufen:

@example
etf2ly [@var{Optionen}]@dots{} @var{ETF-Datei}
@end example

Unter @q{Kommandozeile} verstehen wir dabei die Kommandozeile des
jeweiligen Betriebssystems. Für nähere Informationen hierzu siehe 
@ref{Converting from other formats}.

Die folgenden Kommandozeilenoptionen werden von @command{etf2ly}
unterstützt:

@table @code
@item -h,--help
Zeigt eine Zusammenfassung der Programmbenutzung und der Optionen.
@item -o,--output=@var{Dateiname}
Die Ausgabe wird in die Datei @var{Dateiname}@file{.ly} geschrieben.
@item --version
Gibt die Versionsnummer aus.
@end table


@knownissues

Die Liste der Artikulationszeichen is unvollständig. Leere Takte
verwirren @command{etf2ly}. Mehrfache Vorschlagnoten werden falsch
beendet.


@node Generating LilyPond files
@section Generating LilyPond files

@cindex Externe Programme, LilyPond-Dateien erzeugen

LilyPond selbst wird nur mit den oben genannten Konvertierprogrammen
ausgeliefert und unterstützt keine weiteren Formate. Es existieren
allerdings externe Hilfsprogramme, die auch LilyPond-Dateien erzeugen
können.
Diese umfassen unter anderem:

@itemize
@item
@uref{http://@/denemo@/.sourceforge@/.net/,Denemo}, ein grafisches 
Programm zum Musiksatz.
@item
@uref{http://www@/.volny@/.cz/smilauer/rumor/rumor@/.html,Rumor}, ein 
MIDI-nach-LilyPond Konverter, der monophone MIDI-Eigaben in Echtzeit
konvertiert.
@item
@uref{http://nicolas@/.sceaux@/.free@/.fr/lilypond/lyqi@/.html,lyqi}, ein
Emacs-Modus.
@item
@uref{http://@/www@/.nongnu@/.org/@/xml2ly/,xml2ly}, ein Konverter für
@uref{http://@/www@/.musicxml@/.com/xml@/.html,MusicXML}, der auf 
XML-Transformationen mittels XSLT basiert.
@item
@uref{http://@/noteedit@/.berlios@/.de,NoteEdit}, ein grafisches 
Programm zum Notensatz, das auch 
@uref{http://@/www@/.musicxml@/.com/xml@/.html,MusicXML} importieren kann.
@item
@uref{http://@/www@/.rosegardenmusic@/.com,Rosegarden},
das MIDI importieren kann.
@item
@uref{http://@/common-lisp@/.net/project/fomus/,FOMUS},
eine LISP-Bibliothek, um Musiknotation zu erzeugen.
@item
@uref{http://vsr.informatik.tu-chemnitz.de/staff/jan/nted/nted.xhtml},
ein Notensatzprogramm mit experimentellem Export nach LilyPond.
@item
@uref{http://www.tuxguitar.com.ar/,TuxGuitar}, ein Programm zur Erzeugung von 
Gitarren-Tabulaturen, unterstützt den Export nach LilyPond.
@item
@uref{http://musescore.org/,MuseScore} unterstützt ebenfalls den 
Export nach LilyPond.
@end itemize

