GNU LilyPond – Manuel de notation: 1.1.2 Modification de plusieurs hauteurs

### 1.1.2 Modification de plusieurs hauteurs

Cette partie traite de la manière de modifier les hauteurs de note.

#### Vérifications d’octave

Les tests d’octave rendent la correction d’erreurs d’octave plus facile dans le mode d’octave `relative` – un `,` ou un `'` oublié, ça n’arrive pas qu’aux autres !

Une note peut être suivie de `=`apostrophes/virgules pour indiquer à quelle octave absolue elle devrait être. Dans l’exemple suivant, le premier `d` générera un avertissement, puisqu’on attend un `d''` – intervalle inférieur à la quarte – mais qu’on obtient un `d'`. Sur la partition, l’octave sera corrigée pour donner un `d'` et la prochaine note sera calculée en fonction de ce `d'` et non de `d''`.

>     \relative {
>       c''2 d='4 d
>       e2 f
>     }

Il existe aussi une vérification d’octave qui ne produit pas de musique imprimée, ayant pour syntaxe `\octaveCheck hauteur_référence` – `hauteur_référence` étant spécifiée en mode absolu. Cette commande vérifie que l’intervalle entre la note qui précède et `hauteur_référence` est inférieur à la quinte comme il se doit en mode relatif. Dans le cas contraire, un message sera émis. Bien que la note précédente ne sera pas modifiée, les notes suivantes seront positionnées relativement à la valeur corrigée.

>     \relative {
>       c''2 d
>       \octaveCheck c'
>       e2 f
>     }

Dans les deux mesures qui suivent, les premier et troisième `\octaveCheck` échouent, mais le deuxième est concluant.

>     \relative {
>       c''4 f g f

>       c4
>       \octaveCheck c'
>       f
>       \octaveCheck c'
>       g
>       \octaveCheck c'
>       f
>     }

#### Voir aussi

Morceaux choisis : Hauteurs.

Référence des propriétés internes : RelativeOctaveCheck.

#### Transposition

Une expression musicale peut être transposée avec `\transpose`. En voici la syntaxe :

>     \transpose note_de_départ note_d_arrivée expression_musicale

Cela signifie que `expression_musicale` est transposé de l’intervalle séparant `note_de_départ` et `note_d_arrivée` : toute note dont la hauteur était `note_de_départ` est changée en `note_d_arrivée` ; les autres notes seront changées selon le même intervalle. Les deux hauteurs s’expriment en octave absolue.

Note : La musique contenue dans un bloc `\transpose` est en octaves absolues, sauf à inclure dans ce même bloc une clause `\relative`.

Prenons comme exemple une pièce écrite en ré majeur. Si cette pièce est un peu trop basse pour l’interprète, elle peut être transposée en mi majeur. Vous noterez que l’armure est automatiquement modifiée.

>     \transpose d e {
>       \relative {
>         \key d \major
>         d'4 fis a d
>       }
>     }

Regardons maintenant une partie écrite pour violon – un instrument en ut. Si cette partie doit être jouée par une clarinette en la (écrite à la tierce mineure supérieure, un do écrit donnant un la réel), la transposition suivante créera la partie appropriée.

>     \transpose a c' {
>       \relative {
>         \key c \major
>         c'4 d e g
>       }
>     }

La présence de `\key c \major` s’explique par le fait que, bien que les notes soient effectivement transposées, l’armure ne sera imprimée que dans la mesure où elle est explicitement mentionnée.

`\transpose` fait la distinction entre les notes enharmoniques : `\transpose c cis` et `\transpose c des` transposeront la pièce un demi-ton plus haut, au détail près que la première version écrira des dièses et la deuxième des bémols.

>     music = \relative { c' d e f }
>     \new Staff {
>       \transpose c cis { \music }
>       \transpose c des { \music }
>     }

On peut aussi utiliser `\transpose` pour entrer des notes écrites pour un instrument transpositeur. Normalement, les hauteurs dans LilyPond sont écrites en ut, c’est à dire en sons réels, mais elles peuvent être écrites dans un autre ton. Prenons l’exemple d’un morceau pour trompette en si bémol commençant sur un ré à l’oreille ; on pourrait écrire

>     musiqueEnSiBemol = { e4 … }
>     \transpose c bes, \musiqueEnSiBemol

Pour imprimer cette musique en fa – et de ce fait produire une partie de cor au lieu d’un conducteur en notes réelles – on utilisera un deuxième `\transpose` :

>     musiqueEnSiBemol = { e4 … }
>     \transpose f c' { \transpose c bes, \musiqueEnSiBemol }

Pour plus d’information à ce sujet, consultez Instruments transpositeurs.

#### Morceaux choisis

Transposition et réduction du nombre d’altérations accidentelles

Cet exemple, grâce à un peu de code Scheme, donne la priorité aux enharmoniques afin de limiter le nombre d’altérations supplémentaires. La règle applicable est :

- Les altérations doubles sont supprimées
- Si dièse -> Do
- Mi dièse -> Fa
- Do bémol -> Si
- Fa bémol -> Mi

Cette façon de procéder aboutit à plus d’enharmoniques naturelles.

>     #(define (naturalize-pitch p)
>        (let ((o (ly:pitch-octave p))
>              (a (* 4 (ly:pitch-alteration p)))
>              ;; alteration, a, in quarter tone steps,
>              ;; for historical reasons
>              (n (ly:pitch-notename p)))
>          (cond
>           ((and (> a 1) (or (eqv? n 6) (eqv? n 2)))
>            (set! a (- a 2))
>            (set! n (+ n 1)))
>           ((and (< a -1) (or (eqv? n 0) (eqv? n 3)))
>            (set! a (+ a 2))
>            (set! n (- n 1))))
>          (cond
>           ((> a 2) (set! a (- a 4)) (set! n (+ n 1)))
>           ((< a -2) (set! a (+ a 4)) (set! n (- n 1))))
>          (if (< n 0) (begin (set! o (- o 1)) (set! n (+ n 7))))
>          (if (> n 6) (begin (set! o (+ o 1)) (set! n (- n 7))))
>          (ly:make-pitch o n (/ a 4))))

>     #(define (naturalize music)
>        (let ((es (ly:music-property music 'elements))
>              (e (ly:music-property music 'element))
>              (p (ly:music-property music 'pitch)))
>          (if (pair? es)
>              (ly:music-set-property!
>               music 'elements
>               (map naturalize es)))
>          (if (ly:music? e)
>              (ly:music-set-property!
>               music 'element
>               (naturalize e)))
>          (if (ly:pitch? p)
>              (begin
>                (set! p (naturalize-pitch p))
>                (ly:music-set-property! music 'pitch p)))
>          music))

>     naturalizeMusic =
>     #(define-music-function (m)
>        (ly:music?)
>        (naturalize m))

>     music = \relative c' { c4 d e g }

>     \score {
>       \new Staff {
>         \transpose c ais { \music }
>         \naturalizeMusic \transpose c ais { \music }
>         \transpose c deses { \music }
>         \naturalizeMusic \transpose c deses { \music }
>       }
>       \layout { }
>     }

#### Voir aussi

Manuel de notation : Instruments transpositeurs, Inversion, Octaves relatives, Rétrogradation, Transformations modales.

Morceaux choisis : Hauteurs.

Référence des propriété internes : TransposedMusic.

#### Problèmes connus et avertissements

Si vous voulez utiliser en même temps `\transpose` et `\relative`, vous devez mettre `\transpose` en dehors de `\relative`, puisque `\relative` n’aura aucun effet sur la musique apparaissant dans un `\transpose`.

La fonction `\transpose` ne permet pas d’imprimer des altérations triples ; elle les remplacera par un « équivalent enharmonique » – par exemple ré bémol au lieu de mi triple bémol.

#### Inversion

Une expression musicale peut s’inverser et être transposée à l’aide de l’instruction

>     \inversion hauteur-pivot hauteur-arrivée expression_musicale

L’`expression_musicale` sera alors inversée, intervalle par intervalle, puis transposée de telle sorte que `hauteur-pivot` devienne `hauteur-arrivée`.

>     music = \relative { c' d e f }
>     \new Staff {
>       \music
>       \inversion d' d' \music
>       \inversion d' ees' \music
>     }

Note : Le motif à inverser doit être exprimé en hauteur absolue, à moins d’avoir été préalablement inclus explicitement dans un bloc `\relative`.

#### Voir aussi

Manuel de notation : Rétrogradation, Transformations modales, Transposition.

#### Rétrogradation

Une expression musicale peut se renverser et se présenter sous forme rétrograde :

>     music = \relative { c'8. ees16( fis8. a16 b8.) gis16 f8. d16 }

>     \new Staff {
>       \music
>       \retrograde \music
>     }

#### Problèmes connus et avertissements

La fonction `\retrograde` est un outil plutôt simpliste. Dans la mesure où de nombreux événements se reflètent au lieu d’être échangés, les ajustements et indicateurs de positionnement à l’entame d’un objet étendu devront être répétés à leur terminaison : `^(` devra se terminer par `^)`, tout `\<` ou `\cresc` devra se terminer par un `\!` ou un `\endcresc` et tout `\>` ou `\decr` devra se terminer par un `\enddecr`. Les dérogations ou commandes modifiant les propriétés sur la durée peuvent avoir des effets surprenants.

#### Voir aussi

Manuel de notation : Inversion, Transformations modales, Transposition.

#### Transformations modales

Dans une composition basée sur une gamme, un même motif est transformé à plusieurs reprises et selon des schémas différents. Il peut être transposé pour partir de différents points de la gamme ou bien être inversé à partir d’une note pivot dans la gamme. Il peut aussi être renversé pour produire une rétrogradation.

Note : Toute note qui ne ferait pas partie de la gamme en question ne sera pas transformée.

#### Transposition modale

Un motif peut se transposer selon une gamme donnée :

>     \modalTranspose hauteur-départ hauteur-arrivée gamme motif

Les notes de motif seront décalées à l’intérieur de la gamme selon leur degré, déterminé par l’intervalle entre hauteur-départ et hauteur-arrivée :

>     diatonicScale = \relative { c' d e f g a b }
>     motif = \relative { c'8 d e f g a b c }

>     \new Staff {
>       \motif
>       \modalTranspose c f \diatonicScale \motif
>       \modalTranspose c b, \diatonicScale \motif
>     }

Il est ainsi possible de déterminer une gamme ascendante, quels qu’en soient l’amplitude et les différents intervalles :

>     pentatonicScale = \relative { ges aes bes des ees }
>     motif = \relative { ees'8 des ges,4 <ges' bes,> <ges bes,> }

>     \new Staff {
>       \motif
>       \modalTranspose ges ees' \pentatonicScale \motif
>     }

L’utilisation de `\modalTranspose` avec une gamme chromatique produit les mêmes effets qu’un `\transpose`, à ceci près que les notes seront alors prédéterminées :

>     chromaticScale = \relative { c' cis d dis e f fis g gis a ais b }
>     motif = \relative { c'8 d e f g a b c }

>     \new Staff {
>       \motif
>       \transpose c f \motif
>       \modalTranspose c f \chromaticScale \motif
>     }

#### Inversion modale

Un motif peut s’inverser selon une certaine gamme et à partir d’un pivot déterminé, puis transposé, le tout en une seule opération :

>     \modalInversion hauteur-pivot hauteur-arrivée gamme motif

Les notes de motif se retrouvent au même degré par rapport à hauteur-pivot dans la gamme, toutefois dans le sens opposé, puis décalées dans cette même gamme de l’intervalle séparant hauteur-départ et hauteur-arrivée.

Il est donc possible de simplement inverser à partir d’une des notes de la gamme en donnant la même valeur à hauteur-départ et hauteur-arrivée :

>     octatonicScale = \relative { ees' f fis gis a b c d }
>     motif = \relative { c'8. ees16 fis8. a16 b8. gis16 f8. d16 }

>     \new Staff {
>       \motif
>       \modalInversion fis' fis' \octatonicScale \motif
>     }

Pour permuter deux notes de la gamme, il suffit donc d’inverser à partir de l’une des notes et de transposer d’un degré de la gamme. Les deux notes spécifiées peuvent s’interpréter comme étant les bornes du pivot.

>     scale = \relative { c' g' }
>     motive = \relative { c' c g' c, }

>     \new Staff {
>       \motive
>       \modalInversion c' g' \scale \motive
>     }

L’opération conjointe d’une inversion et d’une rétrogradation produit une rétrogradation inversée :

>     octatonicScale = \relative { ees' f fis gis a b c d }
>     motif = \relative { c'8. ees16 fis8. a16 b8. gis16 f8. d16 }

>     \new Staff {
>       \motif
>       \retrograde \modalInversion c' c' \octatonicScale \motif
>     }

#### Voir aussi

Manuel de notation : Inversion, Rétrogradation, Transposition.

#### LilyPond — Manuel de notation v2.22.2 (branche stable).