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 – see 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 – see É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.


GNU LilyPond – Manuel de notation v2.25.20 (branche de développement).