[ < ] [ > ]   [ << ] [Plus haut] [ >> ]         [Racine] [Table des matières] [Index] [ ? ]

5.4 Propriétés et contextes utiles

@translationof Useful concepts and properties


[ < ] [ > ]   [ << ] [Plus haut] [ >> ]         [Racine] [Table des matières] [Index] [ ? ]

5.4.1 Modes de saisie

@translationof Input modes

La manière dont sera interprétée la notation contenue dans un fichier source dépend du mode affecté à la saisie. Il existe, en règle générale, deux façons de spécifier le mode : une forme développée – par exemple \chordmode – et une forme abrégée – par exemple \chords. La forme développée s’utilise particulièrement lorsque la saisie fait l’objet d’une variable ou se trouve dans un contexte explicitement créé. La forme abrégée crée implicitement un contexte du type adéquate à la saisie et la lui transmet directement. Cette forme abrégée est tout à fait indiquée aux situations simples pour lesquelles nul n’est besoin de créer explicitement le contexte qui prendra en charge la saisie.

Mode accords

Ce mode, activé par la commande \chordmode, permet d’interpréter les saisies comme étant des accords, qui seront imprimés sous forme de notes sur une portée – voir Notation des accords. La musique entrée en mode accords est rendue soit sous forme d’accords sur une portée pour un contexte Staff, soit sous forme de noms d’accord pour un contexte ChordNames ou sous forme de diagrammes pour un contexte FretBoards.

Le mode accords s’active aussi par la commande \chords, qui créera implicitement un nouveau contexte ChordNames. Le code saisi selon la syntaxe dévolue aux accords, sera interprété comme étant des accords nommés et sera alors rendu sous forme nominale dans ce contexte ChordNames – voir Impression des noms d’accord.

Mode percussions

Ce mode, activé par la commande \drummode, permet d’interpréter les saisies comme étant de la notation pour percussions – voir Notation de base pour percussions. Lorsqu’elle est entrée en mode percussions, la musique est rendue dans un contexte DrumStaff.

Le mode percussions s’active aussi par la commande \drums, qui créera implicitement un nouveau contexte DrumStaff. Le code saisi selon la syntaxe dévolue aux percussions, sera interprété comme étant de la notation pour percussions et alors rendu sous forme symbolique sur une portée de percussions – voir Notation de base pour percussions.

Mode figures

Ce mode, activé par la commande \figuremode, permet d’interpréter les saisies comme étant de la basse chiffrée (ou figurée) – voir Saisie de la basse chiffrée. Lorsqu’elle est entrée en mode figures, la musique est rendue sous forme de basse figurée dans un contexte FiguredBass ou dans un contexte Staff.

Le mode figures s’active aussi par la commande \figures, qui créera implicitement un nouveau contexte FiguredBass. Le code, saisi selon la syntaxe dévolue à la basse chiffrée, sera interprété comme étant des indication de basse chiffrée et sera alors rendu sous forme symbolique dans le contexte FiguredBass – voir Introduction à la basse chiffrée.

Modes frets et tablatures

Il n’existe pas de mode spécifique pour saisir des symboles de fret ou de tablature.

Notes ou accords saisis en mode note puis affectés à un contexte TabStaff seront rendus sous forme de diagramme de tablature – voir Tablatures par défaut.

Des diagrammes de fret viendront se positionner en surplomb d’une portée dès lors que les notes ou accords auront été saisis en mode note ou accord puis rendus dans un contexte FretBoards – voir Tablatures automatiques. Ils peuvent aussi se gérer sous forme de markups créés par la commande \fret-diagram – voir Tablatures sous forme d’étiquette.

Mode paroles

Ce mode, activé par la commande \lyricmode, permet d’interpréter les saisies comme étant des syllabes, ayant éventuellement une durée, et des indications habituelles aux paroles – voir Musique vocale. Lorsqu’il est entré en mode paroles, le texte est rendu sous forme de syllabes dans un contexte Lyrics.

Le mode paroles s’active aussi par la commande \lyrics, qui créera implicitement un nouveau contexte Lyrics. Le code saisi sera interprété comme étant des paroles et sera alors rendu sous forme de syllabes dans le contexte Lyrics.

Le mode paroles s’active aussi par la commande \addlyrics, qui créera un contexte Lyrics et ajoutera implicitement une commande \lyricsto afin d’associer les paroles qui suivent à la musique précédemment saisie – voir Durée automatique des syllabes.

Mode markup

Ce mode, activé par la commande \markup, permet d’interpréter les saisies comme étant des markups (annotations ou étiquettes) – voir Commandes pour markup.

Mode notes

Le mode notes est le mode par défaut dans LilyPond. Il peut aussi s’activer par la commande \notemode. Les saisies seront interprétées comme étant des hauteurs, durées, markups, etc. qui seront rendues sous forme de notation musicale sur une portée.

Nul n’est besoin de spécifier le mode notes de manière explicite, hormis dans certaines situations particulières, notamment lorsque vous êtes en mode paroles, accords, ou tout autre mode, et que vous deviez insérer un élément qui ne serait disponible que grâce à la syntaxe du mode notes.


[ < ] [ > ]   [ << ] [Plus haut] [ >> ]         [Racine] [Table des matières] [Index] [ ? ]

5.4.2 Direction et positionnement

@translationof Direction and placement

En matière de typographie musicale, l’orientation et le positionnement de nombreux éléments est affaire de goût. Par exemple, les hampes peuvent être ascendantes ou descendantes, les paroles, nuances ou autres indications d’expression peuvent apparaître au-dessus ou en dessous de la portée, les indications textuelles s’alignent tantôt par la gauche, tantôt par la droite, ou être centrées. La plupart de ces choix peuvent être laissés à l’appréciation de LilyPond. Il peut être préférable, dans certains cas, d’imposer l’orientation ou le positionnement des éléments.


[ < ] [ > ]   [ << ] [Plus haut] [ >> ]         [Racine] [Table des matières] [Index] [ ? ]

Indicateurs de position d’une articulation

@translationof Articulation direction indicators

Certains positionnements sont opérés par défaut – toujours au-dessus ou toujours en dessous (nuances ou points d’orgue) – alors que d’autres alterneront selon l’orientation des hampes (liaisons ou accents).

Le positionnement par défaut peut être outrepassé à l’aide d’un indicateur de positionnement, qui vient s’insérer juste avant l’articulation. LilyPond met à votre disposition trois indicateurs de positionnement : ^ (pour « au-dessus »), _ (pour « au-dessous »), et - (pour « appliquer le positionnement par défaut »). L’indicateur de positionnement n’est pas obligatoire ; LilyPond considère alors qu’il y a un -. Un indicateur de positionnement est cependant obligatoire dans les cas suivants :

Les indicateurs de positionnement n’affectent que la note qui suit :

 
\relative {
  c''2( c)
  c2_( c)
  c2( c)
  c2^( c)
}

[image of music]


[ < ] [ > ]   [ << ] [Plus haut] [ >> ]         [Racine] [Table des matières] [Index] [ ? ]

La propriété direction

@translationof The direction property

Le positionnement ou l’orientation de nombreux objets de rendu sont gérés par la propriété direction.

La propriété direction peut prendre la valeur 1, qui signifie « ascendant » ou « au-dessus », ou -1, qui signifie « descendant » ou « au-dessous ». Les symboliques UP et DOWN peuvent remplacer respectivement 1 et -1. Les valeurs 0 ou CENTER permettent de réaffecter à la propriété direction son comportement par défaut. Certaines commandes prédéfinies permettent par ailleurs de spécifier un comportement en matière d’orientation ou positionnement ; elles sont de la forme

 
\xxxUp, \xxxDown et \xxxNeutral

auquel cas \xxxNeutral signifie « retour au comportement par défaut » – voir (learning)Objets inclus dans la portée section ‘Objets inclus dans la portée’ dans Manuel d’initiation.

Dans quelques cas particuliers, comme l’indication d’un arpeggio, la valeur affectée à la propriété direction déterminera si l’objet doit se placer à gauche ou à droite de son parent. Un -1 ou LEFT signifiera alors « sur la gauche », et un 1 ou RIGHT « sur la droite ». Comme de bien entendu, un 0 ou CENTER signifiera « appliquer le positionnement par défaut ».

Notez que ces commandes resteront effectives jusqu’à ce qu’elles soient annulées.

 
\relative {
  c''2( c)
  \slurDown
  c2( c)
  c2( c)
  \slurNeutral
  c2( c)
}

[image of music]

En matière de musique polyphonique, il est souvent plus judicieux d’utiliser des contextes Voice explicites que de modifier l’orientation des objets. Pour de plus amples informations, voir Plusieurs voix.

Voir aussi

Manuel d’initiation : (learning)Objets inclus dans la portée section ‘Objets inclus dans la portée’ dans Manuel d’initiation.

Manuel de notation : Plusieurs voix.


[ < ] [ > ]   [ << ] [Plus haut] [ >> ]         [Racine] [Table des matières] [Index] [ ? ]

5.4.3 Distances et unités de mesure

@translationof Distances and measurements

LilyPond considère deux types de distances : les distances absolues et les distances relatives ou extensibles.

Les distances absolues permettent de spécifier les marges, indentations et autres détails de mise en page ; elles s’expriment par défaut en millimètres. Vous pouvez utiliser d’autres systèmes de mesure dès lors que la quantité est suivie de la mesure : \mm, \cm, \in (pouces) ou \pt (points, 1/72,27 pouce). Les mesures de mise en page peuvent aussi s’exprimer en unité extensible de portée \staff-space (voir ci-après). Pour plus d’information concernant la mise en page, voir la rubrique Mise en forme de la page.

Les distances relatives ou extensibles s’expriment toujours en « espace de portée » ou, plus rarement, en « demi espace de portée ». L’espace de portée (staff-space) correspond à la distance qui sépare deux lignes adjacentes d’une portée. Sa valeur par défaut est déterminée globalement par la taille de portée. Elle peut aussi s’ajuster ponctuellement en jouant sur la propriété staff-space de l’objet StaffSymbol. Les distances relatives s’ajustent automatiquement dès qu’une modification de la taille globale de portée ou bien de la propriété staff-space du StaffSymbol intervient. Cependant, les tailles de fonte ne s’ajusteront automatiquement que si la modification touche la taille globale des portées. La taille globale de portée permet ainsi de gérer l’aspect général de la partition – voir Définition de la taille de portée.

Lorsque seulement une portion de partition doit apparaître dans une taille, comme par exemple une portée d’ossia ou une note de bas de page, influer sur la taille globale de portée affecterait l’intégralité de la partition. Il convient donc dans ce cas de modifier à la fois la propriété staff-space du StaffSymbol et la taille des fontes. La fonction Scheme magstep est tout spécialement chargée d’adapter une modification du staff-space aux fontes. Pour de plus amples informations, reportez-vous à la rubrique (learning)Longueur et épaisseur des objets section ‘Longueur et épaisseur des objets’ dans Manuel d’initiation.

Voir aussi

Manuel d’initiation : (learning)Longueur et épaisseur des objets section ‘Longueur et épaisseur des objets’ dans Manuel d’initiation.

Manuel de notation : Définition de la taille de portée, Mise en forme de la page.


[ < ] [ > ]   [ << ] [Plus haut] [ >> ]         [Racine] [Table des matières] [Index] [ ? ]

5.4.4 Dimensions

@translationof Dimensions

Les dimensions d’un objet graphique spécifient la position des bords droit et gauche ainsi que des bords supérieur et inférieur de la boîte englobante de ces objets, en tant que distance par rapport au point de référence de l’objet et en unité d’espace de portée. Ces positions sont normalement codées sous la forme de deux paires Scheme. Par exemple, la commande de markup \with-dimensions prend trois arguments, les deux premiers étant des paires Scheme donnant la position des bords gauche et droit et celle des bords inférieur et supérieur :

 
\with-dimensions #'(-5 . 10) #'(-3 . 15) argument3

Ceci spécifie une boîte englobante pour argument3 dont le bord gauche est à -5, le bord droit à 10, le bord inférieur à -3 et le bord supérieur à 15 espaces de portée du point de référence de cet objet.

Voir aussi

Manuel de notation : Distances et unités de mesure.


[ < ] [ > ]   [ << ] [Plus haut] [ >> ]         [Racine] [Table des matières] [Index] [ ? ]

5.4.5 Propriétés des symboles de la portée

@translationof Staff symbol properties

L’emplacement vertical et le nombre de lignes d’une portée se définissent conjointement. Comme l’illustre l’exemple suivant, le positionnement des notes n’est en rien influencé par le positionnement des lignes de la portée.

Note : La propriété 'line-positions écrase la propriété 'line-count. Le nombre de lignes d’une portée est implicitement défini par le nombre d’éléments dans la liste des valeurs de 'line-positions.

 
\new Staff \with {
  \override StaffSymbol.line-positions = #'(7 3 0 -4 -6 -7)
}
\relative { a4 e' f b | d1 }

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


[ < ] [ > ]   [ << ] [Plus haut] [ >> ]         [Racine] [Table des matières] [Index] [ ? ]

5.4.6 Extenseurs et prolongateurs

@translationof Spanners

De nombreux objets de notation musicale s’étendent sur plusieurs notes, voire même sur plusieurs mesures. Il en va ainsi des liaisons, ligatures, crochets de n-olet, crochets de reprise, crescendos, trilles ou glissandos. Ces objets, que l’on englobe sous l’appellation « d’extenseurs », sont pourvus de propriétés spécifiques destinées à contrôler leur apparence et leur comportement. Un certain nombre de ces propriétés sont communes à tous les extenseurs, d’autres n’affectent que certains d’entre eux.

Tout extenseur dispose de la spanner-interface. Quelques uns, tout particulièrement ceux chargés de dessiner une ligne droite entre deux objets, disposent aussi de la line-spanner-interface.

+


[ < ] [ > ]   [ << ] [Plus haut] [ >> ]         [Racine] [Table des matières] [Index] [ ? ]

Utilisation de spanner-interface

@translationof Using the spanner-interface

Cette interface fournit deux propriétés qui s’appliquent à certains extenseurs.

La propriété minimum-length

La longueur minimale d’un extenseur est déterminée par la propriété minimum-length. Au plus sa valeur est élevée, au plus l’espacement des notes qui le bornent sera grand. Forcer sa valeur restera néanmoins sans effet pour un certain nombre d’extenseurs dont la longueur dépend d’autres considérations. Voici quelques exemples de mise en œuvre de cette propriété.

 
a'~ a'
a'
% increase the length of the tie
-\tweak minimum-length #5
~ a'

[image of music]

 
\relative \compressMMRests {
  a'1
  R1*23
  % increase the length of the rest bar
  \once \override MultiMeasureRest.minimum-length = #20
  R1*23
  a1
}

[image of music]

 
\relative {
  a' \< a a a \!
  % increase the length of the hairpin
  \override Hairpin.minimum-length = #20
  a \< a a a \!
}

[image of music]

Cette propriété permet aussi de jouer sur l’envergure d’une liaison d’articulation ou de phrasé.

 
\relative {
  a'( g)
  a
  -\tweak minimum-length #5
  ( g)

  a\( g\)
  a
  -\tweak minimum-length #5
  \( g\)
}

[image of music]

Certains objets requièrent un appel explicite à la procédure set-spacing-rods pour que la propriété minimum-length produise ses effets. La propriété set-spacing-rods doit alors prendre pour valeur ly:spanner::set-spacing-rods. Par exemple, la longueur minimale d’un glissando ne pourra être forcée tant que la propriété springs-and-rods n’aura pas été définie :

 
% default
e' \glissando c''

% not effective alone
\once \override Glissando.minimum-length = #20
e' \glissando c''

% effective only when both overrides are present
\once \override Glissando.minimum-length = #20
\once \override Glissando.springs-and-rods = #ly:spanner::set-spacing-rods
e' \glissando c''

[image of music]

Il en va de même pour l’objet Beam (ligature) :

 
% not effective alone
\once \override Beam.minimum-length = #20
e'8 e' e' e'

% effective only when both overrides are present
\once \override Beam.minimum-length = #20
\once \override Beam.springs-and-rods = #ly:spanner::set-spacing-rods
e'8 e' e' e'

[image of music]

La propriété to-barline

La seconde propriété fournie par la spanner-interface est to-barline. Elle est activée par défaut, raison pour laquelle les soufflets et autres extenseurs finissant sur la première note d’une mesure s’arrêtent visuellement au niveau de la barre de mesure qui la précède. Le fait de désactiver la propriété to-barline aura pour effet de prolonger l’extenseur au delà de la barre de mesure et jusqu’à la note qui le borne :

 
\relative {
  a' \< a a a a \! a a a \break
  \override Hairpin.to-barline = ##f
  a \< a a a a \! a a a
}

[image of music]

Cette propriété n’est pas opérationnelle pour tous les extenseurs. Il serait en effet quelque peu surprenant de l’activer (lui affecter #t) dans le cas d’une liaison d’articulation ou de phrasé !


[ < ] [ > ]   [ << ] [Plus haut] [ >> ]         [Racine] [Table des matières] [Index] [ ? ]

Utilisation de line-spanner-interface

@translationof Using the line-spanner-interface

Un certain nombre d’objets disposent de la line-spanner-interface, entre autres :

La routine en charge de dessiner le stencil de ces extenseurs est ly:line-spanner::print. Elle va déterminer les deux points extrêmes et dessiner entre eux une ligne du style requis. Bien que la localisation des deux bornes de l’extenseur soit calculée à la volée, vous pouvez cependant forcer leur ordonnée (coordonnée-Y). Les propriétés que vous devrez ajuster résident au deuxième niveau dans la hiérarchie, mais la syntaxe de la commande \override nécessaire demeure relativement simple :

 
e''2 \glissando b'
\once \override Glissando.bound-details.left.Y = #3
\once \override Glissando.bound-details.right.Y = #-2
e''2 \glissando b'

[image of music]

La propriété Y est valorisée en unités de staff-space, la ligne médiane de la portée correspondant au point zéro. Pour le glissando qui nous occupe, il s’agit du Y à l’aplomb (coordonnée-X) du centre de la tête de chacune des deux notes, si tant est que la ligne doive s’étendre entre ces deux points.

Si le Y n’est pas défini, sa valeur sera calculée en fonction de la position verticale du point d’attachement de l’extenseur.

Dans le cas où l’extenseur est interrompu par un saut de ligne, les terminaisons à cet endroit se gèrent à l’aide des sous-clés left-broken et right-broken de bound-details, comme ci-dessous :

 
\override Glissando.breakable = ##t
\override Glissando.bound-details.right-broken.Y = #-3
c''1 \glissando \break
f''1

[image of music]

Les sous-propriétés left et right du bound-details disposent d’autres clés modifiables de la même manière que Y :

Y

Détermine l’ordonnée (coordonnée-Y) de la terminaison, avec un décalage en staff-space par rapport à la ligne médiane de la portée. Il s’agit par défaut du centre de l’objet d’attachement, qui est le centre vertical de la tête de note pour un glissando.

En ce qui concerne les extenseurs horizontaux, tels ceux comportant du texte ou les trilles, il est fixé à 0.

attach-dir

Détermine le début et la fin de la ligne sur l’axe des abscisses, relativement à l’objet de rattachement. Une valeur de -1 (ou LEFT) aura pour effet de commencer ou terminer la ligne sur la gauche de la tête de note de rattachement.

X

Il s’agit de l’abscisse (coordonnée-X) absolue de la terminaison. Elle se calcule à la volée, et son forçage n’apporte rien de plus.

stencil

Les extenseurs linéaires peuvent commencer ou finir par un symbole, enregistré dans cette sous-propriété. Elle est conçue pour un usage interne, aussi nous vous conseillons de plutôt recourir à text.

text

Il s’agit d’un markup qui se poursuivra par l’extenseur. C’est la sous-propriété utilisée pour ajouter cresc., tr ou autre texte à un extenseur horizontal.

 
\override TextSpanner.bound-details.left.text
   = \markup { \small \bold Slower }
\relative { c''2\startTextSpan b c a\stopTextSpan }

[image of music]

stencil-align-dir-y
stencil-offset

Lorsqu’aucune de ces deux sous-propriétés n’est définie, le stencil est simplement positionné à l’extrémité, centré sur la ligne telle que définie par les sous-propriétés X et Y. L’utilisation de stencil-align-dir-y ou stencil-offset permettra d’aligner le symbole verticalement par rapport au coin de la ligne :

 
\override TextSpanner.bound-details.left.stencil-align-dir-y = #-2
\override TextSpanner.bound-details.right.stencil-align-dir-y = #UP

\override TextSpanner.bound-details.left.text = "ggg"
\override TextSpanner.bound-details.right.text = "hhh"

\relative { c'4^\startTextSpan c c c \stopTextSpan }

[image of music]

Vous n’aurez pas manqué de constater qu’une valeur négative place le texte en haut – contrairement à ce que l’on serait en droit d’attendre. Ceci est dû au fait que la valeur -1 ou DOWN signifie « aligner le bord inférieur du texte sur la ligne d’extension ». Une valeur égale à 1 ou UP alignera le sommet du texte sur cette ligne d’extension.

arrow

L’activation de cette sous-propriété (lui affecter #t) ajoutera à l’extenseur une terminaison en flèche.

padding

Cette sous-propriété contrôle l’espace qui doit séparer l’extrémité de la ligne et la fin réelle de l’extenseur. Sans ce « décalage », le trait indiquant un glissando commencerait et finirait au beau milieu de chacune des têtes de note.

La fonction \endSpanners permet d’interrompre l’extenseur qui vient dès la note suivante. Autrement dit, il ne s’étendra que sur une seule note, ou jusqu’à la prochaine barre de mesure si to-barline a été activé et que survient une barre avant la note suivante.

 
\relative c'' {
  \endSpanners
  c2 \startTextSpan c2 c2
  \endSpanners
  c2 \< c2 c2
}

[image of music]

L’utilisation de \endSpanners permet de s’affranchir d’insérer un \stopTextSpan pour clôturer un \startTextSpan ou un \! pour terminer un soufflet.

Voir aussi

Référence des propriétés internes : (internals)Glissando section ‘Glissando’ dans Référence des propriétés internes, (internals)line-spanner-interface section ‘line-spanner-interface’ dans Référence des propriétés internes, (internals)TextSpanner section ‘TextSpanner’ dans Référence des propriétés internes, (internals)TrillSpanner section ‘TrillSpanner’ dans Référence des propriétés internes, (internals)VoiceFollower section ‘VoiceFollower’ dans Référence des propriétés internes.


[ < ] [ > ]   [ << ] [Plus haut] [ >> ]         [Racine] [Table des matières] [Index] [ ? ]

5.4.7 Visibilité des objets

@translationof Visibility of objects

La visibilité des objets de rendu se contrôle de quatre façons différentes : vous pouvez supprimer leur stencil, les rendre transparents, les coloriser en blanc ou bien encore forcer leur propriété break-visibility. Les trois premières options peuvent s’appliquer à tous les objets, la dernière étant réservée aux objets changeables. Le Manuel d’initiation contient une introduction à ces quatre techniques, à la rubrique (learning)Visibilité et couleur des objets section ‘Visibilité et couleur des objets’ dans Manuel d’initiation.

LilyPond met en œuvre quelques techniques particulières adaptées à certains objets ; elles sont couvertes par une rubrique spécifique.


[ < ] [ > ]   [ << ] [Plus haut] [ >> ]         [Racine] [Table des matières] [Index] [ ? ]

Suppression des stencils

@translationof Removing the stencil

Tout objet de rendu se voit attribuer une propriété stencil. Elle est par défaut définie par la fonction chargée de dessiner cet objet. Lorsque cette propriété est désactivée de force – en lui attribuant la valeur #f – aucune fonction ne sera appelée ; l’objet ne sera donc pas dessiné. Le retour au comportement par défaut s’opère à l’aide d’un \revert.

 
a1 a
\override Score.BarLine.stencil = ##f
a a
\revert Score.BarLine.stencil
a a a

[image of music]

Cette opération relativement courante fait l’objet du racourci \omit :

 
a1 a
\omit Score.BarLine
a a
\undo \omit Score.BarLine
a a a

[image of music]


[ < ] [ > ]   [ << ] [Plus haut] [ >> ]         [Racine] [Table des matières] [Index] [ ? ]

Transparence des objets

@translationof Making objects transparent

Tout objet de rendu dispose d’une propriété de transparence, qui est par défaut définie à #f. Le fait de l’activer rendra l’objet transparent tout en préservant la place qu’il occupe.

 
a'4 a'
\once \override NoteHead.transparent = ##t
a' a'

[image of music]

Cette opération relativement courante fait l’objet du racourci \hide :

 
a'4 a'
\once \hide NoteHead
a' a'

[image of music]


[ < ] [ > ]   [ << ] [Plus haut] [ >> ]         [Racine] [Table des matières] [Index] [ ? ]

Blanchiment des objets

@translationof Painting objects white

Tout objet de rendu dispose d’une propriété couleur, par défaut définie à black (noir). Le fait de la forcer à white (blanc) rendra l’objet indistinct du fond blanc. Néanmoins, lorsque cet objet en recouvre d’autres, la couleur de leurs points de jonction dépendra de l’ordre dans lequel ils sont dessinés, ce qui peut laisser apparaître un fantôme de l’objet blanchi comme ci-dessous :

 
\override Staff.Clef.color = #white
a'1

[image of music]

Cet inconvénient peut être évité en modifiant l’ordre dans lequel les objets sont dessinés. Chaque objet de rendu dispose d’une propriété layer (calque ou niveau) à laquelle est affecté un nombre entier. Les objets ayant la plus faible valeur sont dessinés en premier, puis les autres, de telle sorte qu’un objet ayant une valeur plus élevée les recouvrira. La plupart des objet ont un layer valorisé à 1 – quelques uns, dont StaffSymbol et BarLine, ont une valeur à 0. L’ordre d’impression d’objets ayant une même valeur de layer est indéterminé.

La clef de l’exemple précédent a par défaut un layer à 1 ; elle est donc dessinée après les lignes de la portée – layer valorisé par défaut à 0 – et donc les recouvre. Pour changer cet état de fait, l’objet Clef doit avoir un layer de valeur inférieure, disons -1, pour pouvoir être dessiné avant.

 
\override Staff.Clef.color = #white
\override Staff.Clef.layer = #-1
a'1

[image of music]


[ < ] [ > ]   [ << ] [Plus haut] [ >> ]         [Racine] [Table des matières] [Index] [ ? ]

Utilisation de break-visibility

@translationof Using break-visibility

La plupart des objets de rendu ne sont imprimés qu’une seule fois ; certains cependant, tels les barres de mesure, clefs, métriques ou armures, apparaîtront deux fois lors d’un saut de ligne – une première fois en fin de ligne, puis à nouveau au début de la ligne suivante. Ces objets, que l’on peut traiter de changeables (breakable en anglais) disposent de la propriété break-visibility spécialement chargée de contrôler leur visibilité aux trois endroits où il sont susceptibles d’apparaître : en début de ligne, en cours de ligne ou en fin de ligne – si tant est qu’un changement s’y produise.

Par exemple, la métrique est imprimée par défaut au début de la première ligne, et nulle part ailleurs. En cas de modification, une nouvelle métrique sera imprimée à l’endroit du changement. Dans le cas où ce changement intervient en fin de ligne, la nouvelle métrique s’imprime au début de la ligne suivante, et une métrique « de précaution » viendra se placer au bout de la ligne précédente.

Ce comportement est géré par la propriété break-visibility, dont vous trouverez une explication à la rubrique (learning)Visibilité et couleur des objets section ‘Visibilité et couleur des objets’ dans Manuel d’initiation. Cette propriété est constituée d’un vecteur de trois booléens qui, dans l’ordre, déterminent si l’objet sera imprimé à la fin, en cours, et au début d’une ligne – on pourrait aussi dire avant un saut de ligne, là où il n’y a pas de saut de ligne, et après un saut de ligne.

Les huit combinaisons possibles sont aussi disponibles sous la forme de fonctions prédéfinies, regroupées dans le fichier ‘scm/output-lib.scm’. Le tableau suivant vous les présente ; les trois dernières colonnes indiquent l’endroit où l’objet sera visible.

FormeFormeAvantHorsAprès
fonctionnellevectoriellesautsautsaut
all-visible#(#t #t #t)ouiouioui
begin-of-line-visible#(#f #f #t)nonnonoui
center-visible#(#f #t #f)nonouinon
end-of-line-visible#(#t #f #f)ouinonnon
begin-of-line-invisible#(#t #t #f)ouiouinon
center-invisible#(#t #f #t)ouinonoui
end-of-line-invisible#(#f #t #t)nonouioui
all-invisible#(#f #f #f)nonnonnon

Les réglages par défaut de la propriété break-visibility diffèrent selon l’objet de rendu. Le tableau suivant présente, pour la plupart des objets comportant la propriété break-visibility, ces réglages par défaut.

Objet de renduContexte habituelRéglage par défaut
BarLineScorecalculé
BarNumberScorebegin-of-line-visible
BreathingSignVoicebegin-of-line-invisible
ClefStaffbegin-of-line-visible
CustosStaffend-of-line-visible
DoublePercentRepeatVoicebegin-of-line-invisible
KeySignatureStaffbegin-of-line-visible
ClefModifierStaffbegin-of-line-visible
RehearsalMarkScoreend-of-line-invisible
TimeSignatureStaffall-visible

Voici un exemple d’utilisation de la forme vectorielle pour contrôler la visibilité des barres de mesure :

 
\relative {
  f'4 g a b
  f4 g a b
  % Remove bar line at the end of the current line
  \once \override Score.BarLine.break-visibility = ##(#f #t #t)
  \break
  f4 g a b
  f4 g a b
}

[image of music]

Lors d’un forçage de break-visibility sous une forme vectorielle, les trois éléments doivent impérativement être mentionnés. Ces formes vectorielles ne sont d’ailleurs pas prises en charge par tous les objets de rendu, et certaines combinaisons peuvent entraîner des erreurs ; nous citerons entre autres :


[ < ] [ > ]   [ << ] [Plus haut] [ >> ]         [Racine] [Table des matières] [Index] [ ? ]

Considérations spécifiques

@translationof Special considerations

Visibilité après changement explicite

La propriété break-visibility contrôle la visibilité des armures ou changements de clef en début de ligne uniquement, donc après un saut. Elle ne produit aucun effet sur la visibilité d’une armure ou d’une clef après un changement explicite de tonalité ou de clef, ni en cours, ni en fin de ligne. Dans l’exemple suivant, l’armure est présente même après le passage en si bémol majeur malgré l’activation de all-invisible (tous invisibles).

 
\relative {
  \key g \major
  f'4 g a b
  % Try to remove all key signatures
  \override Staff.KeySignature.break-visibility = #all-invisible
  \key bes \major
  f4 g a b
  \break
  f4 g a b
  f4 g a b
}

[image of music]

La visibilité lors de ces changements explicites d’armure ou de clef est géré respectivement par les propriétés explicitKeySignatureVisibility et explicitClefVisibility. Leur fonctionnement est en tout point identique à celui de la propriété break-visibility – forme vectorielle à trois éléments ou forme fonctionnelle comme indiqué ci-avant. Toutes deux sont attachées au contexte Staff (la portée) et non directement aux objets de rendu ; elles sont de ce fait introduites par une instruction \set. Leur valeur par défaut est de toujours imprimer les objets – réglage sur all-visible. Ces deux propriétés gèrent uniquement la visibilité des armures et clefs lors d’un changement explicite, et en dehors d’un début de ligne ; il faudra en pareil cas forcer la break-visibility de ces objets pour les supprimer.

 
\relative {
  \key g \major
  f'4 g a b
  \set Staff.explicitKeySignatureVisibility = #all-invisible
  \override Staff.KeySignature.break-visibility = #all-invisible
  \key bes \major
  f4 g a b \break
  f4 g a b
  f4 g a b
}

[image of music]

Visibilité des bécarres de précaution

L’impression d’altérations de précaution au moment d’un changement explicite de tonalité sera annulée dès lors que vous aurez désactivé la propriété printKeyCancellation du contexte Staff :

 
\relative {
  \key g \major
  f'4 g a b
  \set Staff.explicitKeySignatureVisibility = #all-invisible
  \set Staff.printKeyCancellation = ##f
  \override Staff.KeySignature.break-visibility = #all-invisible
  \key bes \major
  f4 g a b \break
  f4 g a b
  f4 g a b
}

[image of music]

Avec de tels réglages particuliers, seules les altérations accidentelles permettront d’indiquer le changement de tonalité.

Notez bien que lors d’une bascule en do majeur ou la mineur, seuls les « bécarres d’annulation » permettent d’identifier le changement de tonalité. En pareil cas, désactiver printKeyCancellation sera sans effet :

 
\relative {
  \key g \major
  f'4 g a b
  \set Staff.explicitKeySignatureVisibility = #all-invisible
  \set Staff.printKeyCancellation = ##f
  \key c \major
  f4 g a b \break
  f4 g a b
  f4 g a b
}

[image of music]

La suppression des bécarres d’annulation même lors d’un passage en do majeur ou la mineur n’interviendra qu’après modification de la visibilité de l’objet KeyCancellation :

 
\relative {
  \key g \major
  f'4 g a b
  \set Staff.explicitKeySignatureVisibility = #all-invisible
  \override Staff.KeyCancellation.break-visibility = #all-invisible
  \key c \major
  f4 g a b \break
  f4 g a b
  f4 g a b
}

[image of music]

Barres de mesure automatiques

La désactivation de la propriété automaticBars, qui réside dans le contexte Score, permet de s’affranchir d’imprimer automatiquement les barres de mesure ; seules seront imprimées les barres explicitées à l’aide de la commande \bar. Néanmoins, et contrairement à ce qui se passe avec la commande \cadenzaOn, le compteur de numéro de mesure continuera de s’incrémenter. Les barres s’imprimeront à nouveau, au niveau où en est le compteur, dès que la propriété automaticBars sera réactivée. Gardez à l’esprit que les sauts de ligne, lorsque cette propriété est désactivée, ne peuvent intervenir qu’à l’occasion d’un \bar explicite.

Clefs transposées

L’indication de transposition d’une clef est produite par l’objet de rendu ClefModifier. Sa visibilité étant gérée par héritage direct de l’objet Clef, nul n’est besoin de forcer un quelconque break-visibility au niveau des objets ClefModifier pour éliminer une indication de transposition lorsque la clef est invisible.

Lors d’un changement explicite de clef, la propriété explicitClefVisibility gère à la fois le symbole de la clef et l’indication de transposition qui lui est attachée.

Voir aussi

Manuel d’initiation : (learning)Visibilité et couleur des objets section ‘Visibilité et couleur des objets’ dans Manuel d’initiation


[ < ] [ > ]   [ << ] [Plus haut] [ >> ]         [Racine] [Table des matières] [Index] [ ? ]

5.4.8 Styles de ligne

@translationof Line styles

Certaines indications portées à l’attention de l’exécutant – tels rallentando, accelerando et trilles – apparaissent sous la forme d’un texte qui peut s’étendre sur plusieurs mesures à l’aide d’une ligne parfois pointillée ou ondulée.

En matière de dessin du texte et des lignes, ces indications font appel aux mêmes routines que le glissando ; leur comportement peut donc être affiné selon les mêmes préceptes, au moyen de la routine ly:line-spanner::print qui est tout spécialement chargée de dessiner les extenseurs. Cette routine détermine l’emplacement exact des deux points extrêmes de l’extenseur, puis trace une ligne du style demandé entre ces deux points.

L’exemple ci-dessous indique les différents styles de ligne disponibles, ainsi que la manière de les spécifier.

 
\relative {
  d''2 \glissando d'2
  \once \override Glissando.style = #'dashed-line
  d,2 \glissando d'2
  \override Glissando.style = #'dotted-line
  d,2 \glissando d'2
  \override Glissando.style = #'zigzag
  d,2 \glissando d'2
  \override Glissando.style = #'trill
  d,2 \glissando d'2
}

[image of music]

Les points d’ancrage de l’extension sont calculés à la volée pour chaque objet graphique, mais rien ne vous empêche de les forcer :

 
\relative {
  e''2 \glissando f
  \once \override Glissando.bound-details.right.Y = #-2
  e2 \glissando f
}

[image of music]

La valeur de Y est ainsi fixée à -2 en ce qui concerne la borne droite. Il en irait de même pour la borne gauche en spécifiant left (gauche) au lieu de right (droite).

En l’absence de réglage du Y, celui-ci est calculé à partir de l’emplacement vertical des points d’attache gauche et droit de l’extenseur.

De plus amples informations quant à l’ajustement des extenseurs font l’objet de la rubrique Extenseurs et prolongateurs.


[ < ] [ > ]   [ << ] [Plus haut] [ >> ]         [Racine] [Table des matières] [Index] [ ? ]

5.4.9 Rotation des objets

@translationof Rotating objects

Qu’il s’agisse des objets de rendu ou d’éléments textuels sous forme de markup, vous pouvez les faire pivoter selon vos désirs et à partir de n’importe quel point. La méthode diffère cependant selon ce que vous désirez manipuler.


[ < ] [ > ]   [ << ] [Plus haut] [ >> ]         [Racine] [Table des matières] [Index] [ ? ]

Rotation des objets de mise en forme

@translationof Rotating layout objects

Tout objet de rendu disposant de la grob-interface est susceptible de pivoter, grâce à la propriété rotation. Celle-ci prend en argument une liste de trois éléments : l’angle de rotation – dans le sens inverse des aiguilles d’une montre – ainsi que les coordonnées x et y du point appartenant à l’objet en question et à partir duquel doit s’effectuer cette rotation. L’angle est exprimé en degrés, les coordonnées en espaces de portée.

L’angle et les coordonnées ne peuvent se déterminer que par tâtonnement.

Il existe assez peu de situation où faire pivoter un objet de mise en forme soit réellement opportun ; en voici une :

 
g4\< e' d'' f''\!
\override Hairpin.rotation = #'(15 -1 0)
g4\< e' d'' f''\!

[image of music]


[ < ] [ > ]   [ << ] [Plus haut] [ >> ]         [Racine] [Table des matières] [Index] [ ? ]

Rotation des étiquettes

@translationof Rotating markup

Tout texte faisant l’objet d’un markup peut pivoter selon n’importe quel angle, à l’aide de la commande \rotate. Celle-ci prend deux arguments : l’angle de rotation exprimé en degrés – dans le sens inverse des aiguilles d’une montre – et le texte à basculer. Il ne s’agit pas ici de faire pivoter les extrémités du texte ; celles-ci récupéreront leurs coordonnées x et y du markup pivoté. Dans l’exemple ci-dessous, la propriété outside-staff-priority à été fixée à #f afin de désactiver l’évitement automatique des collisions qui pourrait repousser certains textes trop haut.

 
\override TextScript.outside-staff-priority = ##f
g4^\markup { \rotate #30 "un sol" }
b^\markup { \rotate #30 "un si" }
des'^\markup { \rotate #30 "un ré bémol" }
fis'^\markup { \rotate #30 "un fa dièse" }

[image of music]


[ < ] [ > ]   [ << ] [Plus haut] [ >> ]

Ce document a été généré le le 13 juillet 2020 par gub en utilisant texi2html 1.82.

Autres langues : English, català, deutsch, español, italiano, 日本語.
À propos de la sélection automatique de la langue.