Suivant : Alignement des contextes, Précédent : Modification des réglages par défaut d’un contexte, Haut : Contextes d’interprétation
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.
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 :
\name
à notre nouveau contexte :
\name ImproVoice
Voice
, nous souhaitons que toutes les
commandes associées au Voice
déjà existant, restent valables. D'où nécessité
de la commande \alias
, qui va l'associer au contexte Voice
:
\alias Voice
\consists Note_heads_engraver \consists Text_engraver
\consists Pitch_squash_engraver squashedPosition = #0
Le graveur Pitch_squash_engraver intercepte les notes créées par
Note_heads_engraver, et les ‘écrase’ pour qu'elles aient toutes la
même position verticale, définie par squashedPosition
: ici il s'agit de la
valeur 0
, c'est-à-dire la ligne du milieu.
\override NoteHead #'style = #'slash \override Stem #'transparent = ##t
\type
: il s'agit de
Engraver_group
,
\type "Engraver_group"
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 }
Cette page documente LilyPond-2.11.58 (branche de développement).
Rapportez toute anomalie en français à lilypond-user-fr@gnu.org ou en anglais à http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs
Vos suggestions à propos de la documentation sont les bienvenues.