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

3.1 Organisation des fichiers LilyPond

@translationof How LilyPond input files work

La mise en forme des fichiers d’entrée de LilyPond est vraiment peu astreignante, afin d’offrir assez de souplesse aux utilisateurs expérimentés pour qu’ils puissent organiser leurs fichiers comme ils l’entendent. Cependant, les nouveaux utilisateurs peuvent parfois se perdre en raison de cette souplesse. Cette section présente sommairement l’organisation du code LilyPond, en privilégiant la simplicité au détriment de certains détails. Vous trouverez une description plus complète dans (notation)Structure de fichier section ‘Structure de fichier’ dans Manuel de notation.


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

3.1.1 Introduction à la structure de fichier LilyPond

@translationof Introduction to the LilyPond file structure

Un fichier d’entrée LilyPond ressemble à :

 
\version "2.21.3"
\header { }
\score {
   … expression musicale composite …   % c'est là qu'est la musique !
  \layout { }
  \midi { }
}

Il existe de nombreuses variantes à ce schéma simpliste, mais cet exemple est un préambule à notre propos.

Jusqu’à présent, les exemples que nous avons pu voir ne faisaient pas appel à la commande \score{}. En fait, LilyPond ajoute automatiquement les commandes nécessaires au traitement d’un code simpliste. LilyPond considère

 
\relative {
  c''4 a b c
}

comme un raccourci de

 
\book {
  \score {
    \new Staff {
      \new Voice {
        \relative {
          c''4 a b c
        }
      }
    }
    \layout { }
  }
}

En d’autres termes, si le code n’est constitué que d’une expression musicale simple, LilyPond interprétera le fichier tout comme si cette expression était incluse dans les commandes de notre premier exemple.

Attention : de nombreux exemples, dans la documentation de LilyPond, ne font pas apparaître les commandes \new Staff ou \new Voice, qui sont créées implicitement. Ce qui n’est pas primordial pour des exemples simples le devient dès que la situation se complexifie un tant soit peu. Le fait de ne pas déclarer explicitement un contexte peut alors amener à des résultats quelque peu surprenants, comme la création d’une portée supplémentaire et indésirable. La manière de créer explicitement des contextes est traitée plus en détails au chapitre Contextes et graveurs.

Note : Dès lors que votre musique dépasse quelques lignes, nous vous engageons fortement à créer explicitement les voix et portées.

Mais revenons à notre premier exemple, et penchons-nous tout d’abord sur la commande \score.

Un bloc \score doit contenir une et une seule expression musicale, exprimée immédiatement à la suite de la commande \score. Rappelez-vous que cette expression peut être n’importe quoi, d’une note isolée à un gigantesque

 
{
  \new StaffGroup <<
     … collez ici la partition complète d'un opéra de Wagner… 
  >>
}

Dès lors que tout cela est entre accolades : { … }, LilyPond le considère comme une et une seule expression musicale.

Comme nous l’avons vu précédemment, un bloc \score peut contenir d’autres informations :

 
\score {
  { c'4 a b c' }
  \header { }
  \layout { }
  \midi { }
}

Gardez à l’esprit que ces trois commandes – \header, \layout et \midi – sont spécifiques : à l’inverse de toutes les commandes débutant par une oblique inversée \ (backslash en anglais), elles ne constituent pas des expressions musicales et ne peuvent pas faire partie d’expressions musicales. Elles peuvent de ce fait être placées à l’intérieur du bloc \score, ou bien à l’extérieur. En réalité, ces commandes sont la plupart du temps indépendantes du bloc \score – par exemple, la commande \header intervient souvent avant le bloc \score, comme le montre l’exemple ci-dessus.

Les deux autres commandes – \layout {} et \midi {} – que nous n’avons pas détaillées pour l’instant, auront respectivement pour effet, lorsqu’elles interviennent, de produire une sortie imprimable et un fichier MIDI. Nous nous y intéressons plus particulièrement dans le manuel de notation, aux chapitres (notation)Mise en forme de la partition section ‘Mise en forme de la partition’ dans Manuel de notation et (notation)Génération de fichiers MIDI section ‘Génération de fichiers MIDI’ dans Manuel de notation.

Vous pouvez tout à fait mentionner plusieurs blocs \score. Ils seront traités comme autant de partitions indépendantes qui seront regroupées dans un seul fichier résultant. La commande \book (recueil ou ouvrage) n’est pas obligatoire – elle sera créée implicitement. Néanmoins, le recours à la commande \book vous permettra d’obtenir des fichiers résultants distincts à partir d’un même fichier source ‘.ly’ – par exemple un fichier par pupitre.

En résumé :

Dès que LilyPond rencontre un bloc \book, il crée un fichier distinct (‘.pdf’ par exemple). Dans le cas où il n’est pas mentionné explicitement, LilyPond regroupera l’intégralité du code dans un bloc \book.

Tout bloc \score inclus dans un bloc \book constitue un fragment de musique, par exemple un mouvement d’une symphonie.

Tout bloc \layout affecte le bloc \score ou \book au sein duquel il intervient : si c’est à l’intérieur d’un bloc \score, seul celui-ci en sera affecté. Dans le cas où le bloc \layout se trouve à l’extérieur du bloc \score, que le bloc \book soit explicite ou non, il affectera chacun des \score compris dans ce \book.

Pour plus de détail à ce sujet, consultez (notation)Plusieurs partitions dans un même ouvrage section ‘Plusieurs partitions dans un même ouvrage’ dans Manuel de notation.

Un autre raccourci pratique est la possibilité de définir des variables, également appelées « identificateurs » – voir Organisation du code source avec des variables à ce sujet. Dans tous les modèles, vous trouverez :

 
melodie = \relative {
  c'4 a b c
}

\score {
  { \melodie }
}

Lorsque LilyPond examinera ce fichier, il va prendre la valeur de la variable melodie, c’est-à-dire tout ce qui suit le signe =, et l’insérer partout où il rencontrera \melodie. Vous êtes libre de choisir comment dénommer vos variables(1) ; ce peut être melodie, global, maindroitepiano, ou laTeteAToto, tant qu’il ne s’agit pas de « mot réservé ». Pour plus de détails, voir Économie de saisie grâce aux identificateurs et fonctions.

Voir aussi

Pour une description complète du format des fichiers d’entrée, voir (notation)Structure de fichier section ‘Structure de fichier’ dans Manuel de notation.


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

3.1.2 La partition est une (unique) expression musicale composée

@translationof Score is a (single) compound musical expression

Dans la section précédente, Introduction à la structure de fichier LilyPond, nous avons vu l’organisation générale des fichiers d’entrée de LilyPond. Mais c’est comme si nous avions éludé la question essentielle : comment diable peut-on savoir quoi mettre après \score ?

En fait, nous ne l’avons pas éludée du tout : le grand mystère est tout simplement qu’il n’y a pas de mystère. Allez, expliquons-le en une ligne :

Un bloc \score doit contenir une et une seule expression musicale.

Peut-être serait-il judicieux de relire la section Les expressions musicales en clair, dans laquelle vous avez appris à construire de grandes expressions musicales petit bout par petit bout – nous avons vu les notes, puis les accords, etc. Maintenant, nous allons partir d’une grande expression musicale, et remonter la pente. Pour rester simple, nous nous contenterons d’un chanteur accompagné au piano. On n’a pas besoin d’une partition d’orchestre – c.-à-d. des portées regroupées en StaffGroup – donc laissons cela de côté. Par contre, nous voulons bien une voix et une double portée de piano.

 
\score {
  {
    <<
      \new Staff = "chanteur" <<
      >>
      \new PianoStaff = "piano" <<
      >>
    >>
  }
  \layout { }
}

Nous avons ici attribué des noms aux portées – « chanteur » et « piano ». Bien que cela ne soit pas primordial, c’est une habitude qu’il est bon d’adopter dès le départ : vous saurez au premier coup d’œil à quoi correspond chaque portée.

Vous vous souvenez que nous avons recours à << et >> en lieu et place de { … } pour gérer des musiques simultanées. Et, pour le coup, on aimerait vraiment que la partie vocale et l’accompagnement soient imprimés ensemble… Bien que faire appel à << … >> ne soit pas réellement nécessaire pour la portée du chanteur, dans la mesure où elle ne contient qu’une seule expression musicale, nous vous recommandons de prendre l’habitude de l’encadrer ainsi plutôt que par de simples accolades – une portée peut en effet contenir plusieurs voix, ou bien des notes et des paroles. Dans la mesure où nous y ajouterons des paroles, les chevrons sont donc obligatoires. Si vous avez oublié comment ajouter des paroles à l’aide de la commande \addlyrics, relisez le chapitre Écriture de chants simples.

 
\score {
  <<
    \new Staff = "singer" <<
      \new Voice = "vocal" { c'1 }
      \addlyrics { And }
    >>
    \new PianoStaff = "piano" <<
      \new Staff = "upper" { c'1 }
      \new Staff = "lower" { c'1 }
    >>
  >>
  \layout { }
}

[image of music]

On y voit nettement plus clair maintenant. Nous voici donc avec la partie du chanteur, qui contient un ensemble Voice, ce qui dans LilyPond correspond à une voix, au sens de voix d’une polyphonie plutôt que de voix chantée – ce pourrait être une partie de violon par exemple –, et des paroles. Nous avons également une partie de piano, qui contient deux portées : une pour la main droite, une autre pour la main gauche. Il nous faudra d’ailleurs ajouter une clef de fa à cette dernière.

À ce point, on pourrait commencer à ajouter les notes. Dans les accolades qui suivent \new Voice = "chant", on pourrait commencer à écrire

 
\relative {
  r4 d''8\noBeam g, c4 r
}

Mais si l’on procédait ainsi, la section \score deviendrait vite assez touffue, et très rapidement on ne s’y retrouverait plus. C’est pourquoi on utilisera plutôt des variables, ou identificateurs, comme nous l’avons vu plus haut. Pour s’assurer que le contenu de la variable texte soit bien interprété comme des paroles, nous le préfixons d’un \lyricmode. Sans cette précaution, LilyPond tenterait d’interpréter le contenu de cette variable comme des notes, ce qui déclencherait immanquablement des erreurs. LilyPond dispose de différents types de données – voir (notation)Modes de saisie section ‘Modes de saisie’ dans Manuel de notation pour plus de détails.

Avec quelques notes de plus et une clef de fa, nous pourrions avoir :

 
melody = \relative { r4 d''8\noBeam g, c4 r }
text   = \lyricmode { And God said, }
upper  = \relative { <g' d g,>2~ <g d g,> }
lower  = \relative { b,2 e2 }

\score {
  <<
    \new Staff = "singer" <<
      \new Voice = "vocal" { \melody }
      \addlyrics { \text }
    >>
    \new PianoStaff = "piano" <<
      \new Staff = "upper" { \upper }
      \new Staff = "lower" {
        \clef "bass"
        \lower
      }
    >>
  >>
  \layout { }
}

[image of music]

Quand on écrit ou que l’on lit une section \score, mieux vaut y aller lentement et soigneusement. Commencez par le niveau le plus large, puis travaillez sur chaque niveau plus détaillé. À ce propos, une indentation stricte et propre est vraiment d’une aide précieuse : assurez-vous que chaque élément d’un même niveau a le même décalage horizontal dans votre éditeur de texte !

Voir aussi

Manuel de notation : (notation)Structure d’une partition section ‘Structure d'une partition’ dans Manuel de notation.


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

3.1.3 Expressions musicales imbriquées

@translationof Nesting music expressions

Déclarer toutes les portées dès le départ n’est pas une obligation ; elles peuvent intervenir temporairement n’importe où dans la partition. Ceci est tout à fait indiqué pour créer des sections (music-glossary)ossia section ‘ossia’ dans Glossaire. L’exemple suivant illustre la manière de créer temporairement une nouvelle portée, l’espace de trois notes :

 
\new Staff {
  \relative {
    r4 g'8 g c4 c8 d |
    e4 r8
    <<
      { f c c }
      \new Staff {
        f8 f c
      }
    >>
    r4 |
  }
}

[image of music]

Vous noterez la taille de la clef, identique à celle que l’on trouve lors d’un changement en cours de ligne – légèrement plus petite que celle imprimée en tête de ligne.

Une section ossia se placera au dessus de la portée en procédant ainsi :

 
\new Staff = "main" {
  \relative {
    r4 g'8 g c4 c8 d |
    e4 r8
    <<
      { f c c }
      \new Staff \with {
        alignAboveContext = "main" }
      { f8 f c }
    >>
    r4 |
  }
}

[image of music]

Cet exemple recourt à \with, que nous verrons en détail plus avant. C’est un moyen de modifier le comportement par défaut d’une portée individuelle. Nous indiquons ici que la nouvelle portée doit se placer au-dessus de la portée « principal » plutôt qu’en dessous, ce qui est le comportement par défaut.

Voir aussi

Les ossias apparaissent souvent sans clef ni métrique, et dans une taille plus petite. Ceci requiert des commandes dont nous n’avons pas encore parlé. Voir Taille des objets et (notation)Portées d’ossia section ‘Portées d'ossia’ dans Manuel de notation.


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

3.1.4 Structuration de la saisie des notes

@translationof Structure of a note entry

La saisie d’une note dans LilyPond est constituée d’une hauteur suivie d’une durée et, accessoirement, d’un ou plusieurs « postévénements ». Les postévénements sont, dans le cadre de LilyPond, des éléments tels que des articulations, des doigtés, des numéros de corde, des liaisons et du texte d’explication.

La hauteur peut être définie explicitement à l’aide de la langue de saisie spécifiée comme indiqué dans (notation)Nom des notes dans d’autres langues section ‘Nom des notes dans d'autres langues’ dans Manuel de notation. La hauteur peut être omise, auquel cas la hauteur en cours sera identique à celle de la note précédente dans le fichier source – voir (notation)Durées section ‘Durées’ dans Manuel de notation. Notez bien que ni r ni s ne sont des hauteurs.

La durée comporte un nombre et accessoirement des points. Lorsque la durée n’est pas explicitement mentionnée, la durée de la note en cours sera identique à celle de la note qui précède, qu’il s’agisse d’une note, d’un accord, d’un silence visible ou d’un saut – voir (notation)Durées section ‘Durées’ dans Manuel de notation.

Les postévénements suivent la note à laquelle ils s’attachent. Prenons par exemple un do croche avec un doigté à 1 et un tenuto, entame une liaison, soit prolongé et soit affublé d’une annotation. Voici comment procéder :

 
{ c'8-1--(~^\markup{"annotation textuelle"} c' d') }

[image of music]

Voir aussi

Manuel d’initiation : Liaisons, Articulations et nuances, Ajout de texte.

Manuel de notation : (notation)Hauteurs section ‘Hauteurs’ dans Manuel de notation, (notation)Rythme section ‘Rythme’ dans Manuel de notation, (notation)Signes d’interprétation section ‘Signes d'interprétation’ dans Manuel de notation.


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

3.1.5 Non-imbrication des crochets et liaisons

@translationof On the un-nestedness of brackets and ties

Nous avons déjà rencontré plusieurs types de crochets au fil de nos fichiers LilyPond. Ils obéissent à des règles différentes qui peuvent paraître déroutantes de prime abord. Avant d’examiner ces règles, voici une liste des différents types de crochet :

Type de crochetFonction
{ … }Délimite un segment de musique séquentielle
< … >Délimite les notes d’un accord
<< … >>Délimite des sections simultanées
( … )Marque le début et la fin d’une liaison
\( … \)Marque le début et la fin d’une liaison de phrasé
[ … ]Marque le début et la fin d’une ligature manuelle

D’autres constructions permettent d’obtenir des lignes regroupant ou en travers des notes : les liaisons de prolongation indiquées par un tilde (~), les marques de n-olet avec \tuplet x/y { … }, ou encore les notes d’ornement avec \grace{ … }.

En dehors de LilyPond, l’imbrication correcte de différents types de crochets exige un strict respect des conventions, telles que << [ { ( … ) } ] >>, où les marques de fermeture interviennent obligatoirement dans l’ordre exactement inverse à celles d’ouverture. Ceci doit être rigoureusement respecté pour les trois types de crochets utilisés pour délimiter comme l’indique le tableau ci-dessus. Une telle rigueur dans l’imbrication n’est pas requise pour les types de crochets dont la fonction est de marquer, selon le tableau ci-dessus, lorsqu’il sont utilisés en combinaison avec des liaisons de prolongation ou des n-olets. En effet, il ne s’agit pas de crochets ayant pour fonction de borner quelque chose ; ils agissent plutôt comme marquant le début de quelque chose et sa fin.

Ainsi, et bien que ce ne soit pas très musical, une liaison de phrasé peut débuter avant l’insertion d’une ligature manuelle et s’arrêter avant la fin de la ligature :

 
\relative { g'8\( a b[ c b\) a] g4 }

[image of music]

De manière générale, différents types de crochets, notamment s’ils indiquent des n-olets, liaisons de prolongation ou notes d’ornement, peuvent se mélanger entre eux. L’exemple suivant montre une ligature qui se prolonge sur un triolet (ligne 1), puis une liaison qui se prolonge sur un triolet (ligne 2) et enfin une ligature et une liaison qui s’étendent sur un triolet, lui-même lié à un quintolet agrémenté d’une liaison de phrasé se poursuivant (lignes 3 et 4).

 
\relative {
  r16[ g' \tuplet 3/2 { r16 e'8] }
  g,16( a \tuplet 3/2 { b16 d) e }
  g,8[( a \tuplet 3/2 { b8 d) e~] } |
  \tuplet 5/4 { e32\( a, b d e } a4.\)
}

[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à, česky, deutsch, español, magyar, italiano, 日本語, nederlands.
À propos de la sélection automatique de la langue.