1.6.2 Modification de portées individuelles

Cette section explique le réglage de la gravure de chaque portée, comme la taille de portée ou le nombre de lignes ; sont aussi décrits la suspension et la reprise de portées, ainsi que les portées d’ossia.


Symbole de la portée

Les commandes \stopStaff et \startStaff permettent respectivement de clôturer et (re)démarrer une portée n’importe où dans une partition.

\relative {
  \stopStaff f''4 d \startStaff g, e
  f'4 d \stopStaff g, e
  f'4 d \startStaff g, e
}

[image of music]

Commandes prédéfinies

\startStaff, \stopStaff.

Les notes, nuances, etc. sont regroupées dans un assemblage de lignes horizontales, que l’on nomme la portée (en anglais staff, et staves au pluriel). Dans LilyPond, ces lignes sont dessinées au moyen d’un objet graphique (grob) à part entière, nommé StaffSymbol – symbole de portée. Modifier les propriétés d’un StaffSymbol changera l’apparence de la portée, dès lors qu’elles auront été définies avant de créer la portée en question.

Vous pouvez modifier le nombre de lignes d’une portée :

\relative {
  f''4 d \stopStaff
  \override Staff.StaffSymbol.line-count = #2
  \startStaff g, e |

  f'4 d \stopStaff
  \revert Staff.StaffSymbol.line-count
  \startStaff g, e |
}

[image of music]

Le positionnement de chacune des lignes de la portée est modifiable. Une liste de nombres détermine le positionnement de chaque ligne. Le 0 correspond à la ligne médiane d’une portée habituelle, pour laquelle la liste est donc (-4 -2 0 2 4). Une ligne sera donc imprimée pour chaque valeur exprimée ; le nombre de lignes, ainsi que leur position dans la portée, peut donc se modifier à l’aide d’une seule commande. C’est ainsi que la propriété line-count est ignorée dès lors qu’est activée line-positions

\relative {
  f''4 d \stopStaff
  \override Staff.StaffSymbol.line-positions = #'(1 3 5 -1 -3)
  \startStaff g, e |
  f'4 d \stopStaff
  \override Staff.StaffSymbol.line-positions = #'(8 6.5 -6 -8 -0.5)
  \startStaff g, e |
}

[image of music]

Afin de préserver l’orientation habituelle des hampes – ascendantes dans la partie inférieure de la portée, descendantes dans la partie supérieure – la ligne (ou l’interligne) centrale de la portée personnalisée devra être en phase avec avec la ligne médiane d’une portée classique (0). La position de la clef et celle du do médium demanderont parfois un ajustement afin d’être en phase avec cette nouvelle portée. Pour plus d’explications, reportez-vous aux exemples du chapitre Clefs.

Lorsque vous modifierez l’épaisseur des lignes, gardez à l’esprit que les lignes supplémentaires et les hampes seront aussi modifiées.

\new Staff \with {
  \override StaffSymbol.thickness = #3
}
{ e4 d c b }

[image of music]

L’épaisseur des lignes supplémentaires (ledger lines) peut être déterminée indépendamment des lignes de la portée.

\new Staff \with {
  \override StaffSymbol.thickness = #2
  \override StaffSymbol.ledger-line-thickness = #'(0.5 . 0.4)
} \relative {
  f'''4 a, a,, f
}

[image of music]

La première valeur est multipliée par l’épaisseur de ligne de portée, la seconde par l’espace d’interligne ; ces deux valeurs sont alors combinées pour donner la nouvelle épaisseur des lignes supplémentaires.

L’emplacement des lignes supplémentaires est réglable :

\new Staff \with {
  \override StaffSymbol.ledger-positions = #'(-3 -2 -1 2 5 6)
} \relative {
  f'''4 a, a,, f
}

[image of music]

Vous pouvez faire apparaître des lignes supplémentaires additionnelles au-dessus ou en dessous des têtes de note selon leur positionnement relatif aux autres notes, qu’elles aient ou non elles-mêmes des lignes supplémentaires.

\new Staff \with {
  \override StaffSymbol.ledger-extra = #4
} \relative {
  f'''4 a, d, f,
}

[image of music]

Des lignes supplémentaires peuvent apparaître y compris au sein d’une portée, notamment lorsque vous l’avez personnalisée. L’exemple suivant illustre deux cas de figure quant au positionnement des lignes supplémentaires selon que la propriété legder-position est définie explicitement ou non. La présence du \stopStaff est ici rendue nécessaire pour annuler les effets de la commande \override qui s’applique à l’intégralité du StaffSymbol.

\override Staff.StaffSymbol.line-positions =   #'(-8 0 2 4)
d4 e f g
\stopStaff
\startStaff
\override Staff.StaffSymbol.ledger-positions = #'(-8 -6 (-4 -2) 0)
d4 e f g

[image of music]

Modifier l’équidistance des lignes de la portée affectera aussi les lignes supplémentaires.

\new Staff \with {
  \override StaffSymbol.staff-space = #1.5
} \relative {
  f'''4 d, g, e,
}

[image of music]

La largeur d’une portée, exprimée en espace de portée, peut être figée. L’espacement des objets inclus dans cette portée ne sera en rien affecté par ce réglage.

\new Staff \with {
  \override StaffSymbol.width = #23
}
\relative { a4 e' f b | d1 }

[image of music]

Morceaux choisis

Empâtement de certaines lignes d’une portée

Vous pourriez avoir envie, dans un but pédagogique, de rendre certaines lignes d’une portée plus épaisses que les autres, comme la ligne médiane, ou bien pour mettre en exergue la ligne portant la clef de sol. Il suffit pour cela d’ajouter une ligne qui sera accolée à celle qui doit être mise en évidence, grâce à la propriété line-positions de l’objet StaffSymbol.

{
  \override Staff.StaffSymbol.line-positions =
    #'(-4 -2 -0.2 0 0.2 2 4)
  d'4 e' f' g'
}

[image of music]

Voir aussi

Glossaire musicologique : ligne, ligne supplémentaire, portée.

Manuel de notation : Clefs.

Morceaux choisis : Notation sur la portée.

Référence des propriétés internes : StaffSymbol, staff-symbol-interface.


Portées d’ossia

Une portée d’ossia – ou de variante – s’obtient en créant, à l’endroit approprié, une nouvelle portée simultanée :

\new Staff \relative {
  c''4 b d c
  <<
    { c4 b d c }
    \new Staff { e4 d f e }
  >>
  c4 b c2
}

[image of music]

L’exemple ci-dessus n’est probablement pas ce qui vous conviendra le plus. Afin que cette ossia se place au-dessus de la portée à laquelle elle se réfère, étant par ailleurs dépourvue de métrique et de clef, et d’une taille légèrement inférieure, vous devrez avoir recours à quelques retouches. Le manuel d’initiation aborde une technique particulière pour obtenir ce résultat, au chapitre Expressions musicales imbriquées.

L’exemple qui suit utilise, pour aligner la portée d’ossia, la propriété alignAboveContext. Cette méthode est tout à fait appropriée lorsqu’il y a un nombre restreint d’ossias.

\new Staff = "main" \relative {
  c''4 b d c
  <<
    { c4 b d c }

    \new Staff \with {
      \remove Time_signature_engraver
      alignAboveContext = "main"
      \magnifyStaff #2/3
      firstClef = ##f
    }
    { e4 d f e }
  >>
  c4 b c2
}

[image of music]

Dans le cas où de nombreux et courts fragments d’ossia affecteraient une même portée, il est judicieux de créer un contexte Staff vide auquel sera attribué un identifiant. Il suffira alors, pour entamer un fragment d’ossia, de « faire appel » à ce contexte grâce aux commandes \startStaff et \stopStaff. Vous vous rendrez compte à l’utilisation des avantages que procure cette façon de procéder, bien plus que dans l’exemple suivant.

<<
  \new Staff = "ossia" \with {
    \remove Time_signature_engraver
    \hide Clef
    \magnifyStaff #2/3
  }
  { \stopStaff s1*6 }

  \new Staff \relative {
    c'4 b c2
    <<
      { e4 f e2 }
      \context Staff = "ossia" {
        \startStaff e4 g8 f e2 \stopStaff
      }
    >>
    g4 a g2 \break
    c4 b c2
    <<
      { g4 a g2 }
      \context Staff = "ossia" {
        \startStaff g4 e8 f g2 \stopStaff
      }
    >>
    e4 d c2
  }
>>

[image of music]

Vous pourriez aussi recourir à la commande \RemoveAllEmptyStaves pour créer votre portée d’ossia. Cependant, cette méthode reste limitée à l’apparition de ces ossias en début de ligne. Pour plus d’information au sujet de la commande \RemoveAllEmptyStaves, reportez-vous au chapitre Masquage de portées.

<<
  \new Staff = "ossia" \with {
    \remove Time_signature_engraver
    \hide Clef
    \magnifyStaff #2/3
    \RemoveAllEmptyStaves
  } \relative {
    R1*3
    c''4 e8 d c2
  }
  \new Staff \relative {
    c'4 b c2
    e4 f e2
    g4 a g2 \break
    c4 b c2
    g4 a g2
    e4 d c2
  }
>>

[image of music]

Morceaux choisis

Positionnement d’une ossia et des paroles

Cet exemple illustre la manière de positionner une portée d’ossia et des paroles à l’aide des propriétés de contexte alignBelowContext et alignAboveContext.

\paper {
  ragged-right = ##t
}

\relative c' <<
  \new Staff = "1" { c4 c s2 }
  \new Staff = "2" { c4 c s2 }
  \new Staff = "3" { c4 c s2 }
  { \skip 2
    <<
      \lyrics {
        \set alignBelowContext = #"1"
        lyrics4 below
      }
      \new Staff \with {
        alignAboveContext = #"3"
        fontSize = #-2
        \override StaffSymbol.staff-space = #(magstep -2)
        \remove "Time_signature_engraver"
      } {
        \tuplet 6/4 {
          \override TextScript.padding = #3
          c8[^"ossia above" d e d e f]
        }
      }
    >>
  }
>>

[image of music]

Voir aussi

Glossaire musicologique : ossia, portée, Frenched staff.

Manuel d’initiation : Expressions musicales imbriquées, Longueur et épaisseur des objets, Taille des objets.

Manuel de notation : Masquage de portées.

Morceaux choisis : Notation sur la portée.

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


Masquage de portées

Désactiver le graveur Staff_symbol_engraver dans un contexte Staff permet de masquer des lignes. La commande \stopStaff aura le même effet.

\new Staff \with {
  \remove Staff_symbol_engraver
}
\relative { a''8 f e16 d c b a2 }

[image of music]

L’instruction \RemoveEmptyStaves placée dans un bloc \layout ou dans une clause \with affectant une portée particulière, aura pour effet de masquer toute portée qui ne contient rien. Dans les partitions d’orchestre, les portées qui n’ont que des silences sont habituellement masquées afin de gagner de la place. Ce style d’édition s’appelle en anglais « Frenched Score ». Cette fonctionnalité masque et supprime toutes les portées vides d’une partition, hormis celles du premier système. Le premier système sera lui aussi concerné dès lors que sera utilisée l’instruction \RemoveAllEmptyStaves.

\layout {
  \context {
    \Staff
    \RemoveEmptyStaves
  }
}

\relative <<
  \new Staff {
    e'4 f g a \break
    b1 \break
    a4 b c2
  }
  \new Staff {
    c,4 d e f \break
    R1 \break
    f4 g c,2
  }
>>

[image of music]

Une portée est considérée comme vide dès lors qu’elle ne contient que des silences multimesures, des silences visibles ou invisibles (ou d’espacement – les \skip) ou bien une combinaison de ces éléments. Tous les autres objets musicaux, ceux qui font qu’une portée ne sera pas considérée vide, sont répertoriés dans la propriété de contexte keepAliveInterfaces telle que définie dans le fichier ‘ly/engraver-init.ly’.

\RemoveEmptyStaves et \RemoveAllEmptyStaves sont tous deux des racourcis prédéfinis qui déterminent les propriétés telles que remove-empty et remove-first, attachées à l’objet VerticalAxisGroup, comme indiqué dans Identificateurs de modification de contexte.

Le Keep_alive_together_engraver permet de masquer l’intégralité d’un regroupement de portées plutôt que des portées individuelles. Il est normalement attaché au contexte PianoStaff : un système pianistique sera masqué uniquement dans le cas où les deux portées qui le composent sont vides. De la même manière, il est d’usage pour un conducteur d’orchestre de masquer les regroupements de portées plutôt que de manière individuelle. Ceci s’obtient en ajoutant le Keep_alive_together_engraver au regroupement de portées considéré, comme indiqué dans Modification des greffons de contexte – voir Regroupement de portées pour leur dénomination.

\layout {
  \context {
    \StaffGroup
    \RemoveEmptyStaves
    \consists Keep_alive_together_engraver
  }
}

Dans l’exemple suivant, les portées des instruments à vent sont absentes du deuxième système, alors que celle de la contrebasse demeure présente puisqu’elle est rattachée au regroupement des cordes qui, elles, continuent de jouer.

[image of music]

En interne, le Keep_alive_together_engraver recourt à la propriété remove-layer du VerticalAxisGroup d’une portée pour décider de son impression lorsqu’elle est considérée vide. Cette propriété peut aussi se définir manuellement, auquel cas elle agit sous forme d’index de priorité : des valeurs proches de zéro seront prioritaires sur celles plus élevées, ce qui aura pour conséquence de masquer d’abord les portées dont le remove-layer est plus grand.

Ceci se révèle tout particulièrement utile pour une « division » de portée, lorsque plusieurs parties indépendantes – voir Écriture de parties séparées – doivent momentanément se répartir sur plusieurs portées. Dans l’exemple qui suit, deux parties sont réparties sur trois portées ; ces trois portées n’apparaissent toutefois jamais simultanément :

De telles substitutions ne s’appliquent pas seulement aux notes, accords ou autres éléments musicaux intervenant dès après le nouveau réglage, mais à l’intégralité du système où il est mentionné.

\layout {
  short-indent = 2\cm
  indent = 3\cm
  \context {
    \Staff
    keepAliveInterfaces = #'()
  }
}

violI = {
  \repeat unfold 24 { d'4 }
  \once \unset Staff.keepAliveInterfaces
  <d' g''>2
  \repeat unfold 14 { d'4 }
  \bar "|."
}

violII = {
  \repeat unfold 24 { g4 }
  <g d'>2
  \repeat unfold 14 { g4 }
  \bar "|."
}

\new StaffGroup \with { \consists Keep_alive_together_engraver } <<
  \new Staff \with {
    instrumentName = "Violins"
    shortInstrumentName = "V I & II"
    \override VerticalAxisGroup.remove-layer = 2
  } <<  \violI \\ \violII  >>
  \new Staff \with {
    instrumentName = "Violin I"
    shortInstrumentName = "V I"
    \RemoveAllEmptyStaves
    \override VerticalAxisGroup.remove-layer = 1
  } \violI
  \new Staff \with {
    instrumentName = "Violin II"
    shortInstrumentName = "V II"
    \RemoveAllEmptyStaves
    \override VerticalAxisGroup.remove-layer = 1
  } \violII
>>

[image of music]

\RemoveAllEmptyStaves permet aussi de gérer des fragments d’ossia attachés à une portée. Pour plus de détails, voir Portées d’ossia.

Commandes prédéfinies

\RemoveEmptyStaves, \RemoveAllEmptyStaves,

Voir aussi

Glossaire musicologique : Frenched staff.

Manuel d’initiation : Visibilité et couleur des objets.

Manuel de notation : Dictée à trous, Identificateurs de modification de contexte, Modification des greffons de contexte, Modification des réglages par défaut d’un contexte, Portées d’ossia, Regroupement de portées, Silences invisibles, Symbole de la portée, Visibilité des objets.

Fichiers d’initialisation : ‘ly/engraver-init.ly’.

Morceaux choisis : Notation sur la portée.

Référence des propriétés internes : Axis_group_engraver, ChordNames, FiguredBass, Keep_alive_together_engraver. Lyrics, Staff, Staff_symbol_engraver, VerticalAxisGroup.

Problèmes connus et avertissements

Supprimer le Staff_symbol_engraver aura pour effet de masquer les barres de mesure. Forcer leur visibilité peut entraîner des problèmes de formatage. En pareil cas il vaut mieux, au lieu de supprimer le graveur, recourir aux dérogations suivantes :

\omit StaffSymbol
\override NoteHead.no-ledgers = ##t

En ce qui concerne les désagréments et messages liés à l’utilisation de l’instruction \RemoveEmptyStaves, consultez Modification des réglages par défaut d’un contexte.


LilyPond — Manuel de notation v2.23.10 (branche de développement).