| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@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] | [ ? ] |
@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.
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] | [ ? ] |
@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
\scoredoit 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 { } }
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 { } }
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 !
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] | [ ? ] |
@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 | } }
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 | } }
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.
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] | [ ? ] |
@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') }
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] | [ ? ] |
@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 crochet | Fonction |
|---|---|
{ … } | 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 }
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.\) }
| [ < ] | [ > ] | [ << ] | [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.