5.1.6 Définition de nouveaux contextes

Les contextes tels que Staff ou Voice sont faits de briques de constructions empilées. En combinant divers graveurs, il est possible de créer de nouveaux types de contextes.

Dans l’exemple suivant, on construit, de zéro, un nouveau contexte très semblable à Voice, mais qui n’imprime que des têtes de notes en forme de barres obliques au centre de la portée. Un tel contexte, par exemple, peut servir à indiquer un passage improvisé dans un morceau de jazz.

[image of music]

On a rassemblé les réglages dans un bloc \context, lui-même dans le bloc \layout :

\layout {
  \context {
    …
  }
}

En lieu et place des points (…), voici les éléments à saisir :

Récapitulons – on se retrouve avec le bloc suivant :

\context {
  \name ImproVoice
  \type "Engraver_group"
  \consists "Note_heads_engraver"
  \consists "Text_engraver"
  \consists Pitch_squash_engraver
  squashedPosition = #0
  \override NoteHead #'style = #'slash
  \override Stem #'transparent = ##t
  \alias Voice
}

Ce n’est pas tout. En effet, on veut intégrer le nouveau contexte ImproVoice dans la hiérarchie des contextes. Tout comme le contexte Voice, sa place est au sein du contexte Staff. Nous allons donc modifier le contexte Staff, au moyen de la commande \accepts :

\context {
  \Staff
  \accepts ImproVoice
}

Le contraire de \accepts est \denies, qui est parfois utile lorsque l’on recycle des définitions de contextes déjà existantes.

Enfin, tout cela doit prendre place dans le bloc \layout, comme suit :

\layout {
  \context {
    \name ImproVoice
    …
  }
  \context {
    \Staff
    \accepts "ImproVoice"
  }
}

On peut alors saisir la musique, comme dans l’exemple plus haut :

\relative c'' {
  a4 d8 bes8
  \new ImproVoice {
    c4^"ad lib" c
    c4 c^"dévêtez-vous"
    c c_"tout en jouant :)"
  }
  a1
}

Autres langues : English, español.

Manuel de notation