3.5.1 Création de fichiers MIDI

LilyPond générera un fichier MIDI dès que vous ajouterez un bloc \midi au sein du bloc \score :

\score {
  …musique…
  \layout { }
  \midi { }
}

Lorsque le bloc \score contient uniquement un bloc \midi (autrement dit pas de bloc \layout), LilyPond produira uniquement la sortie MIDI – aucun support visuel ne sera généré.

\score {
  …musique…
  \midi { }
}

Hauteurs, durées, liaisons de prolongation, nuances et changements de tempo seront interprétés et traduits en événements MIDI. Les indications de nuances, crescendos et decrescendos sont traduits en niveau de volume ; les indications sous la forme d’une fraction déterminée du volume disponible, et crescendos et decrescendos sous la forme d’une progression linéaire entre les deux extrêmes.

Le tempo initial ainsi que ses changements sont normalement indiqués au fil de la notation à l’aide de la commande \tempo ; ils seront retranscrits dans le fichier MIDI.

Si le bloc \midi est la plupart du temps laissé vide, il peut contenir des aménagements pour certains contextes, la définition de contextes particuliers ou du code permettant de déterminer la valeur de certaines propriétés. L’exemple suivant détermine le tempo initial du fichier MIDI tout en se passant de son indication sur la partition imprimée :

\score {
  …music…
  \midi {
    \tempo 4 = 72
  }
}

Notez bien que \tempo est une commande chargée de définir des propriétés en cours d’interprétation de la musique. Intervenant dans le cadre de définitions d’une sortie, comme ici un bloc \midi, elle est réinterprétée comme une modification de contexte.

La syntaxe permettant de définir un contexte pour le \midi est en tout point identique à celle que vous utilisez dans le bloc \layout, à ceci près que le « graveur » est remplacé par un « interprète » (performer en anglais).

\score {
  …music…
  \midi {
    \context {
      \Voice
      \remove "Dynamic_performer"
    }
  }
}

supprimera les effets de nuance dans la sortie MIDI. Les modules chargés de traduire la musique en son s’appellent des « interprètes » – performers en anglais.

Morceaux choisis

Affectation d’un canal MIDI par voix

Lorsque LilyPond génère un fichier MIDI, chaque portée sera par défaut affectée à un canal, quel que soit le nombre de voix qu’elle contient. Ceci permet d’éviter de se retrouver à court de canaux, sachant qu’il n’y en a que seize de disponibles.

Le fait de déplacer le Staff_performer dans le contexte Voice permet d’affecter à chaque voix d’une même portée un canal MIDI spécifique. Dans l’exemple suivant, la même portée donnera lieu à deux canaux MIDI différents, chacun étant affecté de son propre 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"
    }
    \tempo 2 = 72
  }
}

[image of music]

Problèmes connus et avertissements

Certains systèmes d’exploitation requièrent que les fichiers MIDI portent l’extension .mid. Si besoin est, placez la ligne suivante au début de votre fichier source, avant l’ouverture de tout bloc \book, \bookpart ou \score :

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

Cette ligne déterminera .midi comme extension par défaut pour les fichiers MIDI.

Vous pouvez aussi le faire en ligne de commande :

lilypond … -dmidi-extension=mid MonFichier.ly

Un changement de volume ne peut intervenir que sur le démarrage d’une note. C’est la raison pour laquelle la succession d’un crescendo et d’un diminuendo ne peut se produire sur une même note.

Certains lecteurs MIDI ne rendent pas correctement les changements de tempo.

Voir aussi

Fichiers d’initialisation : ‘../ly/performer-init.ly’.

Manuel d’initiation : Autres sources de documentation.


Autres langues : English, deutsch, español, italiano, 日本語.
About automatic language selection.

LilyPond — Manuel de notation v2.18.2 (branche stable).