| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Useful concepts and properties
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@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.
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.
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.
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.
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.
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.
Ce mode, activé par la commande \markup, permet d’interpréter les
saisies comme étant des markups (annotations ou étiquettes) –
voir Commandes pour markup.
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] | [ ? ] |
@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.
| Indicateurs de position d’une articulation | ||
La propriété direction |
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@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 :
\tweak,
\markup,
\tag,
-"corde",
-1,
-.,
-> ou --.
Les indicateurs de positionnement n’affectent que la note qui suit :
\relative { c''2( c) c2_( c) c2( c) c2^( c) }
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
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) }
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.
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] | [ ? ] |
@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.
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] | [ ? ] |
@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.
Manuel de notation : Distances et unités de mesure.
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@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 }
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 }
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@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.
+
Utilisation de spanner-interface | ||
Utilisation de line-spanner-interface |
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
spanner-interface@translationof Using the spanner-interface
Cette interface fournit deux propriétés qui s’appliquent à certains extenseurs.
minimum-lengthLa 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'
\relative \compressMMRests { a'1 R1*23 % increase the length of the rest bar \once \override MultiMeasureRest.minimum-length = #20 R1*23 a1 }
\relative { a' \< a a a \! % increase the length of the hairpin \override Hairpin.minimum-length = #20 a \< a a a \! }
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\) }
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''
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'
to-barlineLa 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 }
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] | [ ? ] |
line-spanner-interface@translationof Using the line-spanner-interface
Un certain nombre d’objets disposent de la
line-spanner-interface, entre autres :
DynamicTextSpanner
Glissando
TextSpanner
TrillSpanner
VoiceFollower
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'
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
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 :
YDé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-dirDé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.
XIl 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.
stencilLes 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.
textIl 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 }
stencil-align-dir-ystencil-offsetLorsqu’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 }
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.
arrowL’activation de cette sous-propriété (lui affecter #t) ajoutera
à l’extenseur une terminaison en flèche.
paddingCette 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 }
L’utilisation de \endSpanners permet de s’affranchir d’insérer un
\stopTextSpan pour clôturer un \startTextSpan ou un
\! pour terminer un soufflet.
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] | [ ? ] |
@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.
| Suppression des stencils | ||
| Transparence des objets | ||
| Blanchiment des objets | ||
| Utilisation de break-visibility | ||
| Considérations spécifiques |
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@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
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
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@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'
Cette opération relativement courante fait l’objet du racourci
\hide :
a'4 a' \once \hide NoteHead a' a'
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@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
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
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@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.
| Forme | Forme | Avant | Hors | Après |
|---|---|---|---|---|
| fonctionnelle | vectorielle | saut | saut | saut |
all-visible | #(#t #t #t) | oui | oui | oui |
begin-of-line-visible | #(#f #f #t) | non | non | oui |
center-visible | #(#f #t #f) | non | oui | non |
end-of-line-visible | #(#t #f #f) | oui | non | non |
begin-of-line-invisible | #(#t #t #f) | oui | oui | non |
center-invisible | #(#t #f #t) | oui | non | oui |
end-of-line-invisible | #(#f #t #t) | non | oui | oui |
all-invisible | #(#f #f #f) | non | non | non |
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 rendu | Contexte habituel | Réglage par défaut |
|---|---|---|
BarLine | Score | calculé |
BarNumber | Score | begin-of-line-visible |
BreathingSign | Voice | begin-of-line-invisible |
Clef | Staff | begin-of-line-visible |
Custos | Staff | end-of-line-visible |
DoublePercentRepeat | Voice | begin-of-line-invisible |
KeySignature | Staff | begin-of-line-visible |
ClefModifier | Staff | begin-of-line-visible |
RehearsalMark | Score | end-of-line-invisible |
TimeSignature | Staff | all-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 }
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 :
begin-of-line-invisible pour les
voir et all-invisible pour les masquer.
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Special considerations
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 }
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 }
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 }
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 }
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 }
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.
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.
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] | [ ? ] |
@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 }
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 }
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] | [ ? ] |
@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.
| Rotation des objets de mise en forme | ||
| Rotation des étiquettes |
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@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''\!
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@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" }
| [ < ] | [ > ] | [ << ] | [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.