3.5.1 Crear archivos MIDI

Para crear un MIDI a partir de un archivo de LilyPond, inserte un bloque \midi dentro de un bloque \score;

\score {
  …música…
  \layout { }
  \midi { }
}

Si hay solamente un bloque \midi dentro de un \score (es decir, sin ningún bloque \layout), entonces solamente se producirá MIDI. No se produce ninguna salida impresa de notación musical.

\score {
  …música…
  \midi { }
}

Se traducen correctamente a la salida MIDI la altura y duración de las notas, las ligaduras de unión, matices y cambios de tempo. Las ‘marcas’ dinámicas se traducen a niveles de volumen con una ‘fracción fija’ del rango de volumen MIDI disponible; Los crescendi y decrescendi hacen que el volumen varíe linealmente entre sus dos extremos.

Se reflejan en la salida de MIDI todas las indicaciones de \tempo, incluidos todos los cambios de tempo siguientes, especificados dentro de la notación musical.

Por lo general basta con dejar vacío el bloque \midi, pero puede contener disposiciones distintas de los contextos, definiciones de contexto nuevas o código que establezca valores para propiedades. En el ejemplo que aparece a continuación se fija el tempo a 72 negras por minuto, pero solamente para la reproducción de audio a través de MIDI.

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

Observe que \tempo es en realidad una instrucción para establecer valores para propiedades durante la interpretación de la música, y en el contexto de las definiciones de salida, como un bloque \midi, se reinterpreta como si fuese una modificación de contexto.

Las definiciones de contexto siguen la misma sintaxis que las de un bloque \layout;

\score {
  …música…
  \midi {
    \context {
      \Voice
      \remove "Dynamic_performer"
    }
  }
}

elimina de la salida MIDI el efecto de los matices dinámicos. Los módulos de traducción para el sonido se llaman ‘performers’ (intérpretes).

Fragmentos de código seleccionados

Modificar la salida MIDI para que tenga un canal por cada voz

Al producir una salida MIDI, el comportamiento predeterminado es que cada pentagrama representa un canal MIDI, con todas las voces de dicho pentagrama mezcladas. Esto reduce al mínimo el riesgo de que se agote el número de canales MIDI disponibles, pues existe un máximo de 16 canales por cada puerto MIDI, y la mayoría de los dispositivos sólo tiene un puerto.

Sin embargo, cuando se traslada el interpretador Staff_performer al contexto Voice, cada voz de un pentagrama puede tener su propio canal MIDI, como se muestra en el siguiente ejemplo: a pesar de estar sobre el mismo pentagrama, se crean dos canales MIDI, cada uno con un midiInstrument distinto.

\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]

Advertencias y problemas conocidos

Algunos sistemas operativos requieren una extensión de archivo específica para los archivos MIDI. Si se prefiere una extensión distinta, inserte la línea siguiente en el nivel superior del archivo de entrada, antes del comienzo de cualquier bloque \book, \bookpart o \score;

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

De esta manera quedará establecida la extensión predeterminada para los archivos MIDI a .mid.

De forma alternativa, se puede proporcionar una opción en la línea de órdenes de la consola:

lilypond -dmidi-extension=mid MiArchivo.ly

Los cambios del volumen MIDI sólo tienen lugar al principio de la nota, por lo que los crescendi y decrescendi no pueden afectar al volumen de una sola nota.

Puede que algunos propgramas reproductores de MIDI no siempre manejen correctamente los cambios de tempo en la salida MIDI.

Véase también

Archivos instalados: ‘../ly/performer-init.ly’.

Manual de aprendizaje: Otras fuentes de información.


Otros idiomas: English, deutsch, français, italiano, 日本語.
Acerca de la selección automática del idioma.

LilyPond — Referencia de la notación v2.18.2 (rama estable).