3.5.4 Control de les dinàmiques del MIDI

Es possible controlar el volum MIDI general, el volum relatiu de les indicacions de matís dinàmic i el volum relatiu dels diferents instruments.

Les indicacions de matís dinàmic es tradueixen automàticament a nivells de volum dins del rang de volums MIDI disponible mentre que els crescendos i decrescendos varien el volum linealment entre els seus dos extrems. És possible controlar el volum relatiu de les indicacions de matís dinàmic, i el volum general dels diferents instruments.


Indicacions de matís dinàmic al MIDI

Sols les marques de dinàmica des de ppppp fins fffff, inclosos mp, mf i sf tenen valors assignats. Aquest valor s’aplica a continuació al valor del rang de volum a la sortida MIDI per a aquesta indicació de matís dinàmic en particular. Les fraccions predeterminades varien des de 0.25 per al ppppp fins a 0.95 per al fffff. El conjunt complet de les indicacions de matís dinàmic poden veure’s al fitxer ‘scm/midi.scm’.

Fragments de codi seleccionats

Creació de marques dinàmiques a la sortida MIDI

L’exemple següent mostra com crear un marcatge dinàmic, que no està inclòs a llista predeterminada, i assignar-lo a un valor específic de manera que es pugui usar per afectar la sortida MIDI.

A la marca dinàmica \rfz se li assigna un valor de 0.9.

#(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 {
        a'4\pp b c-\rfz
      }
    }
  }
  \layout {}
  \midi {}
}

[image of music]

Fitxers instal·lats: ‘ly/script-init.ly’ ‘scm/midi.scm’.

Fragments de codi: MIDI.

Referència de funcionament intern: Dynamic_performer.


Establiment del volum MIDI

Els volums generals mínim i màxim de les indicacions de matís dinàmic MIDI es controlen establint les propietats midiMinimumVolume i midiMaximumVolume en el nivell del bloc Score. Aquestes propietats tenen efecte sols al començament de una veu i sobre les indicacions dinàmiques. La fracció que correspon a cada indicació dinàmica es modifica amb aquesta fórmula:

midiMinimumVolume + (midiMaximumVolume - midiMinimumVolume) * fracció

A l’exemple següent, el rang dinàmic del volum MIDI general es limita a l’interval entre 0.2 i 0.5.

\score {
  <<
    \new Staff {
      \set Staff.midiInstrument = "flute"
      … music …
    }
    \new Staff {
      \set Staff.midiInstrument = "clarinet"
      … music …
    }
  >>
  \midi {
    \context {
      \Score
      midiMinimumVolume = #0.2
      midiMaximumVolume = #0.5
    }
  }
}

Es pot obtenir una equalització senzilla d’instruments MIDI establint les propietats midiMinimumVolume i midiMaximumVolume dins del context Staff.

\score {
  \new Staff {
    \set Staff.midiInstrument = "flute"
    \set Staff.midiMinimumVolume = #0.7
    \set Staff.midiMaximumVolume = #0.9
    … music …
  }
  \midi { }
}

Per a partitures amb més d’un pentagrama i més d’un instrument MIDI, es poden fixar individualment els volums relatius de cada instrument:

\score {
  <<
    \new Staff {
      \set Staff.midiInstrument = "flute"
      \set Staff.midiMinimumVolume = #0.7
      \set Staff.midiMaximumVolume = #0.9
      … music …
    }
    \new Staff {
      \set Staff.midiInstrument = "clarinet"
      \set Staff.midiMinimumVolume = #0.3
      \set Staff.midiMaximumVolume = #0.6
      … music …
    }
  >>
  \midi { }
}

En aquest exemple el volum del clarinet es redueix de forma relativa al volum de la flauta.

Si no s’estableixen aquestes propietats de volum, el LilyPond encara aplica un ‘petit grau’ d’equalització a certs instruments. Vegeu ‘scm/midi.scm’.

Fitxers instal·lats: ‘scm/midi.scm’.

Vegeu també

Referència de la notació: Disposició de la partitura.

Referència de funcionament intern: Dynamic_performer.

Fragments de codi seleccionats

Replacing default MIDI instrument equalization

The default MIDI instrument equalizer can be replaced by setting the instrumentEqualizer property in the Score context to a user-defined Scheme procedure that uses a MIDI instrument name as its argument along with a pair of fractions indicating the minimum and maximum volumes respectively to be applied to that specific instrument.

The following example sets the minimum and maximum volumes for flute and clarinet respectively."

#(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 {
        r2 g''\mp g fis~
        4 g8 fis e2~
        4 d8 cis d2
      }
    }
    \new Staff {
      \key g \major
      \set Staff.midiInstrument = "clarinet"
      \new Voice \relative {
        b'1\p a2. b8 a
        g2. fis8 e
        fis2 r
      }
    }
  >>
  \layout { }
  \midi {  }
}

[image of music]

Advertiments i problemes coneguts

Els canvis al volum del MIDI sols tenen lloc al començament d’una nota, per la qual cosa els crescendos i decrescendos no afecten a volum d’una sola nota.


Establiment de les propietats del bloc MIDI

El bloc \midi pot contenir diverses disposicions dels contextos, definicions de context noves o codi que estableix els valors de certes propietats.

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

Aquí, el temps s’estableix a 72 pulsacions de negra per minut. La indicació de temps dins del bloc \midi no apareix a la partitura impresa. Tot i que qualsevol altra indicació de \tempo que s’especifiqui dins del bloc \score també apareixerà a la sortida MIDI.

Dins d’un bloc \midi, l’ordre \tempo està establint propietats durant la interpretació de la música i en el context de les definicions de sortida; així, s’interpreta com si fos una modificació de context.

Les definicions de context segueixen la mateixa sintaxi que les del bloc \layout:

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

Aquest exemple suprimeix l’efecte de les indicacions dinàmiques sobre la sortida MIDI. Nota: els mòduls de traducció del LilyPond usats per al so s’anomenen ‘performers’.

Vegeu també

Manual de aprenentatge: Altres fonts d'informació.

Referència de la notació: Expressions, Disposició de la partitura.

Fitxers instal·lats: ‘ly/performer-init.ly’.

Fragments de codi: MIDI.

Referència de funcionament intern: Dynamic_performer.

Advertiments i problemes coneguts

Certs reproductors de MIDI no sempre gestionen correctament els canvis de tempo a la sortida MIDI.

Els canvis fets al midiInstrument, així com certes opcions MIDI al començament d’un pentagrama, poden aparèixer dos cops a la sortida MIDI.


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