5.2.1 Propriétés des objets de rendu (GNU LilyPond – Manuel d’initiation)

#### 5.2.1 Propriétés des objets de rendu

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 `Slur`, 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 (number)
        1.2
        [...] For slurs and ties, this is the distance between the two
        arcs of the curve's outline at its thickest point, [...]  This
        property is expressed as a multiple of the current staff-line
        thickness [...]

que l’on pourrait traduire ainsi :

    thickness (nombre)
        1.2
        [...] Pour les liaisons de phrasé et de tenue, c'est la distance
        entre les deux arcs extérieurs de la courbe à son point le plus
        épais, [...] Cette propriété s'exprime en multiple de l'épaisseur
        de ligne de portée en cours [...]

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 cette valeur varie en fonction de l’épaisseur des lignes de portée – on comprend aisément que des petites portées auront des liaisons plus fines.

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

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.

#### Détermination du contexte adéquat

Tout d’abord, de quoi avions-nous besoin pour préciser le contexte ? À quoi devait-il ressembler ? Gageons que les liaisons appartiennent au contexte de voix (`Voice`), 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 à huit 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.

#### Redéfinition pour une seule occurrence

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`.

Une alternative à `\once \override` consiste à utiliser la commande `\tweak` ; on obtiendra le même résultat si l’on remplace

    \once \override Slur.thickness = 5.0
    bes8[(

dans l’exemple précédent par

    bes8[\tweak thickness 5.0 (

#### Rétablissement

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.

#### GNU LilyPond – Manuel d’initiation v2.26.0 (stable-branch).

- 1 Installation
  - 1.1 Installation en mode graphique
  - 1.2 Installation en ligne de commande
- 2 Tutoriel
  - 2.1 Compilation d’un fichier
  - 2.2 Composition d’un fichier source
    - 2.2.1 Notation simple
      - Hauteurs
      - Durées et rythme
      - Silences
      - Métrique
      - Indication de tempo
      - Clefs
      - Tout ensemble
    - 2.2.2 Travail sur les fichiers d’entrée
  - 2.3 Gestion des erreurs
  - 2.4 Bien lire le manuel
    - 2.4.1 Matériel incomplet
    - 2.4.2 Exemples cliquables
    - 2.4.3 Vue d’ensemble des manuels
- 3 Bases de notation musicale
  - 3.1 Notation sur une seule portée
    - 3.1.1 Barre et contrôle de mesure
      - Barre de mesure
      - Contrôle de mesure
    - 3.1.2 Hauteurs et armure
      - Altérations
      - Armures
      - Attention aux armures et aux hauteurs
    - 3.1.3 Liaisons
      - Liaisons de prolongation
      - Liaisons d’articulation
      - Liaisons de phrasé
      - Attention aux types de liaison
    - 3.1.4 Articulations et nuances
      - Articulation
      - Doigté
      - Nuance
    - 3.1.5 Ajout de texte
    - 3.1.6 Barres de ligature automatiques et manuelles
    - 3.1.7 Commandes rythmiques avancées
      - Mesure incomplète
      - N-olet
      - Note d’ornement
  - 3.2 Notes simultanées
    - 3.2.1 Les expressions musicales en clair
      - Analogie avec les expressions mathématiques
      - Expressions musicales simultanées – plusieurs portées
      - Expressions musicales simultanées – une seule portée
    - 3.2.2 Plusieurs portées
    - 3.2.3 Regroupements de portées
    - 3.2.4 Combinaison de notes en accords
    - 3.2.5 Polyphonie sur une portée
  - 3.3 Chansons
    - 3.3.1 Écriture de chants simples
    - 3.3.2 Alignement des paroles sur une mélodie
    - 3.3.3 Paroles pour plusieurs portées
  - 3.4 Dernières précisions
    - 3.4.1 Organisation du code source avec des variables
    - 3.4.2 Ajout de titres
    - 3.4.3 Noms de note absolus
    - 3.4.4 Après le tutoriel
- 4 Concepts fondamentaux
  - 4.1 Organisation des fichiers LilyPond
    - 4.1.1 Introduction à la structure de fichier LilyPond
    - 4.1.2 La partition est une (unique) expression musicale composée
    - 4.1.3 Expressions musicales imbriquées
    - 4.1.4 Structuration de la saisie des notes
    - 4.1.5 Non-imbrication des crochets et liaisons
  - 4.2 Les voix contiennent la musique
    - 4.2.1 J’entends des voix
    - 4.2.2 Instanciation explicite des voix
    - 4.2.3 Voix et paroles
  - 4.3 Contextes et graveurs
    - 4.3.1 Tout savoir sur les contextes
    - 4.3.2 Création d’un contexte
    - 4.3.3 Tout savoir sur les graveurs
    - 4.3.4 Modification des propriétés d’un contexte
    - 4.3.5 Ajout et suppression de graveurs
  - 4.4 Extension des modèles
    - 4.4.1 Soprano et violoncelle
    - 4.4.2 Partition pour chœur à quatre voix mixtes
    - 4.4.3 Écriture d’une partition à partir de zéro
    - 4.4.4 Économie de saisie grâce aux identificateurs et fonctions
    - 4.4.5 Conducteurs et parties
- 5 Retouche de partition
  - 5.1 Retouches élémentaires
    - 5.1.1 Objets et interfaces
    - 5.1.2 Conventions de nommage des objets et propriétés
    - 5.1.3 Méthodes de retouche
      - La commande `\override`
      - La commande `\revert`
      - Le préfixe `\once`
      - Les commandes `\tweak` et `\offset`
      - Le préfixe `\single`
  - 5.2 Le manuel de référence des propriétés internes
    - 5.2.1 Propriétés des objets de rendu
    - 5.2.2 Propriétés listées par interface
    - 5.2.3 Types de propriétés
  - 5.3 Apparence des objets
    - 5.3.1 Visibilité et couleur des objets
      - La propriété `stencil`
      - La propriété `break-visibility`
      - La propriété `transparent`
      - La propriété `color`
    - 5.3.2 Taille des objets
    - 5.3.3 Longueur et épaisseur des objets
  - 5.4 Décalages et alignements
  - 5.5 Positionnement des objets
    - 5.5.1 Comportement automatique
    - 5.5.2 Objets inclus dans la portée
      - La propriété `direction`
      - Doigtés
    - 5.5.3 Objets hors de la portée
      - La propriété `outside-staff-priority`
      - La commande `\textLengthOn`
      - Positionnement des nuances
      - Dimensionnement des objets graphiques
  - 5.6 Espacement vertical
  - 5.7 Collisions d’objets
    - 5.7.1 Déplacement d’objets
    - 5.7.2 Correction des collisions d’objets
      - La propriété `padding`
      - La propriété `right-padding`
      - La propriété `staff-padding`
      - La propriété `self-alignment-X`
      - La propriété `staff-position`
      - La propriété `extra-offset`
      - La propriété `positions`
      - La propriété `force-hshift`
    - 5.7.3 Exemple concret
  - 5.8 Autres retouches
    - 5.8.1 Autres utilisations des retouches
      - Liaison entre plusieurs voix
      - Rendu MIDI d’un point d’orgue
    - 5.8.2 Utilisation de variables dans les retouches
    - 5.8.3 Feuilles de style
    - 5.8.4 Autres sources de documentation
    - 5.8.5 Retouches avancées avec Scheme
- Appendix A Modèles
  - A.1 Gabarits préprogrammés
    - A.1.1 Gabarit pour chœur à quatre voix mixtes
    - A.1.2 Gabarit pour double chœur à quatre voix mixtes
  - A.2 Modèles pour portée unique
    - A.2.1 Notes seules
    - A.2.2 Notes et paroles
    - A.2.3 Notes et accords
    - A.2.4 Notes, paroles et accords
  - A.3 Modèles pour piano
    - A.3.1 Piano seul
    - A.3.2 Chant et accompagnement
    - A.3.3 Piano et paroles entre les portées
  - A.4 Modèles pour quatuor à cordes
    - A.4.1 Quatuor à cordes simple
    - A.4.2 Parties pour quatuor à cordes
  - A.5 Modèles pour ensemble vocal
    - A.5.1 Partition pour chœur SATB
    - A.5.2 Partition pour chœur SATB avec réduction pour piano
    - A.5.3 Partition pour chœur SATB avec alignement des contextes
    - A.5.4 Chœur à quatre voix mixtes sur quatre portées
    - A.5.5 Couplet pour solo et refrain à deux voix
    - A.5.6 Hymnes et cantiques
    - A.5.7 Psalmodie
  - A.6 Orchestre
    - A.6.1 Orchestre, chœur et piano
  - A.7 Exemples de notation ancienne
    - A.7.1 Transcription de musique mensurale
    - A.7.2 Transcription du grégorien
  - A.8 Autres modèles
    - A.8.1 Symboles de jazz
- Appendix B GNU Free Documentation License
- Appendix C Index des commandes et concepts