GNU LilyPond – Manuel de notation : 1.5.2 Multiple voices
Description: GNU LilyPond – Manuel de notation: 1.5.2 Multiple voices
Keywords: GNU LilyPond – Manuel de notation: 1.5.2 Multiple voices

### 1.5.2 Multiple voices

#### Basic polyphony

La manière la plus facile d’entrer des fragments avec plus d’une voix sur une portée est d’entrer chaque voix comme une suite de notes — entre accolades : `{...}` — puis de les combiner simultanément, en séparant les voix avec `\\`

>     \new Staff \relative c' {
>       c16 d e f
>       <<
>         { g4 f e | d2 e2 } \\
>         { r8 e4 d c8 ~ | c b16 a b8 g ~ g2 } \\
>         { s2. | s4 b4 c2 }
>       >>
>     }

Le séparateur permet aux contextes Voice1 d’être identifiés. Les contextes de voix portent les noms `"1"`, `"2"`, etc. Dans chacun de ces contextes, la direction verticale des liaisons, hampes, etc. est réglée de manière appropriée.

Ces voix sont toutes distinctes de la voix qui contient les notes en dehors de la construction `<< \\ >>`. On doit le prendre en compte lorsqu’on fait des changements au niveau des voix. Cela veut aussi dire que les liaisons de prolongation et d’articulation ne peuvent ni entrer ni sortir de la construction `<< \\ >>`. À l’inverse, des voix parallèles venant de constructions `<< \\ >>` séparées sur la même portée sont dans les mêmes voix. Voici le même exemple, avec des couleurs et têtes de note différentes pour chaque voix. Notez que le changement de style de tête de note n’affecte pas l’intérieur des constructions `<< \\ >>`. Aussi, le changement à la deuxième voix dans la première construction `<< \\ >>` l’affecte aussi dans la deuxième construction `<< \\ >>`, et la voix est liée entre les deux constructions.

>     \new Staff \relative c' {
>       \override NoteHead #'style = #'cross
>       \override NoteHead #'color = #red
>       c16 d e f
>       <<
>         { g4 f e } \\
>         { \override NoteHead #'style = #'triangle
>           \override NoteHead #'color = #blue
>         r8 e4 d c8 ~ }
>       >> |
>       <<
>         { d2 e2 } \\
>         { c8 b16 a b8 g ~ g2 } \\
>         { \override NoteHead #'style = #'slash
>           \override NoteHead #'color = #green
>           s4 b4 c2 }
>       >>
>     }

La polyphonie ne change pas la relation des notes dans un bloc `\relative { }`. Chaque note est calculée en fonction de la note qui la précède immédiatement, sans tenir compte des différentes voix.

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

`noteC` est calculé relativement à `noteB`, non pas à `noteA` ; `noteD` est calculé relativement à `noteC`, non pas à `noteB` ou `noteA`.

#### Collision resolution

D’ordinaire, les têtes de notes pointées et non-pointées ne sont pas fusionnées, mais lorsque la propriété `merge-differently-dotted` de l’objet NoteCollision est définie, elles se trouvent fusionnées :

>     \new Voice << {
>       g8 g8
>       \override Staff.NoteCollision
>         #'merge-differently-dotted = ##t
>       g8 g8
>     } \\ { g8.[ f16] g8.[ f16] } >>

De même, vous pouvez fusionner une tête de blanche avec une tête de croche, en définissant `merge-differently-headed`

>     \new Voice << {
>       c8 c4.
>       \override Staff.NoteCollision
>         #'merge-differently-headed = ##t
>     c8 c4. } \\ { c2 c2 } >>

LilyPond décale aussi verticalement les silences à l’opposé des hampes, par exemple

>     \new Voice << c''4 \\ r4 >>

Lorsque trois notes ou plus s’agglutinent dans un même empilement, `merge-differently-headed` ne peut mener à bien la fusion des deux notes qui devraient l’être. Pour obtenir une fusion optimale, appliquez un décalage (`\shift`) à la note qui ne devrait pas s’empiler. Dans la première mesure de l’exemple suivant, `merge-differently-headed` ne fonctionne pas — la tête de la blanche est noire. Dans la seconde mesure, `\shiftOn` s’applique pour sortir le sol (`g`) de l’alignement, et `merge-differently-headed` fonctionne correctement.

>     \override Staff.NoteCollision #'merge-differently-headed = ##t
>     <<
>       { d=''2 g2 } \\
>       { \oneVoice d=''8 c8 r4 e,8 c'8 r4 } \\
>       { \voiceFour e,,2 e'2}
>     >>
>     <<
>       { d'=''2 \shiftOn g2 } \\
>       { \oneVoice d=''8 c8 r4 e,8 c'8 r4 } \\
>       { \voiceFour e,,2 e'2}
>     >>

#### Predefined commands

`\oneVoice`, `\voiceOne`, `\voiceTwo`, `\voiceThree`, `\voiceFour`.

`\shiftOn`, `\shiftOnn`, `\shiftOnnn`, `\shiftOff` : toutes ces commandes précisent le degré de décalage des notes de la voix courante. Les voix externes — habituellement, les voix une et deux — ont `\shiftOff`, alors que les voix internes — trois et quatre — ont `\shiftOn`. `\shiftOnn` et `\shiftOnnn` sont des niveaux supplémentaires de décalage.

Quand LilyPond est dépassé, la propriété `force-hshift` de l’objet NoteColumn, et des silences à hauteur déterminée, peuvent s’avérer utiles pour dicter au programme les choix de placement.

>     \relative <<
>     {
>       <d g>
>       <d g>
>     } \\ {
>       <b f'>
>       \once \override NoteColumn #'force-hshift = #1.7
>       <b f'>
>     } >>

#### See also

Référence du programme : les objets appropriés pour résoudre les collisions sont NoteCollision et RestCollision.

#### Known issues and warnings

Quand `merge-differently-headed` est utilisé avec une croche ou une valeur plus courte à hampe vers le haut, et une blanche hampe vers le bas, la croche se retrouve à la mauvaise place.

Il n’y a aucune prise en charge des agrégats dans lesquels une même note apparaît avec différentes altérations. Il est conseillé d’avoir recours aux enharmoniques, ou d’utiliser la notation spécifique de cluster — voir Clusters.

#### Automatic part combining

Le regroupement automatique de parties vous permet de fusionner deux pupitres sur une seule portée, ceci dans le but de créer des partitions d’orchestre. Lorsque les deux parties sont identiques sur une certaine durée, une seule s’affiche. Lorsqu’elles diffèrent, deux voix séparées apparaissent, avec des hampes dont la direction est gérée automatiquement. Vous pouvez aussi identifier et faire ressortir les solos et parties a due.

Voici la syntaxe qui permet de combiner des parties :

>     \partcombine musicexpr1 musicexpr2

L’exemple suivant illustre les fonctionnalités élémentaires du combinateur de parties : positionner les parties sur une portée, gérer la direction des hampes et de la polyphonie.

>     \new Staff \partcombine
>       \relative g' { g g a( b) c c r r }
>       \relative g' { g g r4 r e e g g }

Le premier `sol` n’apparaît qu’une seule fois, alors qu’il a été spécifié deux fois (une fois dans chacune des parties). La direction des hampes et des liaisons de tenue ou de phrasé est gérée automatiquement, selon qu’il s’agisse d’un solo ou d’un unisson. La première partie, dont le contexte s’appellera `one`, aura toujours ses hampes dirigées vers le haut et sera notée ‘Solo’, alors que la deuxième, appelée `two`, aura des hampes vers le bas et sera notée ‘Solo II’.

Si votre intention n’est que de fusionner les parties, sans ajouter de texte, assignez faux à la propriété `printPartCombineTexts`.

>     \new Staff <<
>       \set Staff.printPartCombineTexts = ##f
>       \partcombine
>         \relative g' { g a( b) r }
>         \relative g' { g r4 r f }
>     >>

Le texte imprimé pour les sections solo ou à l’unisson se règle par les propriétés `soloText`, `soloIIText`, et `aDueText`.

>     \new Staff <<
>       \set Score.soloText = #"ichi"
>       \set Score.soloIIText = #"ni"
>       \set Score.aDueText = #"tachi"
>       \partcombine
>         \relative g' { g4 g a( b) r }
>         \relative g' { g4 g r r f }
>     >>

LilyPond interprète dans un contexte Voice les arguments fournis à `\partcombine`. Si vous travaillez avec des octaves relatives, spécifiez `\relative` dans chacune des expressions musicales, comme ceci :

>     \partcombine
>       \relative … musicexpr1
>       \relative … musicexpr2

Une section `\relative` en dehors de `\partcombine` sera sans effet sur les hauteurs de musicexpr1 et musicexpr2.

#### See also

Référence du programme : PartCombineMusic.

#### Known issues and warnings

Lorsque `printPartCombineTexts` est actif et que les deux voix jouent souvent les mêmes notes, le combinateur peut afficher `a2` plus d’une fois par mesure.

`\partcombine` ne peut s’inscrire dans un bloc `\times`.

`\partcombine` ne peut s’inscrire dans un bloc `\relative`.

En interne, `\partcombine` interprète les deux arguments en tant que `Voice`s, dénommées `one` et `two`, puis décide de quand les parties seront fusionnées. Par conséquent, si les arguments changent pour d’autres noms de contexte Voice, les événements qu’ils contiendraient seront ignorés.

#### Writing music in parallel

On peut écrire plusieurs voix de façon entremêlée :

>     \parallelMusic #'(voiceA voiceB) {
>       r8     g'16[ c''] e''[ g' c'' e''] r8     g'16[ c''] e''[ g' c'' e''] |
>       c'2                                c'2                                |
>       r8     a'16[ d''] f''[ a' d'' f''] r8     a'16[ d''] f''[ a' d'' f''] |
>       c'2                                c'2                                |
>     }
>     \new StaffGroup <<
>       \new Staff \new Voice \voiceA
>       \new Staff \new Voice \voiceB
>     >>

Ceci fonctionne bien avec la musique pour piano :

>     music = {
>       \key c \major
>       \time 4/4
>       \parallelMusic #'(voiceA voiceB voiceC voiceD) {
>         % Bar 1
>         r8  g'16[ c''] e''[ g' c'' e''] r8  g'16[ c''] e''[ g' c''
>     e''] |
>         c'2                                 c'2 |
>         r8  a16[ d'] f'[ a d' f']       r8  a16[ d'] f'[ a d' f'] |
>         c2                                  c2 |

>         % Bar 2
>         a'8 b'      c'' d''    e'' f''    g'' a'' |
>         d'4         d'         d'         d' |
>         c16 d e f   d e f g    e f g a    f g a b |
>         a,4         a,4        a,4        a,4 |

>         % Bar 3 ...
>       }
>     }

>     \score {
>       \new PianoStaff <<
>         \music
>         \new Staff <<
>           \voiceA \\
>           \voiceB
>         >>
>         \new Staff {
>           \clef bass
>           <<
>             \voiceC \\
>             \voiceD
>           >>
>         }
>       >>
>     }

### Notes de bas de page

[1] Ces voix polyphoniques sont parfois appelées « couches » ou « calques » dans d’autres logiciels de notation.

Other languages: English, español, deutsch.

#### Manuel de notation