LilyPond Benutzerhandbuch: 3.5.1 MIDI-Dateien erstellen

### 3.5.1 MIDI-Dateien erstellen

Um eine MIDI-Datei aus einer LilyPond-Quelldatei zu erstellen, muss eine `\midi`-Umgebung zu der `\score`-Umgebung hinzugefügt werden, etwa so:

>     \score {
>       ...Noten...
>       \midi { }
>     }

Wenn in einer `\score`-Umgebung nur eine `\midi`-Umgebung, aber keine `\layout`-Umgebung vorkommt, wird nur MIDI produziert. Wenn auch die Notation gewünscht ist, muss zusätzlich die `\layout`-Umgebung vorhanden sein:

>     \score {
>       ...music...
>       \midi { }
>       \layout { }
>     }

Tonhöhen, Rhythmen, Überbindungen, Dynamik und Tempoänderungen werden korrekt in das MIDI-Format übersetzt. Dynamikzeichen, Crescendo und Decrescendo werden in den MIDI-Lautstärkekanal übertragen. Dynamikzeichen werden in einen bestimmten Lautstärkenwert übersetzt, Crescendo und Decrescendo erreichen einen Übergang zwischen Lautstärkewerten. Die Wirkung von Dynamikzeichen kann auch aus der MIDI-Datei entfernt werden. Siehe hierzu Der MIDI-Block.

Das Anfangstempo und spätere Tempoänderungen können mit dem `\tempo`-Befehl innerhalb der Notation notiert werden. Er bewirkt Tempoänderungen auch in der MIDI-Datei. Der Befehl setzt gleichzeitig auch eine Tempobezeichnung in die Noten, welches aber auch unterdrückt werden kann, siehe Metronomangabe. Eine andere Möglichkeit, ein eigenes MIDI-Tempo anzugeben, wird weiter unten gezeigt, siehe Der MIDI-Block.

Aufgrund einiger Einschränkungen auf Windows ist auf Windows-Systemen die Standarddateierweiterung von MIDI-Dateien `.mid`. Andere Betriebssysteme verwenden weiterhin `.midi`. Wenn eine andere Endung erwünscht ist, kann man die folgende Zeile auf oberster Ebene der Quelldatei, vor Beginn eines `\book`, `\bookpart` oder `\score`-Blocks einfügen:

>     #(ly:set-option 'midi-extension "midi")

Diese Codezeile setzt die Dateiendung auf `.midi`.

Als Alternative kann man diese Option auch als Kommandozeilenparameter übergeben:

>     lilypond … -dmidi-extension=midi lilyDatei.ly

#### Instrumentenbezeichnungen

Das MIDI-Instrument, mit dem ein bestimmtes System wiedergegeben werden soll, wird durch die `Staff.midiInstrument`-Eigenschaft bestimmt, die auf eine Instrumentenbezeichnung gesetzt werden muss. Die Bezeichnungen sind aufgelistet in MIDI-Instrumente und müssen in der dort definierten Schreibweise notiert werden.

>     \new Staff {
>       \set Staff.midiInstrument = #"glockenspiel"
>       ...Noten...
>     }

>     \new Staff \with {midiInstrument = #"cello"} {
>       ...Noten...
>     }

Wenn die Schreibweise nicht genau einem definierten Instrument aus der Liste entspricht, wird ein Piano-Klang benutzt (`"acoustic grand"`).

#### Ausgewählte Schnipsel

Changing MIDI output to one channel per voice

When outputting MIDI, the default behavior is for each staff to represent one MIDI channel, with all the voices on a staff amalgamated. This minimizes the risk of running out of MIDI channels, since there are only 16 available per track.

However, by moving the `Staff_performer` to the `Voice` context, each voice on a staff can have its own MIDI channel, as is demonstrated by the following example: despite being on the same staff, two MIDI channels are created, each with a different `midiInstrument`.

>     \score {
>       \new Staff <<
>         \new Voice \relative c''' {
>           \set midiInstrument = #"flute"
>           \voiceOne
>           \key g \major
>           \time 2/2
>           r2 g-"Flute" ~
>           g fis ~
>           fis4 g8 fis e2 ~
>           e4 d8 cis d2
>         }
>         \new Voice \relative c'' {
>           \set midiInstrument = #"clarinet"
>           \voiceTwo
>           b1-"Clarinet"
>           a2. b8 a
>           g2. fis8 e
>           fis2 r
>         }
>       >>
>       \layout { }
>       \midi {
>         \context {
>           \Staff
>           \remove "Staff_performer"
>         }
>         \context {
>           \Voice
>           \consists "Staff_performer"
>         }
>         \context {
>           \Score
>           tempoWholesPerMinute = #(ly:make-moment 72 2)
>         }
>       }
>     }

#### Bekannte Probleme und Warnungen

Veränderungen der MIDI-Lautstärke sind nur effektiv, wenn sie zu Beginn einer Note angefordert werden, sodass die Lautstärke während einer Notendauer nicht geändert werden kann.

Nicht alle MIDI-Spieler können Tempoänderungen richtig wiedergeben. Spieler, die hierzu in der Lage sind, sind unter Anderen MS Windows Media Player und timidity.

Andere Sprachen: English, español, français, 日本語.

#### LilyPond – Notationsreferenz