Referència de la notació del GNU LilyPond: 3.5.4 Control de les dinàmiques del MIDI

### 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

Creating custom dynamics in MIDI output

The following example shows how to create a dynamic marking, not included in the default list, and assign it a specific value so that it can be used to affect MIDI output.

The dynamic mark `\rfz` is assigned a value of `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 {}
>     }

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 {  }
>     }

#### 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.22.2 (branca estable).