4.2.1 J’entends des voix (GNU LilyPond – Manuel d’initiation)

#### 4.2.1 J’entends des voix

Dans une partition gérée par LilyPond, le niveau le plus bas, ou bien élémentaire ou fondamental, est le contexte de voix – Voice context en anglais. Pour d’autres logiciels, on fait tantôt référence à la notion de « couche » ou de « calque ».

En réalité, le contexte de voix est le seul à pouvoir contenir de la musique. Si un contexte `Voice` n’est pas déclaré explicitement, il sera créé automatiquement comme nous l’avons vu au début de ce chapitre. Certains instruments, le hautbois par exemple, ne peuvent jouer qu’une seule note à la fois. Nous n’aurons besoin, pour ces instruments monodiques, que d’une seule voix. Les instruments qui, comme le piano, peuvent émettre plusieurs sons en même temps sont polyphoniques et nécessitent de recourir à plusieurs voix pour gérer efficacement l’alignement des notes et rythmes différents.

Si une voix unique peut tout à fait contenir plusieurs notes dans un accord, à partir de quand aurons-nous vraiment besoin de plusieurs voix ? Considérons déjà ces quatre accords :

>     \relative {
>       \key g \major
>       <d' g>4 <d fis> <d a'> <d g>
>     }

Nous exprimons ici chacun des accords par l’utilisation de chevrons gauche et droite simples, `< … >`, puisque nous n’avons besoin que d’une seule voix. Supposons maintenant que le fa dièse soit une croche, suivie d’un sol croche – une note de passage vers le la ? Nous avons alors deux notes qui débutent au même moment, mais dont la durée est différente : un ré noire et un fa dièse croche. Comment coder cela ? Dans la mesure où toutes les notes d’un accord doivent avoir la même durée, nous ne pouvons pas écrire un accord. Nous ne pouvons pas non plus écrire deux notes séparées, puisqu’elles débutent en même temps. Nous avons alors besoin de deux voix.

Voyons comment cela se pratique selon la grammaire de LilyPond.

Le plus sûr moyen de saisir un fragment où plusieurs voix cohabitent sur la même portée, consiste à saisir chacune des voix séquentiellement (avec `{ … }`), puis à les combiner en simultané à l’aide de doubles chevrons gauche/droite, `<< … >>`. Les fragments devront être séparés par une double oblique inversée, `\\`, pour les affecter à des voix séparées. Dans le cas contraire, les notes seraient toutes affectées à une même voix, ce qui pourrait générer des erreurs. Cette manière de procéder est tout à fait indiquée dans le cas d’une pièce homophonique ne comportant que quelques courts passages de polyphonie.

Voici comment éclater les accords en deux voix, avec la note de passage et la liaison :

>     \relative {
>       \key g \major
>       %    Voice = "1"              Voice = "2"
>       << { g'4 fis8( g) a4 g } \\ { d4 d d d }  >>
>     }

Notez que les hampes de la seconde voix sont dirigées vers le bas.

Autre exemple :

>     \key d \minor
>     %    Voice = "1"           Voice = "2"
>     << { r4 g g4. a8 }    \\ { d,2 d4 g }       >> |
>     << { bes4 bes c bes } \\ { g4 g g8( a) g4 } >> |
>     << { a2. r4 }         \\ { fis2. r4 }       >> |

Le recours à une construction `<< \\ >>` particulière à chaque mesure n’est pas nécessaire. Bien qu’on y gagne en lisibilité si chaque mesure ne contient que quelques notes, il est plus judicieux de carrément séparer chaque voix :

>     <<
>       \key d \minor
>       \relative { % Voice = "1"
>         r4 g' g4. a8 |
>         bes4 bes c bes |
>         a2. r4 |
>       } \\
>       \relative { % Voice = "2"
>         d'2 d4 g |
>         g4 g g8( a) g4 |
>         fis2. r4 |
>       }
>     >>

Cet exemple ne comporte que deux voix, mais il peut être étendu pour traiter trois voix ou plus en ajoutant autant de séparateurs `\\` que de besoin.

Les contextes `Voice` créés implicitement par `<< \\ >>` portent les noms `"1"`, `"2"`, etc. Les premiers contextes définissent les voix extrêmes, la plus haute au contexte `"1"`, la plus basse au contexte `"2"`. Les voix intermédiaires seront affectées aux contextes `"3"` et `"4"`. Pour chacun de ces contextes, le positionnement et l’orientation des liaisons, hampes, nuances, etc. est définie automatiquement.

>     \new Staff \relative {
>       % Main voice
>       c'16 d e f
>       %  Voice = "1"   Voice = "2"             Voice = "3"
>       << { g4 f e } \\ { r8 e4 d c8~ } >> |
>       << { d2 e }   \\ { c8 b16 a b8 g~ 2 } \\ { s4 b c2 } >> |
>     }

Notez l’utilisation d’un `s4` pour insérer un silence invisible, et ainsi décaler le début (visible) de la voix `"3"`.

Les voix peuvent se saisir dans un ordre différent, comme par exemple du haut vers le bas, auquel cas leurs numéros respectifs seront spécifiés dès avant la construction `<< … >>` à l’aide de la commande `\voices` comme ici :

>     \new Staff \relative {
>       % Main voice
>       c'16 d e f
>       %  Voice = "1"   Voice = "2"
>       << { g4 f e } \\ { r8 e4 d c8~ } >> |
>       \voices 1,3,2
>       %  Voice = "1"   Voice = "3"    Voice = "2"
>       << { d2 e }   \\ { s4 b c2 } \\ { c8 b16 a b8 g~ 2 } >> |
>     }

Ces voix sont séparées de la voix principale, laquelle contient les notes en dehors de la construction `<< … >>` – que nous appellerons construction simultanée. Les liaisons, de prolongation ou non, ne peuvent relier des notes que si elles appartiennent à la même voix ; elles ne peuvent ni pénétrer une construction simultanée, ni en sortir. Inversement, les voix parallèles issues de constructions simultanées apparaissant sur une même portée appartiennent à la même voix. Les autres propriétés liées au contexte de voix s’appliquent tout au long des constructions simultanées. Reprenons notre exemple, en affectant une couleur et une allure différentes aux notes de chacune des voix. Vous noterez qu’un changement apporté à une voix ne se propage pas aux autres, et qu’il se reporte jusqu’au bout, et que la voix aux triangles bleus comporte une liaison de prolongation entre deux constructions.

>     \new Staff \relative {
>       % Main voice
>       c'16 d e f
>       <<  % Bar 1
>         { \voiceOneStyle g4 f e }
>       \\
>         { \voiceTwoStyle r8 e4 d c8~ }
>       >> |
>       <<  % Bar 2
>         % Voice 1 continues
>         { d2 e }
>       \\
>         % Voice 2 continues
>         { c8 b16 a b8 g~ 2 }
>       \\
>         { \voiceThreeStyle s4 b c2 }
>       >> |
>     }

Les commandes `\voiceXXXStyle` sont principalement dédiées à une utilisation pédagogique, comme l’est ce document. Elles modifient la couleur des hampes et ligatures et le style de tête des notes pour permettre une meilleure distinction entre les différentes voix. La première voix comporte des têtes en losange rouge, la deuxième en triangle bleu, la troisième en cercle barré vert, la quatrième (non utilisée ici) en croix magenta ; `\voiceNeutralStyle` (non utilisé ici) revient au style par défaut. Nous verrons plus tard comment créer de telles commandes. Voir Visibilité et couleur des objets et Utilisation de variables dans les retouches.

La polyphonie ne modifie en rien la relation entre les notes au sein d’un bloc `\relative`. Chaque note est calculée par rapport à celle qui la précède, ou bien par rapport à la première note de l’accord qui précède. Ainsi, dans

    \relative c' { noteA << <noteB noteC> \\ noteD >> noteE }

- `noteB` est relative à `noteA` ;
- `noteC` est relative à `noteB`, pas à `noteA` ;
- `noteD` est relative à `noteB`, pas à `noteA` ni `noteC` ;
- `noteE` est relative à `noteD`, pas à `noteA`.

Une méthode alternative, et qui peut simplifier les choses si les notes des différentes voix sont espacées, consiste à placer une commande `\relative` au début de chacune des voix :

    \relative { noteA … }
    <<
      \relative { <noteB noteC> … }
    \\
      \relative { noteD … }
    >>
    \relative { noteE … }

Pour finir, analysons le principe d’utilisation des voix dans une pièce complexe. Nous allons nous concentrer sur les deux premières mesures du second des Deux nocturnes, opus 32 de Chopin. Cet exemple nous servira à plusieurs reprises, y compris dans le chapitre suivant, pour illustrer certaines techniques de notation. Aussi, ne prêtez pas trop d’attention à ce qui pour l’instant pourrait vous paraître vraiment mystérieux dans le code, et intéressons-nous uniquement à ce qui concerne la musique et les voix – ce qui est plus compliqué sera décortiqué plus tard.

La direction des hampes sert souvent à indiquer dans la continuité deux lignes mélodiques simultanées. Ici, les hampes des notes les plus hautes vont vers le haut, et celles des notes plus basses vers le bas. C’est une première indication de ce que nous avons eu recours à plus d’une voix.

Mais le réel besoin de multiples voix se fait sentir dès lors que plusieurs notes qui débutent en même temps ont des durées différentes. C’est évident au troisième temps de la première mesure : le la bémol est une noire pointée, le fa une noire, et le ré bémol une blanche. On ne peut les grouper dans un accord, puisque toutes les notes composant un accord doivent être de même durée. On ne peut non plus les écrire séquentiellement, puisqu’elles débutent toutes au même instant. Ce fragment de mesure nécessite trois voix, et une bonne pratique voudrait que l’intégralité de la mesure soit sur trois voix, comme ci-dessous où nous avons une allure et une couleur différentes aux notes de chacune d’entre elles. Une fois de plus, nous reviendrons plus tard sur le code que vous ne comprendriez pas.

Essayons à présent de coder cette musique en partant de zéro. Comme nous le verrons, certaines difficultés vont se présenter. Partons de ce que nous avons appris : utilisons la construction `<< \\ >>` pour saisir la première mesure dans trois voix :

>     \new Staff \relative {
>       \key aes \major
>       <<
>         { c''2 aes4. bes8 } \\ { <ees, c>2 des } \\ { aes'2 f4 fes }
>       >> |
>       <c ees aes c>1 |
>     }

La direction des hampes est attribuée automatiquement : les voix impaires portent des hampes vers le haut, les voix paires des hampes vers le bas. Les hampes des voix 1 et 2 sont orientées comme il faut mais celles de la voix 3 devraient, dans le cas qui nous occupe, aller vers le bas. Nous pouvons corriger cela en sautant la voix 3 et en plaçant la musique dans la voix 4. Ceci pourrait s’obtenir à l’aide d’un `\\` supplémentaire, mais nous utiliserons plutôt la commande `\voices` qui, par ailleurs, nous permettrait de saisir les voix dans un autre ordre selon notre convenance :

>     \new Staff \relative {
>       \key aes \major
>       \voices 1,2,4   % Omit voice three
>       <<  % Voice one
>         { c''2 aes4. bes8 }
>       \\  % Voice two
>         { <ees, c>2 des }
>       \\  % Voice four
>         { aes'2 f4 fes }
>       >> |
>       <c ees aes c>1 |
>     }

Cette manipulation nous permet de régler la direction des hampes, mais le positionnement horizontal des notes n’est pas satisfaisant. LilyPond décale les notes des voix intermédiaires lorsque leur tête ou leur hampe viendrait à chevaucher celles des voix extrêmes. Bien entendu, ce n’est pas souhaitable dans le cas d’une partition pour piano. Dans d’autres situations, les décalages que LilyPond applique peuvent ne pas éviter certaines collisions. LilyPond met à notre disposition plusieurs moyens d’ajuster le positionnement horizontal des notes. Nous ne sommes pas encore tout à fait prêts pour voir comment corriger cela, aussi nous examinerons ce problème dans un autre chapitre (voir la propriété `force-hshift` dans Correction des collisions d’objets).

Note : Paroles et objets étendus (liaisons, soufflets, etc.) ne peuvent passer d’une voix à l’autre.

#### Voir aussi

Manuel de notation : Plusieurs voix.

#### GNU LilyPond – Manuel d’initiation v2.26.0 (stable-branch).

- 1 Installation
  - 1.1 Installation en mode graphique
  - 1.2 Installation en ligne de commande
- 2 Tutoriel
  - 2.1 Compilation d’un fichier
  - 2.2 Composition d’un fichier source
    - 2.2.1 Notation simple
      - Hauteurs
      - Durées et rythme
      - Silences
      - Métrique
      - Indication de tempo
      - Clefs
      - Tout ensemble
    - 2.2.2 Travail sur les fichiers d’entrée
  - 2.3 Gestion des erreurs
  - 2.4 Bien lire le manuel
    - 2.4.1 Matériel incomplet
    - 2.4.2 Exemples cliquables
    - 2.4.3 Vue d’ensemble des manuels
- 3 Bases de notation musicale
  - 3.1 Notation sur une seule portée
    - 3.1.1 Barre et contrôle de mesure
      - Barre de mesure
      - Contrôle de mesure
    - 3.1.2 Hauteurs et armure
      - Altérations
      - Armures
      - Attention aux armures et aux hauteurs
    - 3.1.3 Liaisons
      - Liaisons de prolongation
      - Liaisons d’articulation
      - Liaisons de phrasé
      - Attention aux types de liaison
    - 3.1.4 Articulations et nuances
      - Articulation
      - Doigté
      - Nuance
    - 3.1.5 Ajout de texte
    - 3.1.6 Barres de ligature automatiques et manuelles
    - 3.1.7 Commandes rythmiques avancées
      - Mesure incomplète
      - N-olet
      - Note d’ornement
  - 3.2 Notes simultanées
    - 3.2.1 Les expressions musicales en clair
      - Analogie avec les expressions mathématiques
      - Expressions musicales simultanées – plusieurs portées
      - Expressions musicales simultanées – une seule portée
    - 3.2.2 Plusieurs portées
    - 3.2.3 Regroupements de portées
    - 3.2.4 Combinaison de notes en accords
    - 3.2.5 Polyphonie sur une portée
  - 3.3 Chansons
    - 3.3.1 Écriture de chants simples
    - 3.3.2 Alignement des paroles sur une mélodie
    - 3.3.3 Paroles pour plusieurs portées
  - 3.4 Dernières précisions
    - 3.4.1 Organisation du code source avec des variables
    - 3.4.2 Ajout de titres
    - 3.4.3 Noms de note absolus
    - 3.4.4 Après le tutoriel
- 4 Concepts fondamentaux
  - 4.1 Organisation des fichiers LilyPond
    - 4.1.1 Introduction à la structure de fichier LilyPond
    - 4.1.2 La partition est une (unique) expression musicale composée
    - 4.1.3 Expressions musicales imbriquées
    - 4.1.4 Structuration de la saisie des notes
    - 4.1.5 Non-imbrication des crochets et liaisons
  - 4.2 Les voix contiennent la musique
    - 4.2.1 J’entends des voix
    - 4.2.2 Instanciation explicite des voix
    - 4.2.3 Voix et paroles
  - 4.3 Contextes et graveurs
    - 4.3.1 Tout savoir sur les contextes
    - 4.3.2 Création d’un contexte
    - 4.3.3 Tout savoir sur les graveurs
    - 4.3.4 Modification des propriétés d’un contexte
    - 4.3.5 Ajout et suppression de graveurs
  - 4.4 Extension des modèles
    - 4.4.1 Soprano et violoncelle
    - 4.4.2 Partition pour chœur à quatre voix mixtes
    - 4.4.3 Écriture d’une partition à partir de zéro
    - 4.4.4 Économie de saisie grâce aux identificateurs et fonctions
    - 4.4.5 Conducteurs et parties
- 5 Retouche de partition
  - 5.1 Retouches élémentaires
    - 5.1.1 Objets et interfaces
    - 5.1.2 Conventions de nommage des objets et propriétés
    - 5.1.3 Méthodes de retouche
      - La commande `\override`
      - La commande `\revert`
      - Le préfixe `\once`
      - Les commandes `\tweak` et `\offset`
      - Le préfixe `\single`
  - 5.2 Le manuel de référence des propriétés internes
    - 5.2.1 Propriétés des objets de rendu
    - 5.2.2 Propriétés listées par interface
    - 5.2.3 Types de propriétés
  - 5.3 Apparence des objets
    - 5.3.1 Visibilité et couleur des objets
      - La propriété `stencil`
      - La propriété `break-visibility`
      - La propriété `transparent`
      - La propriété `color`
    - 5.3.2 Taille des objets
    - 5.3.3 Longueur et épaisseur des objets
  - 5.4 Décalages et alignements
  - 5.5 Positionnement des objets
    - 5.5.1 Comportement automatique
    - 5.5.2 Objets inclus dans la portée
      - La propriété `direction`
      - Doigtés
    - 5.5.3 Objets hors de la portée
      - La propriété `outside-staff-priority`
      - La commande `\textLengthOn`
      - Positionnement des nuances
      - Dimensionnement des objets graphiques
  - 5.6 Espacement vertical
  - 5.7 Collisions d’objets
    - 5.7.1 Déplacement d’objets
    - 5.7.2 Correction des collisions d’objets
      - La propriété `padding`
      - La propriété `right-padding`
      - La propriété `staff-padding`
      - La propriété `self-alignment-X`
      - La propriété `staff-position`
      - La propriété `extra-offset`
      - La propriété `positions`
      - La propriété `force-hshift`
    - 5.7.3 Exemple concret
  - 5.8 Autres retouches
    - 5.8.1 Autres utilisations des retouches
      - Liaison entre plusieurs voix
      - Rendu MIDI d’un point d’orgue
    - 5.8.2 Utilisation de variables dans les retouches
    - 5.8.3 Feuilles de style
    - 5.8.4 Autres sources de documentation
    - 5.8.5 Retouches avancées avec Scheme
- Appendix A Modèles
  - A.1 Gabarits préprogrammés
    - A.1.1 Gabarit pour chœur à quatre voix mixtes
    - A.1.2 Gabarit pour double chœur à quatre voix mixtes
  - A.2 Modèles pour portée unique
    - A.2.1 Notes seules
    - A.2.2 Notes et paroles
    - A.2.3 Notes et accords
    - A.2.4 Notes, paroles et accords
  - A.3 Modèles pour piano
    - A.3.1 Piano seul
    - A.3.2 Chant et accompagnement
    - A.3.3 Piano et paroles entre les portées
  - A.4 Modèles pour quatuor à cordes
    - A.4.1 Quatuor à cordes simple
    - A.4.2 Parties pour quatuor à cordes
  - A.5 Modèles pour ensemble vocal
    - A.5.1 Partition pour chœur SATB
    - A.5.2 Partition pour chœur SATB avec réduction pour piano
    - A.5.3 Partition pour chœur SATB avec alignement des contextes
    - A.5.4 Chœur à quatre voix mixtes sur quatre portées
    - A.5.5 Couplet pour solo et refrain à deux voix
    - A.5.6 Hymnes et cantiques
    - A.5.7 Psalmodie
  - A.6 Orchestre
    - A.6.1 Orchestre, chœur et piano
  - A.7 Exemples de notation ancienne
    - A.7.1 Transcription de musique mensurale
    - A.7.2 Transcription du grégorien
  - A.8 Autres modèles
    - A.8.1 Symboles de jazz
- Appendix B GNU Free Documentation License
- Appendix C Index des commandes et concepts