3.5.7 Assignació de canals MIDI

Quan s’està generant un fitxer MIDI d’una partitura, el LilyPond assigna cada nota de la partitura automàticament a un canal MIDI, aquell que es tocaria quan s’envia cap a un dispositiu MIDI. Un canal MIDI té una certa quantitat de controls disponibles per seleccionar, per exemple, l’instrument a usar per reproduir les notes en aquest canal, o ordenar al dispositiu MIDI que apliqui diversos efectes al so produït sobre el canal. En tot moment, cada control d’un canal MIDI sols pot tenir assignat un valor únic (que malgrat això es pot modificar, per exemple, per canviar a un altre instrument a la meitat d’una partitura).

L’estàndard MIDI dóna suport sols a 16 canals per dispositiu MIDI. Aquest límit en el nombre de canals limita també el nombre d’instruments diferents que poden estar tocant al mateix temps.

El LilyPond crea pistes MIDI separades per a cada pentagrama (o instrument o veu, segons el valor de Score.midiChannelMapping), i també per a cada context de lletra. No hi ha un límit per al nombre de pistes.

Per solucionar el nombre limitat de canals MIDI, el LilyPond dóna suport a alguns modes diferents per a la assignació de canals MIDI, que se seleccionen usant la propietat de context Score.midiChannelMapping. En cada cas, si calen més canals MIDI que el límit, els números de canal assignats tornen a comptar des de zero, causant possiblement una assignació incorrecta d’instrument a algunes notes. Aquesta propietat de context es pot fixar a un dels valors següent:

'staff

Reservar un canal MIDI diferent per a cada un dels pentagrames de la partitura (és l’ajustament predeterminat). Totes les notes de totes les veus comparteixen el canal MIDI del pentagrama que les envolta, i totes es codifiquen dins de la mateixa pista MIDI.

El límit de 16 canals s’aplica al nombre total de contextos de pentagrama i de lletra, fins i tot que les lletres del MIDI no consumeixin un canal MIDI.

'instrument

Reservar un canal MIDI diferent a cada un dels instruments diferents especificats a la partitura. Això significa que totes les notes reproduïdes amb el mateix instrument MIDI comparteixen el mateix canal MIDI (i la mateixa pista), fins i tot que les notes provinguin de diferents veus o pentagrames.

En aquest cas els contextos de lletra no compten per al límit de 16 canals MIDI (ja que no s’assignen a un instrument MIDI), de forma que aquest ajustament pot permetre una millor distribució dels canals MIDI quan el nombre de contextos de pentagrama i de lletra en la partitura excedeix la quantitat de 16.

'voice

Reservar un canal MIDI a cada veu de la partitura que tingui un nom únic entre les veus del seu pentagrama que l’envolta. Les veus dels diferents pentagrames sempre s’assignen a diferents canals MIDI però dues veus qualssevol contingudes dins del mateix pentagrama comparteixen el mateix canal MIDI si tenen el mateix nom. A causa que midiInstrument i els diversos controls MIDI per als efectes són propietats del context de pentagrama, no es poden fixar independentment per a cada veu. La primera veu es reprodueix amb l’instrument i els efectes especificats per al pentagrama, i les veus amb un nom diferent de la primera rebran l’instrument i els efectes predeterminats.

Nota: es poden assignar diferents instruments i/o efectes a diverses veus dins del mateix pentagrama movent el Staff_performer del context Staff al context Voice, y deixant que midiChannelMapping conservi el seu valor predeterminat de 'staff o s’estableixi al valor 'instrument; vegeu el fragment de codi següent.

Per exemple, l’assignació predeterminada de canal MIDI d’una partitura pot canviar-se a l’ajustament 'instrument com es mostra a continuació:

\score {
  ...music...
  \midi {
    \context {
      \Score
      midiChannelMapping = #'instrument
    }
  }
}

Fragments de codi seleccionats

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"
    }
    \tempo 2 = 72
  }
}

[image of music]


Altres idiomes: English, español, français, italiano, 日本語.
Quant a la selecció automàtica de la llengua.

LilyPond — Referència de la notació v2.19.84 (branca de desenvolupament).