1.5.2 Plusieurs voix


Polyphonie basique

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

[image of music]

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

[image of music]

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.


Résolution des collisions

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

[image of music]

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

[image of music]

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

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

[image of music]

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

[image of music]

Commandes prédéfinies

\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'>
} >>

[image of music]

Voir aussi

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

Problèmes connus et avertissements

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.


Regroupement automatique de parties

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 }

[image of music]

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

[image of music]

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

[image of music]

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.

Voir aussi

Référence du programme : PartCombineMusic.

Problèmes connus et avertissements

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 Voices, 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.


Saisie de musique en parallèle

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

[image of music]

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

[image of music]


Notes de bas de page

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


Autres langues : English, español, deutsch.

Manuel de notation