| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof The Internals Reference manual
| 4.2.1 Propriétés des objets de rendu | ||
| 4.2.2 Propriétés listées par interface | ||
| 4.2.3 Types de propriétés |
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Properties of layout objects
Imaginons que votre partition contienne une liaison trop fine à votre
goût et que vous vouliez la rendre plus épaisse. Comment vous y
prendre ? Vous êtes convaincu, avec tout ce qui a été dit sur la
souplesse de LilyPond, qu’une telle retouche est réalisable et
vous vous dites qu’elle fera sans doute intervenir la commande
\override. Mais existe-t-il une propriété épaisseur qui
s’applique à une liaison et, dans l’affirmative, comment faire pour la
modifier ? C’est là qu’intervient la Référence des propriétés
internes. Elle contient toutes les informations dont vous avez besoin
pour construire n’importe quelle commande \override.
Avant de nous plonger dans la Référence des propriétés internes, un mot d’avertissement. Il s’agit d’un document de références, de sorte qu’il ne contient pas ou peu d’explications : son but est de présenter les informations de façon précise et concise. Cela peut paraître décourageant à première vue. Pas d’inquiétude ! Les conseils et les explications fournis ici vous permettent de retrouver par vous-même les informations dans la Référence des propriétés internes. Il suffit d’un peu de pratique.
Prenons un exemple concret tiré d’un morceau de musique connu :
{ \key es \major \time 6/8 \relative { r4 bes'8 bes[( g]) g | g8[( es]) es d[( f]) as | as8 g } \addlyrics { The man who | feels love's sweet e -- | mo -- tion } }
Admettons que nous voulions rendre les traits de liaison plus épais. Est-ce possible ? Une liaison est assurément un objet de rendu, si bien que la question est « Existe-t-il une propriété attachée aux liaisons et qui en contrôle l’épaisseur ? » Pour y répondre, nous consultons la Référence des propriétés internes (ou RPI pour faire court).
Vous trouverez sur le site de LilyPond https://lilypond.org la RPI correspondant à votre version du programme. Allez sur la page Documentation et cliquez sur Référence des propriétés internes. Pour l’apprentissage, mieux vaut utiliser la version HTML standard, et non la « page unique en anglais » ou le PDF. Durant la lecture des prochains paragraphes, il vous est conseillé de vous y reporter réellement afin que les explications prennent tout leur sens.
En dessous du bandeau d’en-tête figurent cinq liens. Cliquez sur le lien vers le Backend, où se trouvent les informations sur les objets de rendu. En dessous du titre Backend, choisissez alors le lien vers Tous les objets de rendu. La page qui s’ouvre énumère, dans l’ordre alphabétique, tous les objets utilisés dans votre version de LilyPond. Cliquez sur Liaisons (Slurs en anglais), et les propriétés des liaisons apparaîtront.
Il existe un autre moyen de trouver cette page, à partir du Manuel de notation. Une des pages qui traitent des liaisons contient un lien vers la Référence des propriétés internes, qui mène directement à cette page. Mais lorsque vous connaissez le nom de l’objet à retoucher, le plus simple est de consulter la RPI.
La page de la RPI sur les liaisons commence par préciser que les objets
« Liaison » sont créés par le graveur Slur_engraver. Vient
ensuite la liste des réglages standard ; vous y trouverez la propriété
susceptible de contrôler l’épaisseur des traits de liaison.
thickness (nombre)
1.2
Épaisseur de ligne, généralement mesurée en line-thickness
|
Voilà qui semble approprié pour changer l’épaisseur (thickness en
anglais). On apprend que la valeur de thickness est un simple
nombre (number), qu’elle est par défaut définie à 1,2 et que
l’unité de mesure est fixée par une autre propriété appelée
line-thickness.
Comme il a été indiqué, on ne trouve que peu, voire pas du tout
d’explication dans la RPI, mais nous en savons assez pour essayer
de changer l’épaisseur de la liaison. Comme nous l’avons vu, le
nom de l’objet est Slur, le nom de la propriété à changer
est thickness et la nouvelle valeur sera un nombre supérieur
à 1.2 si l’on veut augmenter l’épaisseur du trait.
Pour construire la commande \override, il suffit donc de
remplacer les valeurs que nous avons trouvées en guise de noms, en
laissant de côté le contexte. Commençons par une valeur très élevée
dans un premier temps, pour nous assurer que la commande fonctionne.
Nous obtenons :
\override Slur.thickness = #5.0 |
N’oublions pas le # qui doit précéder la nouvelle valeur.
La dernière question est : « Où placer cette commande ? » Tant qu’on n’est pas sûr de soi, la meilleure réponse est « À l’intérieur de l’expression musicale, avant la première liaison et proche d’elle. » Essayons :
{ \key es \major \time 6/8 \relative { % Increase thickness of all following slurs from 1.2 to 5.0 \override Slur.thickness = #5.0 r4 bes'8 bes[( g]) g | g8[( es]) es d[( f]) as | as8 g } \addlyrics { The man who | feels love's sweet e -- | mo -- tion } }
et nous constatons que le trait de liaison est beaucoup plus épais.
Telle est la façon normale de construire des commandes \override.
Comme nous aurons l’occasion de le voir par la suite, le problème est
parfois plus complexe. Dans l’immédiat, nous en savons assez pour
construire nos propres commandes – mais il faut encore s’exercer. Les
exemples suivants sont là dans cette intention.
Tout d’abord, de quoi avions-nous besoin pour préciser le contexte ? À
quoi devait-il ressembler ? Gageons que les liaisons appartiennent au
contexte Voix, dans la mesure où elles sont étroitement liées à une
ligne mélodique, mais comment en être sûr ? Pour répondre à cette
question, revenons en haut de la page de la RPI consacrée aux liaisons ;
il est écrit : « Les objets Liaison sont créés par le graveur
Slur_engraver. » Ainsi les liaisons seront créées dans n’importe quel
contexte où se trouve le Slur_engraver. Suivons le lien vers la
page Slur_engraver. Tout en bas, on lit que le
Slur_engraver est un élément appartenant à sept contextes Voix,
dont le contexte de voix standard, Voice. Notre hypothèse était
donc juste. Et parce que Voice est un contexte de très bas
niveau, qu’il est activé sans ambiguïté par le fait que l’on est
en train de saisir des notes, on peut ici ne pas le mentionner.
Dans le dernier exemple ci-dessus, toutes les liaisons étaient
plus épaisses. Et si on veut épaissir uniquement la première liaison ?
On recourt alors à la commande \once. Placée juste avant la
commande \override, elle lui indique de ne changer que la liaison
commençant avec la note juste après. Si la note juste après
n’ouvre pas une liaison, la commande sera sans aucun effet – elle ne
reste pas en mémoire jusqu’à la prochaine liaison, elle est purement et
simplement ignorée. Il faut donc que la commande introduite par
\once soit insérée comme suit :
{ \key es \major \time 6/8 \relative { r4 bes'8 % Increase thickness of immediately following slur only \once \override Slur.thickness = #5.0 bes8[( g]) g | g8[( es]) es d[( f]) as | as8 g } \addlyrics { The man who | feels love's sweet e -- | mo -- tion } }
Alors seule la première liaison est rendue plus épaisse.
La commande \once peut aussi être utilisée devant la commande
\set.
Et si l’on voulait que les deux premières liaisons soient plus
épaisses ? On pourrait bien sûr utiliser deux commandes, chacune
précédée de \once et placée juste avant la note par laquelle
débute la liaison :
{ \key es \major \time 6/8 \relative { r4 bes'8 % Increase thickness of immediately following slur only \once \override Slur.thickness = #5.0 bes[( g]) g | % Increase thickness of immediately following slur only \once \override Slur.thickness = #5.0 g8[( es]) es d[( f]) as | as8 g } \addlyrics { The man who | feels love's sweet e -- | mo -- tion } }
mais on peut aussi, au lieu de la commande \once, utiliser après
la seconde liaison la commande \revert, qui ramène la propriété
thickness à sa valeur par défaut :
{ \key es \major \time 6/8 \relative { r4 bes'8 % Increase thickness of all following slurs from 1.2 to 5.0 \override Slur.thickness = #5.0 bes[( g]) g | g8[( es]) es % Revert thickness of all following slurs to default of 1.2 \revert Slur.thickness d8[( f]) as | as8 g } \addlyrics { The man who | feels love's sweet e -- | mo -- tion } }
N’importe quelle propriété modifiée par \override peut ainsi
être ramenée, grâce à la commande \revert, à sa valeur par
défaut.
Ici s’achève notre introduction à la RPI et aux retouches simples. Vous trouverez d’autres exemples dans les prochaines sections de ce chapitre ; ils vous permettront, d’une part, d’apprendre à connaître un peu mieux la RPI et, d’autre part, de vous entraîner un peu plus à y chercher les informations. Ces exemples seront progressivement accompagnés d’explications et introduiront des termes nouveaux.
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Properties found in interfaces
Supposons maintenant que nous voulions imprimer des paroles en italique.
Quelle formulation de la commande \override allons-nous
utiliser ? Nous consultons en premier lieu, comme précédemment, la
page de la RPI qui contient la liste « Tous les objets de rendu », et
recherchons un objet qui contrôle les paroles. Nous trouvons
LyricText, qui semble approprié. Nous cliquons dessus et nous
voyons apparaître les différentes propriétés des paroles, parmi
lesquelles font-series et font-size. Mais aucune ne
propose l’italique. Car la mise en forme des caractères est une
propriété commune à tous les objets d’écriture, si bien que, au lieu de
figurer dans tous les objets de rendu, elle est regroupée avec d’autres
propriétés semblables et placée dans une Interface, la
font-interface.
Il nous faut donc apprendre à trouver les propriétés des interfaces et découvrir les objets qui utilisent les propriétés de ces interfaces.
Retournons à la page de la RPI qui traite des paroles
(LyricText). En bas de la page est dressée sous forme de liens
la liste des interfaces qui concernent LyricText. Cette liste comporte
plusieurs entrées, dont font-interface. En cliquant dessus, nous
voyons apparaître les différentes propriétés associées à cette
interface, qui sont en même temps les propriétés de tous les objets qui
s’y rapportent, parmi lesquels LyricText.
Nous avons alors sous les yeux tous les réglages des propriétés qui
contrôlent les polices de caractères, et notamment
font-shape(symbole), où symbole peut prendre la valeur
upright, italic ou caps.
Vous remarquerez que font-series et font-size figurent
aussi dans la liste. La question qui ne manque pas de se poser
est : « Comment se fait-il que les propriétés font-series
et font-size se retrouvent à la fois dans LyricText et
dans l’interface font-interface alors que ce n’est pas le cas
pour font-shape ? » La réponse est que lorsqu’un objet
LyricText est créé, les valeurs globales par défaut de
font-series et font-size sont modifiées, mais pas celles
de font-shape. Les possibilités de modification dans
LyricText ne concernent donc que les valeurs à appliquer à
LyricText. Les autres objets qui dépendent de
font-interface fixeront leurs propriétés différemment lorsqu’ils
seront créés.
Voyons maintenant si nous sommes en mesure de formuler la commande
\override pour mettre les paroles en italique. L’objet est
LyricText, la propriété est font-shape et la valeur est
italic. Comme auparavant, nous laissons de côté le contexte.
Signalons rapidement – même si cette remarque est importante – que
certaines valeurs de propriétés se présentent sous forme de
symboles, comme italic, et doivent donc être précédées
d’une simple apostrophe, Ces symboles seront alors interprétés
comme tels par LilyPond. À ne pas confondre avec les chaînes de
caractères libres qui se présentent comme "un texte
libre" ; pour plus de détails sur les symboles et les chaînes de
caractères, voir le
(extending)Tutoriel Scheme section ‘Tutoriel Scheme’ dans Extension de LilyPond.
Ainsi, la commande \override pour mettre les paroles en italique
est :
\override LyricText.font-shape = #'italic |
et doit être placée juste devant et tout près des paroles à modifier, comme ceci :
{ \key es \major \time 6/8 \relative { r4 bes'8 bes[( g]) g | g8[( es]) es d[( f]) as | as8 g } \addlyrics { \override LyricText.font-shape = #'italic The man who | feels love's sweet e -- | mo -- tion } }
et voilà les paroles en italiques.
Note : Dans la saisie des paroles, pensez à toujours laisser une espace entre la dernière syllabe et l’accolade fermante.
Manuel d’extension : (extending)Tutoriel Scheme section ‘Tutoriel Scheme’ dans Extension de LilyPond.
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Types of properties
Nous avons vu jusqu’à maintenant deux types de propriétés :
nombre et symbole. Pour pouvoir fonctionner, la valeur
associée à une propriété doit correspondre au type attendu et suivre les
règles liées à ce type. Le type de propriété est toujours donné entre
parenthèses après le nom de propriété dans la RPI. Voici une liste des
différents types de propriétés, avec les règles qui les régissent et
quelques exemples d’utilisation. Il faut, bien sûr, toujours ajouter un
symbole hash (#) devant ces valeurs lors de la saisie de
la commande \override, ce même si cette valeur comporte
déjà un # en premier caractère. Les exemples ici présentés
ne sont que de simples illustrations ; l’utilisation de Scheme
pour obtenir des valeurs fait l’objet de la rubrique
(extending)Scheme et les calculs section ‘Scheme et les calculs’ dans Extension de LilyPond.
| Type de propriété | Règles | Exemples |
|---|---|---|
| Booléenne (Boolean en anglais) | Vrai (true en anglais) ou Faux (false en anglais),
sous la forme #t ou #f | #t, #f |
| Dimension (en espaces de portée) | Un nombre décimal (en unités de lignes de portée) | 2.5, 0.34 |
| Direction | Une direction valide ou son équivalent numérique (0
ou CENTER indiquent une position neutre) | LEFT, CENTER, UP, 1, -1 |
| Entier (Integer en anglais) | Un nombre entier | 3, -1 |
| Liste | Une séquence de constantes ou symboles séparés par une espace, encadrées par des parenthèses et précédées par une apostrophe | '(left-edge staff-bar), '(1), '(),
'(1.0 0.25 0.5) |
| Markup (ou étiquette) | Toute commande \markup valide | \markup { \italic "cresc." }, "bagpipe" |
| Durée (Moment en anglais) | Une durée de note construite avec la fonction make-moment | (ly:make-moment 1/4), (ly:make-moment 3/8) |
| Nombre | Une valeur positive ou négative, qui peut être décimale | 3, -2.45 |
| Paire (de nombres) | Deux nombres séparés par « espace point espace », encadrés par des parenthèses et précédés par une apostrophe | '(2 . 3.5), '(0.1 . -3.2) |
| Symbole | L’un des symboles autorisés pour cette propriété, précédé par une apostrophe | 'italic, 'inside |
| Inconnu (Unknown en anglais) | Un processus, ou #f pour empêcher toute action | bend::print, ly:text-interface::print, #f |
| Vecteur | Des constantes encadrés par #(…) | '#(#t #t #f) |
Manuel d’extension : (extending)Tutoriel Scheme section ‘Tutoriel Scheme’ dans Extension de LilyPond.
| [ < ] | [ > ] | [ << ] | [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à, česky, deutsch, español, italiano, 日本語, nederlands.
À propos de la sélection automatique de la langue.