2.2.2 Travail sur les fichiers d’entrée (GNU LilyPond – Manuel d’initiation)

#### 2.2.2 Travail sur les fichiers d’entrée

Le traitement des fichiers source de LilyPond est semblable à celui du code de nombreux langages de programmation. La casse est prise en compte, et les caractères considérés comme espaces ont généralement peu d’importance. Les expressions sont délimitées par des accolades `{ }`, et les commentaires par ‘`%`’ ou ‘`%{ … }`’ .

Si cette phrase vous paraît incompréhensible, ne vous en faites pas ! Expliquons tous ces termes :

- La version : Tout fichier LilyPond devrait porter mention de la version. Cette mention prend la forme d’une ligne décrivant le numéro de la version utilisée lors de la confection du fichier en question, comme ici :

      \version "2.26.0"

  Il est d’usage de porter cette mention au tout début du fichier LilyPond.

  Mentionner la version est important pour, au moins, les deux raisons suivantes : cela permet dans un premier temps de faciliter les opérations de mise à jour automatisée au fil de l’évolution de la syntaxe de LilyPond. Ensuite, cela met en évidence le minimum requis pour pouvoir compiler votre fichier.

  Si vous ne le mentionnez pas, LilyPond vous rappellera à l’ordre durant la compilation.

- La casse : LilyPond est sensible à la casse, c’est à dire qu’une lettre capitale n’a pas la même valeur qu’une lettre minuscule. Les notes, par exemple, doivent être entrées en minuscule : ‘`{ c d e }`’ est un code valide, alors que ‘`{ C D E }`’ produira un message d’erreur.
- Les espaces multiples : LilyPond ne tient pas compte du nombre d’espaces, de tabulations ou de retours à la ligne.

      { c4 d e}

  a le même sens que

      { c4       d e }

  ou que

      { c4                       d
                         e   }

  Bien sûr, ce dernier exemple est illisible. Une bonne habitude à prendre est d’indenter les blocs de code avec des doubles espaces :

      {
        c4 d e
      }

  L’espace est néanmoins nécessaire pour séparer nombre d’éléments syntaxiques les uns des autres. En d’autres termes, s’il est toujours possible d’ajouter des espaces, il faut prendre garde à ne pas trop en supprimer. En effet, l’absence d’une espace peut avoir des conséquences et entraîner une erreur ; aussi nous vous invitons à toujours insérer une espace avant et après chaque élément syntaxique, comme avant et après une accolade.

- Expressions musicales : Tout morceau saisi dans LilyPond doit être placé entre { accolades }. Ces caractères indiquent à LilyPond que ce bloc de texte représente une et une seule expression musicale, tout comme les parenthèses `()` en mathématiques. Pour éviter toute ambiguïté, il est préférable d’entourer ces accolades d’espaces ou de retours à la ligne.

  Un appel de fonction – ‘`\relative { … }`’ par exemple – compte également comme une seule expression musicale.

- Les commentaires : Un commentaire est une indication pour tout lecteur humain d’un fichier source de musique ; il est ignoré lors de la compilation et n’a donc aucun effet sur la partition imprimée. On distingue deux types de commentaires. Le commentaire de fin de ligne, introduit par le symbole ‘`%`’ : tout ce qui suit ce symbole sur la même ligne sera ignoré. Par convention, un commentaire qui occupe une ligne entière se place juste au-dessus de la ligne à laquelle il fait référence.

      a4 a a a
      % ce commentaire fait référence aux deux si ci-dessous
      b2 b

  Le bloc de commentaire peut occuper plusieurs lignes, voire toute une section : tout ce qui se trouve entre `%{` et `%}` est ignoré. Les blocs de commentaires ne peuvent s’imbriquer, ce qui signifie que vous ne pouvez pas placer un commentaire-bloc à l’intérieur d’un autre commentaire-bloc. Si jamais vous essayez, vous verrez que la première occurrence de `%}` terminera « les deux commentaires-blocs ». Le fragment suivant met en évidence quelques usages possibles des commentaires :

      % voici les notes de "ah vous dirai-je maman"
      c4 c g' g a a g2

      %{
         Ces lignes et les notes qui suivent
         seront ignorées, car elles se trouvent
         dans un bloc de commentaire.

         f f e e d d c2
      %}

#### 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