+@funindex skipTypesetting
+@funindex showFirstLength
+@funindex showLastLength
+
+Al escribir o copiar música, normalmente sólo es interesante de ver y
+corregir la música cercana al final (donde estamos añadiendo las
+notas). Para acelerar este proceso de corrección, es posible saltar
+la composición tipográfica de todos excepto unos pocos de los últimos
+compases. Esto se consigue poniendo
+
+@verbatim
+showLastLength = R1*5
+\score { ... }
+@end verbatim
+
+@noindent
+en nuestro archivo fuente. Esto hará que se tracen sólo los últimos
+cinco compases (suponiendo un compás de 4/4) de cada una de las
+partituras @code{\score} del archivo de entrada. Para piezas largas,
+el tipografiado de únicamente una parte pequeña es con frecuencia un
+orden de magnitud más rápido que el de la obra completa. Si estamos
+trabajando sobre el principio de una partitura que ya hemos
+tipografiado (p.ej., para añadir una parte instrumental nueva),
+también puede ser útil la propiedad @code{showFirstLength}.
+
+Este mecanismo de pasar por alto partes de un partitura se puede
+controlar con un grano más fino mediante la propiedad
+@code{Score.skipTypesetting}. Cuando su valor está establecido, no se
+lleva a cabo ningún tipografiado en absoluto.
+
+Esta propiedad se usa también para controlar la salida al archivo
+MIDI. Observe que pasa por alto todos los eventos, incluidos el tempo
+y los cambios de instrumento. Está usted advertido.
+
+@lilypond[quote,fragment,ragged-right,verbatim]
+\relative c'' {
+ c8 d
+ \set Score.skipTypesetting = ##t
+ e e e e e e e e
+ \set Score.skipTypesetting = ##f
+ c d b bes a g c2 }
+@end lilypond
+
+En música polifónica, @code{Score.skipTypesetting} afecta a todas las
+voces y pentagramas, ahorrando más tiempo incluso.
+
+
+@node MIDI output
+@section MIDI output
+
+@cindex sonido
+@cindex MIDI
+
+El MIDI (Musical Instrument Digital Interface, Interfase Digital para
+Instrumentos Musicales) es un estándar para interconectar y controlar
+instrumentos musicales electrónicos. Un archivo o secuencia MIDI es
+una serie de notas dentro de un conjunto de pistas. No es un archivo
+de sonidos reales; se necesita un programa reproductor especial para
+traducir la serie de notas en sonidos de verdad.
+
+Cualquier música se puede convertir a archivos MIDI, de manera que
+podamos escuchar lo que hayamos introducido. Esto es muy conveniente
+para comprobar la corrección de la música; las octavas equivocadas o
+las alteraciones erróneas se ponen de relieve muy claramente al
+escuchar la salida MIDI.
+
+@c TODO Check this
+La salida MIDI reserva un canal por cada pentagrama, y otro para los
+ajustes globales. Por ello, el archivo MIDI no debe tener más de 15
+pautas (o 14 si no se usa la percusión). Otros pentagramas permanecen
+en silencio.
+
+@menu
+* Creating MIDI files::
+* MIDI block::
+* What goes into the MIDI output?::
+* Repeats in MIDI::
+* Controlling MIDI dynamics::
+* Percussion in MIDI::
+@end menu
+
+@node Creating MIDI files
+@subsection Creating MIDI files
+
+Para crear un MIDI a partir de una pieza de música, escriba un bloque
+@code{\midi} en la partitura, por ejemplo:
+
+@example
+\score @{
+ @var{...música...}
+ \midi @{ @}
+@}
+@end example
+
+Si hay un bloque @code{\midi} dentro de un @code{\score} que no tenga
+ningún bloque @code{\layout}, solamente se producirá MIDI. Si se
+necesita una notación impresa, debe haber también un bloque
+@code{\layout}:
+
+@example
+\score @{
+ @var{...música...}
+ \midi @{ @}
+ \layout @{ @}
+@}
+@end example
+
+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
+indicaciones dinámicas, crescendi y decrescendi se traducen a niveles
+de volumen MIDI. Las marcas dinámicas se traducen a una fracción fija
+del rango de volumen MIDI disponible. Los crescendi y decrescendi
+hacen que el volumen varía linealmente entre sus dos extremos. El
+efecto de las indicaciones dinámicas sobre la salida MIDI se puede
+eliminar por completo, véase @ref{MIDI block}.
+
+El tempo inicial y los cambios de tempo posteriores se pueden
+especificar utilizando la instrucción @code{\tempo} dentro de la
+propia notación musical. Se reflejan en cambios de tempo en la salida
+MIDI. Esta instrucción normalmente hace que se imprima la indicación
+metronómica, pero esto se puede eliminar, véase @ref{Metronome marks}.
+Más abajo se describe una forma alternativa de especificar el tempo
+MIDI inicial o global, véase @ref{MIDI block}.
+
+Debido a ciertas limitaciones de Windows, la extensión predeterminada
+para los archivos MIDI en Windows es @code{.mid}. Otros sistemas
+operativos utilizan la extensión @code{.midi}. Si prefiere una
+extensión diferente, inserte la siguiente línea en el nivel jerárquico
+superior del archivo de entrada, antes del inicio de cualquier bloque
+@code{\book}, @code{\bookpart} o @code{\score}:
+
+@example
+#(ly:set-option 'midi-extension "midi")
+@end example
+
+La línea anterior establece la extensión predeterminada para los
+archivos MIDI a @code{.midi}.
+
+De forma alternativa, esta opción se puede también proporcionar en la
+línea de órdenes:
+
+@example
+lilypond … -dmidi-extension=midi archivoLily.ly
+@end example
+
+
+@unnumberedsubsubsec Instrument names
+
+@cindex instrumento, nombres de
+@funindex Staff.midiInstrument
+
+El nombre del instrumento MIDI se establece mediante la propiedad
+@code{Staff.midiInstrument}. El nombre del instrumento se debe elegir
+de entre los que están en la lista que aparece en @ref{MIDI
+instruments}.
+
+@example
+\new Staff @{
+ \set Staff.midiInstrument = #"glockenspiel"
+ @var{...notes...}
+@}
+@end example
+
+@example
+\new Staff \with @{midiInstrument = #"cello"@} @{
+ @var{...notes...}
+@}
+@end example
+
+Si el instrumento elegido no coincide exactamente con uno de los
+instrumentos de la lista de instrumentos MIDI, se usará el instrumento
+Piano de Cola (@code{"acoustic grand"}).
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{changing-midi-output-to-one-channel-per-voice.ly}
+
+@knownissues
+
+@c In 2.11 the following no longer seems to be a problem -td
+@ignore
+Unterminated (de)crescendos will not render properly in the midi file,
+resulting in silent passages of music. The workaround is to explicitly
+terminate the (de)crescendo. For example,
+
+@example
+@{ a\< b c d\f @}
+@end example
+
+@noindent
+will not work properly but
+
+@example
+@{ a\< b c d\!\f @}
+@end example
+
+@noindent
+will.
+@end ignore
+
+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.
+
+No todos los reproductores de MIDI manejar adecuadamente los cambios de
+tempo de la salida MIDI. Entre los reproductores que se sabe que
+funcionan se encuentran el Reproductor de Medios de MS Windows y
+@uref{http://@/timidity@/.sourceforge@/.net/,timidity}.
+
+
+@node MIDI block
+@subsection MIDI block
+
+@cindex bloque MIDI
+
+Si se requiere una salida MIDI, debe aparecer un bloque @code{\midi}
+dentro de un bloque de partitura. Es análogo al bloque layout de
+diseño de página, pero algo maś simple. Con frecuencia, el bloque
+@code{\midi} se deja vacío, pero puede contener reorganizaciones de
+contextos, definiciones de contexto nuevas o código para fijar valores
+de propiedades. Por ejemplo, en el ejemplo siguiente se establece el
+tempo inicial exportado al archivo MIDI sin hacer que se imprima una
+indicación de tempo:
+
+@example
+\score @{
+ @var{...música...}
+ \midi @{
+ \context @{
+ \Score
+ tempoWholesPerMinute = #(ly:make-moment 72 4)
+ @}
+ @}
+@}
+@end example
+
+En este ejemplo, el tempo se establece a 72 pulsos de negra por
+minuto. Esta clase de especificación de tempo no puede tomar como
+argumento una figura con puntillo. Si necesitamos una figura con
+puntillo, dividimos la nota con puntillo en figuras más pequeñas. Por
+ejemplo, un tempo de 90 negras con puntillo por minuto se puede
+especificar como 270 corcheas por minuto:
+
+@example
+tempoWholesPerMinute = #(ly:make-moment 270 8)
+@end example
+
+@cindex MIDI, definiciones de contexto
+
+Las definiciones de contexto siguen con precisión la misma sintaxis
+que la de un bloque @code{\layout}. Los módulos de traducción para el
+sonido reciben el nombre de ejecutantes. Los contextos para la salida
+MIDI se definen en @file{../ly/@/performer@/-init@/.ly}, véase
+@rlearning{Other sources of information}. Por ejemplo, para eliminar
+el efecto de los matices de la salida MIDI, inserte las líneas
+siguientes en el bloque @code{\midi@{ @}}.
+
+@example
+\midi @{
+ ...
+ \context @{
+ \Voice
+ \remove "Dynamic_performer"
+ @}
+@}
+@end example
+
+La salida MIDI se crea sólo cuando se incluye un bloque @code{\midi}
+dentro de un bloque de partitura definido con una instrucción
+@code{\score}. Si se sitúa dentro de un contexto de partitura
+instanciado explícitamente (es decir, dentro de un bloque @code{\new
+Score}) el archivo no funciona. Para resolverlo, encierre las
+instrucciones @code{\new Score} y @code{\midi} dentro de un bloque
+@code{\score}.
+
+@example
+\score @{
+ \new Score @{ @dots{}notas@dots{} @}
+ \midi @{ @}
+@}
+@end example
+
+@node What goes into the MIDI output?
+@subsection What goes into the MIDI output?
+
+@unnumberedsubsubsec Supported in MIDI
+
+@cindex alturas en MIDI
+@cindex MIDI, alturas
+@cindex cuartos de tono en MIDI
+@cindex MIDI, cuartos de tono
+@cindex microtonos en MIDI
+@cindex MIDI, microtonos
+@cindex acordes, nombres de, en MIDI
+@cindex MIDI, nombres de
+@cindex duraciones en MIDI
+@cindex MIDI, duraciones
+@c TODO etc
+
+Los siguientes elementos de notación se reflejan en la salida MIDI:
+
+@itemize
+@item Alturas
+@item Microtonos (véase @ref{Accidentals}. La reproducción necesita un reproductor que contemple la curvatura de tono o @emph{pitch bend}.)
+@item Acordes escritos como nombres de acorde
+@item Ritmos escritos como duraciones de las notas, incluidos los grupos de valoración especial
+@item Trémolos escritos sin @q{@code{:}[@var{número}]}
+@item Ligaduras de unión
+@item Matices o indicaciones de dinámica
+@item Crescendi y decrescendi sobre varias notas
+@item Cambios de tempo insertados con una marca metronómica
+@item Letra de las canciones
+@end itemize
+
+@unnumberedsubsubsec Unsupported in MIDI
+
+@c TODO index as above
+
+Los siguientes elementos de notación no tienen ningún efecto sobre la
+salida MIDI:
+
+@itemize
+@item Duraciones escritas como anotaciones, p.ej. el swing
+@item Cambios de tempo escritos como anotaciones sin marca de tempo
+@item Staccato y otras articulaciones y ornamentos
+@item Ligaduras de expresión y de fraseo
+@item Crescendi y decrescendi sobre una nota única
+@item Trémolos introducidos con @q{@code{:}[@var{número}]}
+@item Bajo cifrado
+@item Acordes microtonales
+@end itemize
+
+
+@node Repeats in MIDI
+@subsection Repeats in MIDI
+
+@cindex repeticiones, expandir
+@funindex \unfoldRepeats
+
+Con un poco de trucaje, se puede hacer que cualquier tipo de
+repetición esté presente en la salida MIDI. Esto se consigue mediante
+la aplicación de la función musical @code{\unfoldRepeats}. Esta
+función cambia todas las repeticiones a repeticiones desplegadas.
+
+@lilypond[quote,verbatim]
+\unfoldRepeats {
+ \repeat tremolo 8 {c'32 e' }
+ \repeat percent 2 { c''8 d'' }
+ \repeat volta 2 {c'4 d' e' f'}
+ \alternative {
+ { g' a' a' g' }
+ {f' e' d' c' }
+ }
+}
+\bar "|."
+@end lilypond
+
+Al crear un archivo de partitura que use @code{\unfoldRepeats} para el
+MIDI, es necesario hacer dos bloques @code{\score}: uno para el MIDI
+(con repeticiones desplegadas) y otro para la notación impresa (con
+repeticiones de volta --primera y segunda vez--, tremolo --trémolo--,
+y percent --repetición de compases--). Por ejemplo,
+
+@example
+\score @{
+ @var{..música..}
+ \layout @{ .. @}
+@}
+\score @{
+ \unfoldRepeats @var{..música..}
+ \midi @{ .. @}
+@}
+@end example
+
+
+@node Controlling MIDI dynamics
+@subsection Controlling MIDI dynamics
+
+La dinámica en el MIDI está implementada por medio del intérprete
+Dynamic_performer que reside de forma predeterminada dentro del
+contexto Voice. Es posible controlar el volumen MIDI general, el
+volumen relativo de los matices dinámicos y el volumen relativo de los
+distintos instrumentos.
+
+@unnumberedsubsubsec Dynamic marks
+
+Los matices o indicaciones de dinámica se traducen a una fracción fija
+del rango de volumen MIDI disponible. Las fracciones predeterminadas
+se extienden desde 0.25 para @notation{ppppp} hasta 0.95 para
+@notation{fffff}. El conjunto de indicaciones dinámicas y las
+fracciones asociadas pueden verse en @file{../scm/midi.scm}, véase
+@rlearning{Other sources of information}. Este conjunto de fracciones
+se puede cambiar o extender proporcionando una función que toma como
+argumento una indicación dinámica y devuelve la fracción requerida, y
+estableciendo @code{Score.dynamicAbsoluteVolumeFunction} a esta
+función.
+
+Por ejemplo, si se requiere una indicación dinámica
+@notation{rinforzando}, @code{\rfz}, ésta no tiene ningún efecto
+predeterminado sobre el volumen MIDI, pues no está incluida en el
+conjunto predeterminado. De igual manera, si se define una indicación
+dinámica nueva con @code{make-dynamic-script}, ésta tampoco estará
+incluida en el conjunto predeterminado. El ejemplo siguiente muestra
+cómo hay que añadir el volumen MIDI para estas indicaciones dinámicas.
+La función Scheme establece la fracción a 0.9 si se encuentra una
+indicación dinámica rfz, y en caso contrario llama a la función
+predeterminada.
+
+@lilypond[verbatim,quote]
+#(define (myDynamics dynamic)
+ (if (equal? dynamic "rfz")
+ 0.9
+ (default-dynamic-absolute-volume dynamic)))
+
+\score {
+ \new Staff {
+ \set Staff.midiInstrument = #"cello"
+ \set Score.dynamicAbsoluteVolumeFunction = #myDynamics
+ \new Voice {
+ \relative c'' {
+ a\pp b c-\rfz
+ }
+ }
+ }
+ \layout {}
+ \midi {}
+}
+@end lilypond
+
+Como alternativa, si se necesitara redefinir la tabla completa de
+fracciones, sería mejor usar el procedimiento
+@notation{default-dynamic-absolute-volume} que aparece en
+@file{../scm/midi.scm} y la tabla asociada como modelo. El último
+ejemplo de esta sección muestra cómo se puede hacer esto.
+
+@unnumberedsubsubsec Overall MIDI volume
+
+El volumen general máximo y mínimo de las indicaciones dinámicas de
+MIDI se controla estableciendo valores para las propiedades
+@code{midiMinimumVolume} y @code{midiMaximumVolume} en el nivel de
+@code{Score}. Estas propiedades tienen efecto solamente sobre las
+indicaciones dinámicas, por ello si queremos que tengan validez desde
+el comienzo de la partitura, se debe colocar allí una indicación de
+dinámica. La fracción que corresponde a cada indicación dinámica se
+modifica con esta fórmula:
+
+@example
+midiMinimumVolume + (midiMaximumVolume - midiMinimumVolume) * fracción
+@end example
+
+En el ejemplo siguiente, el rango de intensidad dinámica del volumen
+general MIDI está limitado al intervalo desde 0.2 hasta 0.5.
+
+@lilypond[verbatim,quote]
+\score {
+ <<
+ \new Staff {
+ \key g \major
+ \time 2/2
+ \set Staff.midiInstrument = #"flute"
+ \new Voice \relative c''' {
+ r2 g\mp g fis ~
+ fis4 g8 fis e2 ~
+ e4 d8 cis d2
+ }
+ }
+ \new Staff {
+ \key g \major
+ \set Staff.midiInstrument = #"clarinet"
+ \new Voice \relative c'' {
+ b1\p a2. b8 a
+ g2. fis8 e
+ fis2 r
+ }
+ }
+ >>
+ \layout { }
+ \midi {
+ \context {
+ \Score
+ tempoWholesPerMinute = #(ly:make-moment 72 2)
+ midiMinimumVolume = #0.2
+ midiMaximumVolume = #0.5
+ }
+ }
+}
+@end lilypond
+
+@unnumberedsubsubsec Equalizing different instruments (i)
+
+Si las propiedades de volumen MIDI máximo y mínimo están establecidas
+en el contexto @code{Staff} se pueden controlar los volúmenes
+relativos de los instrumentos MIDI. Esto proporciona un ecualizador
+de instrumentos básico que puede realzar significativamente la calidad
+de la salida MIDI.
+
+En este ejemplo se reduce el volumen del clarinete con relación al de
+la flauta. Debe haber una indicación dinámica en la primera nota de
+cada instrumento para que esto funcione correctamente.
+
+@lilypond[verbatim,quote]
+\score {
+ <<
+ \new Staff {
+ \key g \major
+ \time 2/2
+ \set Staff.midiInstrument = #"flute"
+ \set Staff.midiMinimumVolume = #0.7
+ \set Staff.midiMaximumVolume = #0.9
+ \new Voice \relative c''' {
+ r2 g\mp g fis ~
+ fis4 g8 fis e2 ~
+ e4 d8 cis d2
+ }
+ }
+ \new Staff {
+ \key g \major
+ \set Staff.midiInstrument = #"clarinet"
+ \set Staff.midiMinimumVolume = #0.3
+ \set Staff.midiMaximumVolume = #0.6
+ \new Voice \relative c'' {
+ b1\p a2. b8 a
+ g2. fis8 e
+ fis2 r
+ }
+ }
+ >>
+ \layout { }
+ \midi {
+ \context {
+ \Score
+ tempoWholesPerMinute = #(ly:make-moment 72 2)
+ }
+ }
+}
+@end lilypond
+
+@unnumberedsubsubsec Equalizing different instruments (ii)
+
+Si las propiedades de volumen MIDI máximo y mínimo no están
+establecidas, de forma predeterminada LilyPond aplica un pequeño grado
+de ecualización a algunos instrumentos. Los instrumentos y la
+ecualización que se aplica se muestra en la tabla
+@notation{instrument-equalizer-alist} en @file{../scm/midi.scm}.
+
+El ecualizador básico predeterminado se puede sustituir estableciendo
+@code{instrumentEqualizer} en el contexto @code{Score} a un
+procedimiento Scheme nuevo que acepte el nombre de un instrumento MIDI
+como único argumento y devuelva un par de fracciones que dan los
+volúmenes máximo y mínimo que se aplican a dicho instrumento. Esta
+sustitución se hace de la misma forma que mostramos para restablecer
+la fracción de volumen absoluto @code{dynamicAbsoluteVolumeFunction}
+al comienzo de esta sección. El ecualizador predeterminado,
+@notation{default-instrument-equalizer}, en @file{../scm/midi.scm},
+muestra cómo se puede escribir tal procedimiento.
+
+El ejemplo siguiente establece los volúmenes relativos de la flauta y
+del clarinete a los mismos valores que el ejemplo anterior.
+
+@lilypond[verbatim,quote]
+#(define my-instrument-equalizer-alist '())
+
+#(set! my-instrument-equalizer-alist
+ (append
+ '(
+ ("flute" . (0.7 . 0.9))
+ ("clarinet" . (0.3 . 0.6)))
+ my-instrument-equalizer-alist))
+
+#(define (my-instrument-equalizer s)
+ (let ((entry (assoc s my-instrument-equalizer-alist)))
+ (if entry
+ (cdr entry))))
+
+\score {
+ <<
+ \new Staff {
+ \key g \major
+ \time 2/2
+ \set Score.instrumentEqualizer = #my-instrument-equalizer
+ \set Staff.midiInstrument = #"flute"
+ \new Voice \relative c''' {
+ r2 g\mp g fis ~
+ fis4 g8 fis e2 ~
+ e4 d8 cis d2
+ }
+ }
+ \new Staff {
+ \key g \major
+ \set Staff.midiInstrument = #"clarinet"
+ \new Voice \relative c'' {
+ b1\p a2. b8 a
+ g2. fis8 e
+ fis2 r
+ }
+ }
+ >>
+ \layout { }
+ \midi {
+ \context {
+ \Score
+ tempoWholesPerMinute = #(ly:make-moment 72 2)
+ }
+ }
+}
+@end lilypond
+
+@ignore
+@c Delete when satisfied this is adequately covered elsewhere -td
+
+@n ode Microtones in MIDI
+@s ubsection Microtones in MIDI
+
+@cindex microtones in MIDI
+
+Microtones consisting of half sharps and half flats are exported
+to the MIDI file and render correctly in MIDI players which support
+pitch bending. See @ref{Note names in other languages}. Here is
+an example showing all the half sharps and half flats. It can be
+copied out and compiled to test microtones in your MIDI player.
+
+@lilypond[verbatim,quote]
+\score {
+ \relative c' {
+ c cih cis cisih
+ d dih ees eeh
+ e eih f fih
+ fis fisih g gih
+ gis gisih a aih
+ bes beh b bih
+ }
+ \layout {}
+ \midi {}
+}
+@end lilypond
+@end ignore