Aller au contenu

Introduction à LilyPond/Version imprimable

Un livre de Wikilivres.

Ceci est la version imprimable de Introduction à LilyPond.
  • Si vous imprimez cette page, choisissez « Aperçu avant impression » dans votre navigateur, ou cliquez sur le lien Version imprimable dans la boîte à outils, vous verrez cette page sans ce message, ni éléments de navigation sur la gauche ou en haut.
  • Cliquez sur Rafraîchir cette page pour obtenir la dernière version du wikilivre.
  • Pour plus d'informations sur les version imprimables, y compris la manière d'obtenir une version PDF, vous pouvez lire l'article Versions imprimables.


Introduction à LilyPond

Une version à jour et éditable de ce livre est disponible sur Wikilivres,
une bibliothèque de livres pédagogiques, à l'URL :
https://fr.wikibooks.org/wiki/Introduction_%C3%A0_LilyPond

Vous avez la permission de copier, distribuer et/ou modifier ce document selon les termes de la Licence de documentation libre GNU, version 1.2 ou plus récente publiée par la Free Software Foundation ; sans sections inaltérables, sans texte de première page de couverture et sans Texte de dernière page de couverture. Une copie de cette licence est incluse dans l'annexe nommée « Licence de documentation libre GNU ».

GNU

LilyPond

Réalisez des partitions irréprochables

LilyPond est un logiciel libre et gratuit de description musicale. À partir de la description du morceau (mélodie, rythme, harmonie…), le logiciel peut générer :

  • la partition sous la forme d'un fichier PostScript ou PDF ;
  • un fichier son au format Midi.

Il s'agit d'un logiciel multiplateforme (il existe sous GNU/Linux, FreeBSD, NetBSD, Microsoft Windows et MacOS).

Dans son principe, il est similaire à LaTeX : il s'agit d'un langage descriptif, le fichier source étant ensuite compilé (et d'ailleurs, à l'instar de LaTeX, les commandes commencent par une barre de fraction inversée « \ »). Il remplace dans les faits les extensions MusicTeX et MusiXTeX de LaTeX ; un de ses intérêts majeurs réside notamment dans la qualité musicographique des partitions produites, du niveau des éditeurs de musique professionnels quand ce langage est correctement maîtrisé.

Le projet Frescobaldi[1] fournit un éditeur de texte facilitant l'utilisation de LilyPond : coloration syntaxique, menu pour insérer les commandes courantes, correspondance entre la partition PDF et le code LilyPond, écoute du fichier midi généré…


Note
L'utilisation de LilyPond nécessite des connaissances en solfège ; voir par exemple le wikilivre Bases de solfège.
Sauf mention contraire, le document fait référence à la version 2.10 (10 novembre 2006) du logiciel.

Conventions de notation

[modifier | modifier le wikicode]

Tout ce qui est tapé au clavier par l'utilisateur et tout ce qui est affiché à l'écran par LilyPond est mis sous cette forme-là (balise HTML « <code>…</code> », habituellement rendu par une police à chasse fixe avec empattement du type Courier sur fond gris-clair). Lorsqu'une partie figure en italique, cela signifie qu'elle doit être remplacé en fonction du contexte. Par exemple, --output=nom_de_fichier signifie que la chaîne « nom_de_fichier » doit être remplacé par un nom de fichier.

Lorsqu'il s'agit d'une touche de clavier particulière, elle est mise entre crochets, par exemple [Suppr] désigne la touche permettant de supprimer une lettre. Lorsqu'il s'agit d'une combinaison de touches, on met un signe plus entre les touches ; par exemple, [Ctrl]+[C] indique qu'il faut appuyer simultanément sur les touches « contrôle » et « C ».

Les contrôles qui sont actionnés par la souris (boutons graphiques, zones de texte, menus déroulants…) sont signalés en gras. Dans le cas d'un menu, le tube « | » indique l'option choisie ; par exemple, Édition | Copier signifie qu'il faut cliquer sur le menu Édition, puis sur l'option Copier qui apparaît dans le menu déroulant.

Les extensions de nom de fichier sont notées en capitales.


Principe général

1. Principe général

Fonctionnement de LilyPond

[modifier | modifier le wikicode]
Logo de LilyPond.

Avec LilyPond, la partition est décrite dans un fichier texte. Le programme LilyPond transforme ensuite ce fichier en un fichier PDF, pour afficher la partition sur écran et l'imprimer, et en un fichier midi pour pouvoir écouter le résultat.

Fichier texte → LilyPond → fichiers PDF et midi

Cette opération de transformation s'appelle de manière générale une compilation en informatique ; pour LilyPond, on parle de gravure ou de composition (dans le sens typographique, le fait d'assembler des caractères à imprimer, typesetting)..

Format du fichier

[modifier | modifier le wikicode]

Un fichier LilyPond est un fichier texte au format UTF-8, ce qui permet de gérer les accents dans les paroles et les titres (en l'absence d'accent, on peut utiliser de l'ASCII « pur »). Ce fichier source porte l'extension .LY.

Les notes sont représentées par une combinaison de lettres, pour désigner la hauteur des notes, et de chiffres, pour désigner leur durées, inclues à l'intérieur d'accolades, par exemple :

{ c4 d4 } désigne deux noires (valeur 4), un do et un (respectivement « c » et « d »).

Il est possible d'utiliser le nom français des notes à condition de placer en début de fichier la commande:

\include "italiano.ly"

Dans ces conditions, { do4 re4 } désigne deux noires (valeur 4), un do et un .

Pour bien comprendre ce principe, vous pouvez essayer le piano virtuel de Musipédia.


Note
tout fichier devrait commencer par l'indication de la version de LilyPond utilisée, par la commande \version "version" (par exemple \version "2.10"). Cela permet, lorsque l'on retrouve une vieille partition, de connaître la version de l'époque et de pouvoir l'adapter à la nouvelle version de LilyPond.
Si vous souhaitez utiliser la notation française usuelle, placez ensuite votre commande \include "italiano.ly".

Icône du logiciel Frescobaldi.

Frescobaldi est un environnement pour LilyPond. Il fournit un éditeur de texte dédié, avec notamment une coloration syntaxique (les mots spéciaux sont affichés en gras et/ou avec une couleur différente ce qui facilite la lecture et l'écriture). Il fournit également un accès rapide à la compilation et à l'affichage, et le cas échéant à l'écoute.

https://frescobaldi.org/
Capture d'écran de Frescobaldi.
Capture d'écran de Frescobaldi.

Frescobaldi fonctionne avec tout système d'exploitation permettant d'exécuter des programmes Python (et notamment les Linux). Il offre les possibilités suivantes :

  • aperçu PDF en un clic de souris ;
  • pointer et cliquer (point and click) : cliquez sur les notes dans le PDF pour passer à la position dans le texte ;
  • configuration de partition rapide par assistant ;
  • possibilité d'entrer la musique via un périphérique MIDI en utilisant l'extension Rumeur ;
  • navigateur de documentation LilyPond avec aide contextuelle ;
  • coloration syntaxique avancée ;
  • les structures imbriquées peuvent être repliées / déployées pour un aperçu rapide ;
  • auto-complétion permettant de saisir rapidement les commandes et les paramètres ;
  • nombreux outils de manipulation de notes (transposition, conversion relative / absolue, traduction…) et de rythme (multiplication / division, copier-coller de rythme…) ;
  • gestion des césures (paroles) ;
  • insertion rapide des articulations et symboles ;
  • mise à jour de versions par le biais de convert-ly ;


Frescobaldi 2.18 sous Linux.

Programme dans un environnement graphique

[modifier | modifier le wikicode]
Icône des fichiers .LY.

Les versions récentes de LilyPond fonctionnent dans des environnements graphiques. Elles disposent d'un éditeur de texte intégré. L'utilisation de l'interface graphique varie en fonction de l'environnement.

Sous Microsoft Windows
  • l'éditeur de texte s'appelle LilyPad ; si l'on double-clique sur l'icône de LilyPond, cela lance LilyPad ; on peut alors créer un nouveau fichier source ou bien importer un fichier .LY existant ;
  • pour éditer un fichier .LY existant, on peut aussi utiliser le menu contextuel : cliquer avec le bouton secondaire de la souris[2] sur l'icône du fichier source (.LY), puis choisir Edit file dans le menu ;
  • pour compiler le fichier, il suffit, à partir de l'Explorateur Windows, de cliquer sur l'icône du fichier .LY puis de la faire glisser sur l'icône de LilyPond (drag and drop) ;
  • pour compiler le fichier, on peut également utiliser le menu contextuel : cliquer avec le bouton droit de la souris sur l'icône du fichier source, puis choisir Generate PDF ;
  • si l'on double-clique sur l'icône du fichier source, cela lance une compilation.

La compilation effectuée par le menu contextuel ou par le double-clic sur l'icône du fichier source n'est pas la même que celle effectuée par un glisser-lâcher de l'icône du fichier source sur l'icône de LilyPond.

Sous MacOS X
  • si l'on double-clique sur l'icône de LilyPond, cela lance l'éditeur de texte ; on peut alors créer un nouveau fichier source ou bien importer un fichier .LY existant ;
  • pour éditer un fichier .LY existant, on peut aussi utiliser double-cliquer dessus : cela l'ouvre dans l'éditeur de texte de LilyPond ;
  • pour éditer le fichier, on peut aussi, à partir du Finder, de cliquer sur l'icône du fichier .LY puis de la faire glisser sur l'icône de LilyPond (drag and drop) ;
  • pour compiler un fichier, on peut utiliser le menu Compile | Typeset file de LilyPond ou bien la raccourci clavier touche pomme+[R].
Capture d'écran de LilyPond sous MacOS X.
Capture d'écran de LilyPond sous MacOS X.

Programme en ligne de commande

[modifier | modifier le wikicode]

Initialement, LilyPond est un programme en ligne de commande. Pour générer la partition et/ou le fichier sonore dans ce mode, on peut donc invoquer le programme lilypond en lui passant le nom du fichier source en paramètre (le fichier source aura été créé par un éditeur de texte indépendant). Si par exemple le fichier source est ma_musique.LY, il faut alors taper en ligne de commande

lilypond ma_musique

Ceci génère en général un fichier PostScript (avec le nom du fichier source et l'extension .PS, ici ma_musique.PS), et/ou, selon les indications à l'intérieur du fichier .LY, un fichier sonore (extension .MID ou .MIDI). Le fichier PostScript peut ensuite être imprimé ou affiché (par exemple avec GhostScript, GS), ou bien converti en PDF (par exemple avec GS).

On peut placer des options avant le nom du fichier à compiler, par exemple :

  • --pdf pour générer directement un fichier PDF ;
  • --tex pour générer un fichier TeX ;
  • --output=nom_de_fichier ou -o=nom_de_fichier pour créer un fichier ayant un nom différent (l'extension est ajoutée automatiquement) ;
  • --verbose ou -V pour avoir des messages plus détaillés ;
  • --format= ou -f= : choix du format (ajouter svg, ps, pdf, png, tex, ou dvi derrière le signe égal)

Par exemple :

lilypond --pdf -o=my_music ma_musique

crée le fichier my_music.PDF à partir de la compilation du fichier ma_musique.LY. On peut avoir la liste des options en tapant lilypond -h ou lilypond --help.

MacOS X

Sous MacOS X, l'application LilyPond.app est en fait un répertoire ; c'est ce répertoire qui contient le programme à appeler en ligne de commande. Le programme lilypond en lui-même est place dans le sous-répertoire Contents/Resources/bin/. On peut ajouter ce chemin aux chemins par défaut en mettant ce chemin complet dans le fichier ~/.profile, sous la forme suivante :

export PATH=$PATH:''chemin''

par exemple, si LilyPond.app est placé dans /Applications/, on mettra

export PATH=$PATH:/Applications/LilyPond.app/Contents/Resources/bin

Compilation en ligne

[modifier | modifier le wikicode]

Le « Lilypond editor » (consulté le 2 décembre 2022) de Polv (Pacharapol Withayasakpunt) permet de compiler le code Lilypond en ligne, de visualiser la partition, d'écouter le fichier midi et de télécharger les fichiers PDF et midi.

Intégration de code LilyPond dans du code LaTeX

[modifier | modifier le wikicode]

On peut mettre du code LilyPond dans un fichier LaTeX, ou bien faire appel à un fichier .LY dans le fichier LaTeX. Il faut alors compiler le fichier .TEX avec lilypond-book avant de lancer la compilation avec latex ; cela se fait en ligne de commande.

Voir Programmation LaTeX, Écrire de la musique > Intégration du code LilyPond dans le code LaTeX.

Intégration de code LilyPond dans MediaWiki

[modifier | modifier le wikicode]

MediaWiki possède une extension nommée Score pour l'intégration de partition dans un wiki.

Exemple :

<score>\relative c' { f d f a d f e d cis a cis e a g f e }</score>
\relative c' { f d f a d f e d cis a cis e a g f e }
  1. (en) « Frescobaldi (page officielle) » (consulté le 7 août 2019).
  2. bouton droit, ou « clic droit », si la souris est configurée pour droitier ; bouton gauche si la souris est configurée pour un gaucher
Dans Wikipédia

Introduction < > Structure du fichier


Structure du fichier

2. Structure du fichier

Un fichier LilyPond est donc un fichier texte. Prenons un exemple minimal et complet.

Exemple minimal complet

[modifier | modifier le wikicode]

Voici un petit programme LilyPond :

\version "2.18.2" % necessary for upgrading to future LilyPond versions.

\paper{ make-footer=##f }

\header {
  title = "Petit exemple"
  composer = "moi-même"
}

\score {
  <<
    \new Staff \with {instrumentName = "Soprano" midiInstrument = "voice oohs"} \relative c''{
      \clef "G"
      \key c \major
      \tempo "Adagio" 4 = 60
      \time 2/4

      c4</span> r
      d ( b )
      c2 \bar"|."
    }
    \new Staff \with {instrumentName = "Alto" midiInstrument = "choir aahs"} \relative c' {
      \clef "G"
      \key c \major

      r4 c (
      g' d )
      c2
    }
  >>

  \layout {}
  \midi {}
}

Le résultat est le suivant :

Petit exemple.

Le fichier contient deux parties : l'en-tête et la partition. La partition contient des portées.

L'en-tête est le début du fichier. Il contient les éléments suivants :

  1. \version "2.18.2" : indique la version de LilyPond pour laquelle le fichier a été écrit. Cela permet de voir s'il faut modifier le fichier lorsque l'on utilise une autre version de LilyPond. Le texte situé après le signe pourcent % est un commentaire : ce texte n'est pas interprété par LilyPond.
  2. \paper {} : donne des informations sur la page que l'on va utiliser ; ici, l'instruction make-footer=##f indique qu'il ne faut pas créer de pied de page (footer).
  3. \header {} : décrit l'en-tête de la partition, c'est-à-dire ce qui est écrit en haut de page. La variable title permet de définir le titre de la partition et la variable composer définit le nom du compositeur ou de la compositrice.

La partition est contenue dans le contexte (l'environnement) \score{}.

Puis vient la construction <<…>> : il indique que l'on va superposer deux objets, ici deux portées qui vont former un système.

Chaque portée est contenue dans un contexte \new Staff {}.

La partition se conclut par les instructions :

  • \layout {} : indique qu'il faut créer un fichier PDF de la partition (pour la lecture sur écran et l'impression) ;
  • \midi {} : indique qu'il faut créer un fichier midi (pour écouter le résultat).

La structure globale d'une partition avec des systèmes de deux portées est donc :

\score{
  <<
    \new Staff {}
    \new Staff {}
  >>
  \layout {}
  \midi {}
}

Chaque portée est donc créée par une commande \new Staff. Cette commande est suivie d'un contexte \with{} qui permet d'indiquer des caractéristiques de la portée. Ici, nous définissons les variables :

  • instrumentName : définit le nom de l'instrument qui est écrit devant la portée ;
  • midiInstrument : définit l'instrument qui est utilisé dans le fichier midi, le timbre avec lequel la portée sera jouée.

Le contenu de la portée lui-même est contenu dans un contexte \relative {} qui indique la manière dont la hauteur des notes est gérée. Cet contexte indique que LilyPond va chercher la note la plus proche. Il faut donc indiquer la note de référence pour le début de la portée, sous la forme c' (do grave en clef de sol) ou bien c'' (do aigu en clef de sol).

La portée elle-même comporte un en-tête :

  • \clef indique la clef utilisée, ici la clef de sol (la lettre « G » désigne le sol en notation anglo-saxonne) ;
  • \key indique l'armure, ici do majeur (c \major) ;
  • \tempo indique, ici 60 à la noire (le chiffre 4 désigne la noire, il y a quatre noires dans une ronde) ;
  • \time indique le chiffrage de la mesure.

Le tempo et le chiffrage de la mesure ne sont pas repris pour la deuxième portée puisqu'ils sont identiques.

Vient ensuite la liste des notes de la portée :

  • c4 indique un do noire : la lettre « C » désigne le do en notation anglo-saxonne et le chiffre 4 indique une noire ; les notes suivantes étant aussi des noires, on n'indique pas la durée ;
  • c2 indique un do blanche (il y a deux blanches dans une ronde) ;
  • r4 indique un soupir : un silence (rest) de la durée d'une noire (4) ;
  • les parenthèses indiquent le phrasé ; la parenthèse ouvrante ( se met après la première note du phrasé et la parenthèse fermante ) se met après la dernière note du phrasé ;
  • la commande \bar indique que l'on place une barre de mesure particulière, ici une barre de fin de morceau ("|.") ;
  • les autres barres de mesure sont placées automatiquement par LilyPond.

La structure d'une portée est donc :

\new Staff \with{ [informations sur la portée] } \relative [note de référence] {
  \clef [clef]
  \key [tonalité]
  \tempo [durée] = [pulsation]
  \time [chiffrage de la mesure]

[notes et indications]
}

Autre types d'éléments d'une partition

[modifier | modifier le wikicode]

Une partition (score) peut contenir d'autres éléments que des portées (staff). Par exemple, pour une partition de chant accompagnée à la guitare, on peut avoir :

  • un contexte \chords pour les accords en notation « musique populaire » (par exemple « C » pour l'accord de do majeur) ;
  • un contexte Staff pour la mélodie ;
  • un contexte \addlyrics pour les paroles ;
  • un autre contexte TabStaff pour les tablatures de guitare.

La partition aurait donc la structure :

\score{
  <<
    \chords {}
    \new Staff {}
    \addlyrics {}
    \new TabStaff {}
  >>
  \layout {}
  \midi {}
}

Par exemple :

\score{
  <<
    \chords { \set chordChanges = ##t % les accords identiques qui se suivent ne sont pas répétés
      c4 g c2
    }
    
    \new Staff \with{ instrumentName = "Chant" } \relative c'' {
      \clef "G"
      \tempo 4 = 100
      \key c \major

      c4 d e c
    }
    
    \addlyrics {
      Frè -- re Jac -- ques
    }
    
    \new TabStaff {
      <e, c e g c' e'>4 <g, b, d g b g'> <e, c e g c' e'>2
    }
  >>
  \layout {}
  \midi {}
}

Voix au sein d'une portée

[modifier | modifier le wikicode]

Une portée peut avoir plusieurs voix : les mélodies jouées par deux instruments sont représentées sur la même portée, ou bien les mélodies jouées par deux mains (piano, harpe…). Une voix est un contexte Voice. Une portée peut alors avoir la structure suivante :

\new Staff \with { [informations sur la portée] } \relative [note de référence] {
  \clef [clef]
  \key [tonalité]
  \tempo [durée] = [pulsation]
  \time [chiffrage de la mesure]
  <<
    \new Voice {
      [notes et indications]
      \bar "|."
    }
    \new Voice {
      [notes et indications]
    }
  >>
}

Par exemple :

\new Staff \with { instrumentName = "Chant" } \relative c'' {
  \clef "G"
  \key c \major
  \tempo 4 = 60
  \time 4/4
  <<
    \new Voice {
      c2 d
      e c
      \bar "|."
    }
    \new Voice {
      c,2 g'
      c1,
    }
  >>
}

Création automatique

[modifier | modifier le wikicode]

Pour les partitions simples, LilyPond crée automatiquement les contextes. Par exemple, si on se contente d'écrire des notes, LilyPond crée automatiquement un contexte Score contenant un contexte Staff contenant un contexte Voice contenant les notes.

De fait, dans la suite du wikilivre, les éléments de structure de fichier, les contextes, seront d'abord « oubliés » puis introduits au fur et à mersure, selon les besoins.


Principe général < > La hauteur des notes


La hauteur des notes

3. La hauteur des notes

Notes « naturelles »

[modifier | modifier le wikicode]

La notation pour l'intonation (hauteur des notes) est, par défaut dans Lilypond, la notation anglo-saxonne :

Notation anglo-saxonne des notes
Note Code LilyPond
do c
d
mi e
fa f
sol g
la a
si b

Cependant, il est possible de saisir les notes dans sa propre langue, au moyen de la commande \include (qui, on le verra par la suite, a également beaucoup d'autres utilités).

Ainsi, un français aura tout intérêt à mettre au début de son fichier la ligne ci-dessous :

\include "italiano.ly"

Les notes sont alors écrites suivant la notation italienne (employée également en France, mais sans accent sur le « ré »), à savoir :

Notation italienne des notes
Note Code LilyPond
do do
re
mi mi
fa fa
sol sol
la la
si si

Quoi qu'il en soit, les notes doivent être notées en minuscules.

Exemple
{ c d e f g a b }
ou
\include "italiano.ly"
{ do re mi fa sol la si }

donne la gamme de do majeur

{ c d e f g a b }

On remarque que :

  1. LilyPond a par défaut choisi une clef de sol ; les codes présentés décrivent la hauteur des notes jouées, mais pas leur position sur la portée, qui dépend de la clef ;
  2. par défaut, la mesure est 4/4 et les notes sont des noires ;
  3. il a placé les notes à l'octave grave (une octave en dessous du la à 440 Hz, du do n°2 au si n°2, octave notée « -1 » en convention Midi).

Pour monter une note d'une octave, on lui ajoute une apostrophe « ' » après. Pour baisser une note d'une octave, on lui ajoute une virgule « , » après.

Exemple
{ c, c c' c'' c''' }
donne
{ c, c c' c'' c''' }

Les intervalles importants sont relativement rares. LilyPond dispose donc d'un mode « relatif » qui permet d'éviter d'indiquer en permanence l'octave à laquelle appartient la note. Pour cela, il faut faire précéder l'accolade ouvrante par l'instruction \relative suivi d'une note de référence. Ensuite, l'octave d'une note est déterminée par la note précédente : on prend la note la plus proche (le fa le plus proche d'un do est le fa situé au dessus, mais le sol le plus proche est situé en dessous). Les virgules et apostrophes n'indiquent plus une octave absolue, mais la montée ou la descente d'une octave par rapport à l'octave courante.

Exemple 1
\relative c' {c f g c g c f f,}
\relative c' {c f g c g c f f,}

On remarque que le « c' » de l'instruction « \relative c' » sert uniquement à définir l'octave, LyliPond ne crée pas de do à cet endroit.

Exemple 2
\relative c, { c c' c' c' c' }
donne la même partition que celle au début de cette section mais en changeant les octaves de manière relative :
\relative c, { c c' c' c' c' }

Premier exercice

[modifier | modifier le wikicode]
Note de la chanson J'ai du bon tabac.

Créer un fichier reproduisant les notes de la chanson J’ai du bon tabac, sans se soucier du rythme, pour obtenir le résultat ci-contre, en trois étapes :

  1. En indiquant l'octave de chaque note.
  2. En utilisant la notation relative.
  3. Puis en indiquant explicitement à LilyPond les contextes à créer, en indiquant le nom du morceau et du compositeur (Gabriel-Charles de Lattaignant) ; cf. Structure du fichier > Exemple minimal complet.

Vérifier à chaque étape que l'on obtient bien le résultat attendu.

Les notes sont : do - ré - mi - do - ré - ré - mi - fa - fa - mi - mi.

Là encore, tout dépend de la langue dans laquelle on saisit les notes.

Notation anglo-saxonne

[modifier | modifier le wikicode]

Pour élever la note d'un demi-ton chromatique (dièse), on lui ajoute is. Pour deux demi-tons chromatiques (double-dièse), on lui ajoute isis.

Pour la baisser d'un demi-ton chromatique (bémol), on lui met es. Pour deux demi-tons chromatiques (double-bémol), on lui ajoute eses.

Exemple
{ ceses' ces' c' cis' cisis' }
donne
{ ceses' ces' c' cis' cisis' }

Notation à l'italienne

[modifier | modifier le wikicode]

Le dièse est obtenu en ajoutant la lettre « d », le bémol en ajoutant la lettre « b ». Le double dièse s'obtient avec « dd », le double bémol avec « bb ».

Exemple
\include "italiano.ly"
{ dobb' dob' do' dod' dodd' }
donne
{ ceses' ces' c' cis' cisis' }

Armure et hauteur de note

[modifier | modifier le wikicode]

La présence de is ou es ne signifie pas que Lilypond va afficher un dièse « ♯ » ou un bémol « ♭ » : cela dépend de l'armure et des altérations accidentelles précédentes dans la mesure. De même, le bécarre « ♮ » est ajouté automatiquement par LilyPond, lorsqu'une note naturelle est précédée d'une altération en cours (altération accidentelle dans la mesure ou armure), sans que l'utilisateur ait à s'en préoccuper.

L'armure est déclarée par le mot-clef \key, voir ci-dessous.

Exemple
si l'armure comporte un fa dièse et que l'on écrit f, cela affichera un fa bécarre ; si l'on écrit fis, cela affichera simplement un fa (puisque le dièse est prévu dans l'armure).
Ainsi,
\key c \major % tonalité de do majeur
\time 2/4
fis4 fis
affiche un signe dièse devant le premier fa mais pas devant le second ; et
\key g \major % tonalité de sol majeur
\time 2/4
fis4 fis
ne met pas de signe d'altération (puisque celle-ci est dans l'armure). De même,
\key c \major % tonalité de do majeur
\time 2/4
fis4 f
affiche un dièse devant le premier fa et un bécarre devant le second, tandis que
\key g \major % tonalité de sol majeur
\time 2/4
fis4 f
n'affiche rien devant le premier fa mais met un bécarre devant le second.

Il est néanmoins possible de forcer l'affichage d'une altération en mettant un point d'exclamation « ! » après la note, et avant la durée ; par exemple, f!4 force l'affichage du bécarre. Ou bien même, de mettre l'altération entre parenthèse, en n'employant plus un point d'exclamation, mais cette fois un point d'interrogation « ? ».

Liste des codes pour les armures qui utilisent les noms anglais :

Armure Nom Code Armure Nom Code
do majeur
la mineur
\key c \major
\key a \minor
sol majeur
mi mineur
\key g \major
\key e \minor
fa majeur
mineur
\key f \major
\key d \minor
majeur
si mineur
\key d \major
\key b \minor
si♭ majeur
sol mineur
\key bes \major
\key g \minor
la majeur
fa♯ mineur
\key a \major
\key fis \minor
mi♭ majeur
do mineur
\key ees \major
\key c \minor
mi majeur
do♯ mineur
\key e \major
\key cis \minor
la♭ majeur
fa mineur
\key aes \major
\key f \minor
si majeur
sol♯ mineur
\key b \major
\key gis \minor
♭ majeur
si♭ mineur
\key des \major
\key bes \minor
fa♯ majeur
♯ mineur
\key fis \major
\key dis \minor
sol♭ majeur
mi♭ mineur
\key ges \major
\key ees \minor
do♯ majeur
la♯ mineur
\key cis \major
\key ais \minor
do♭ majeur
la♭ mineur
\key ces \major
\key aes \minor

On peut aussi utiliser les autres modes des gammes diatoniques :

  • mode de do (mode majeur), appelé « ionien » en jazz : \ionian ;
  • mode de ou « dorien » : \dorian ;
  • mode de mi ou « phrygien » : \phrygian ;
  • mode de fa ou « lydien » : \lydian ;
  • mode de sol ou « mixolydien » : \mixolydian ;
  • mode de la (mode mineur naturel) ou « éolien » : \aeolian ;
  • mode de si ou « locrien » : \locrian.

Par exemple, on peut écrire \key c \mixolydian ce qui mettre un si bémol à l'armure.

L'octaviation consiste à indiquer que les notes doivent être jouées une octave au dessus ou en dessous. Pour LyliPond, il faut indiquer la hauteur réelle des notes et ajouter une commande pour modifier leur position sur la portée et mettre la marque d'octaviation :

  • pour indiquer de jouer les notes une octave au dessus : \ottava #1 ;
  • pour indiquer de jouer les notes une octave en dessous : \ottava #-1 ;
  • pour revenir à la notation normale : \ottava #0.

Deuxième exercice

[modifier | modifier le wikicode]
Notes de la chanson J'ai du bon tabac en majeur.

Réécrire J'ai du bon tabac transposé en tonalité de mineur, avec l'armure à la clef.

Les notes sont :

ré - mi - fa♯ - ré - mi - mi - fa♯ - sol - sol - fa♯ - fa♯.

Pour noter les harmoniques, on utilise habituellement un losange ; pour cela, on utilise la commande \harmonic après la hauteur de l'harmonique.

Si l'on veut transposer un passage, on utilise la commande \transpose note_de_départ note_d_arrivée { expression musicale }. Par exemple, si l'on a un morceau pour un instrument en ut et que l'on veut l'écrire pour qu'il soit joué à la même hauteur par un instrument en si♭, il faut passer d'un si♭ à un do (puisque l'on entend un si♭ lorsque l'on joue un do) on écrira :

\transpose bes c { \relative c'' {
    c4 c c d
    e2 d
    c4 e d d
    c2 r
  }
}

À l'inverse, si l'on a une partition pour un instrument en si♭ et que l'on veut l'écrire pour un instrument en ut :

\transpose c bes { \relative c'' {
  d4 d d e
  fis2 e
  d4 fis e e
  d2 r
}}

Exercice

Reprendre l'exercice ci-dessus : écrire J'ai du bon tabac en majeur à partir de la forme en do majeur, en utilisant \transpose.

Mise en forme compacte sans rythmique

[modifier | modifier le wikicode]

Pour faire des exemples compacts en largeur, on peut faire figurer le code suivant avant la description de la musique :

\paper {
    #(define dump-extents #t)
    indent = 0\mm
    ragged-right = ##t
}

Si l'on veut suspendre momentanément la gravure des barres de mesure, on peut mettre la partie concernée entre des balises \cadenzaOn … \cadenzaOff.

Si l'on veut faire ça sur toute la partition, on peut enlever la gravure des barres de mesure (bar engraver) et du chiffrage de mesure (time signature engraver) du contexte de portée (staff) :

\layout {
   \context {
      \Score
      timing = ##f
   }
   \context {
      \Staff
      \remove Time_signature_engraver
   }
}

Par exemple :

\version "2.10"

\paper {
   #(define dump-extents #t)
   indent = 0\mm
   ragged-right = ##t
}

\layout {
   \context {
      \Score
      timing = ##f
   }
   \context {
      \Staff
      \remove Time_signature_engraver
   }
}
 
\relative c' { c d e f g a b }

donne

On peut enlever les hampes en enlevant la gravure des hampes (stem engraver) des voix (voice) :

\layout {
   \context {
      \Score
      timing = ##f
   }
   \context {
      \Staff
      \remove Time_signature_engraver
   }
   \context {
      \Voice
      \remove Stem_engraver
   }
}

On peut supprimer les gravures au sein de la partition, dans les environnements \with{} associés aux contextes :

\score{
  <<
    \new Staff \with{\remove "Bar_engraver"
      \remove "Time_signature_engraver"}
      \relative c'{
        \new Voice \with{\remove "Stem_engraver"}
        {
          c d e f g a b
        }
      }
  >>
}


Dans Wikipédia

Structure du fichier < > Le rythme


Le rythme

4. Le rythme

Indication des durées

[modifier | modifier le wikicode]

Les durées sont indiquées par un nombre qui suit la même convention que l'indication de la mesure.

Indication des durées
Durée Code LilyPond
ronde carrée \breve
ronde 1
blanche 2
noire 4
croche 8
double-croche 16
triple-croche 32
quadruple-croche 64

Les durées sont indiquées après la hauteur de la note, accolée à celle-ci. Pour les valeurs pointées, il suffit d'ajouter un point « . » après la valeur. Pour le double-point, on met deux points l'un après l'autre après la valeur.

Lorsque des notes sont liées, on met un tildé « ~ » entre elles.

Si l'on n'indique pas de durée, c'est la durée de la note précédente qui s'applique.

Les silences sont indiqués par un r (pour rest) suivi de la valeur correspondant à leur durée. Si l'on veut que la marque du silence soit centrée sur la mesure, on utilisera la commande R.

Indication des durées
Code LilyPond Durée
silence correspondant à la ronde carrée r\breve
pause r1
demi-pause r2
soupir r4
demi-soupir r8
quart de soupir r16
huitième de soupir r32
seizième de soupir r64

Si un silence s'étale sur plusieurs mesures, on utilise l'astérisque * pour « multiplier » par le nombre de mesures. Par exemple, pour des mesures à 4/4, un silence s'étendant sur cinq mesures s'écrit R1*5

Les triolets sont introduits par l'instruction \times 2/3, indiquant que l'on met trois notes dans deux unités de temps (chaque note a deux tiers de la valeur indiquée) ; les notes du triolet sont indiquées entre accolades. Par exemple :

  • \times 2/3 {c4 c c} pour un triolet de noires ;
  • \times 2/3 {c8 c c} pour un triolet de croches ;
Exemple
\relative c' {
  c'1 
  c2 r2
  c4. c8 ~ c c16 c \times 2/3 {c8 c16 c c8}
}
donne

Un sextolet est introduit de la même manière, puisque les notes valent toujours les deux-tiers de la valeur indiquée (on peut aussi écrire \times 4/6 {…}, mais cela ne change rien). Pour que les six notes soient ensembles, il faut mettre un crochet ouvrant après la première note et un crochet fermant après la dernière, sinon LilyPond affiche deux triolets à la place :

\times 2/3 { c8[ d e f g a] } ou \times 4/6 { c8[ d e f g a] } (les deux sont strictement équivalents).

Depuis la version 2.18, le même résultat s'obtient par la commande \tuplet.

Les fractions sont alors inversées : \tuplet 3/2 est équivalent à \times 2/3.

Les crochets servent en fait à forcer la longueur du lien (barre liant les notes).

Exemple
\relative c' {
   \time 4/4 
   c8 c c c 
   c[ c] c c 
}
donne
Début de la chanson J'ai du bon tabac.

Créer un fichier reproduisant la chanson J’ai du bon tabac, dont les notes ont déjà été vue précédemment, avec le rythme :

  • première mesure : deux croches - deux croches - noire - deux croches ;
  • deuxième mesure : quatre noires.

Pour chiffrer la mesure, on utilise la commande \time[1] en indiquant la fraction : le dénominateur indique l'unité de temps (4 pour la noire, 8 pour la croche…) et le numérateur le nombre d'unités par mesure.

Par défaut, la mesure à 4/4 est chiffrée « C », et la mesure à 2/2 est chiffrée « 𝄵 » (C barré). Pour forcer un chiffrage sous forme de fraction, on utilise la commande \numericTimeSignature.

Les barres de mesures sont placées automatiquement par LilyPond.

Exemple
\relative c' {
   \time 2/2 c1 
   \time 2/4 c2 
   \time 3/4 c2. 
   \time 4/4 c1 
   \time 6/8 c2. 
   \time 12/8 c1. 
}
donne

Lorsque l'on change de mesure au cours d'un morceau, il peut être intéressant de mettre une instruction \newSpacingSection avant le nouveau chiffrage. Cela permet à LilyPond d'ajuster l'espacement entre les notes différemment : en effet, comme les mesures n'ont pas la même durée, il n'y a pas de raison d'ajuster l'espacement de manière globale pour tout le morceau.

Lorsque l'on a une mesure à 5/4 ou 7/4, on peut la couper avec une barre pointillée avec la commande \bar "!", typiquement pour séparer la mesure à 5/4 en 3/4+2/4 (ou 2/4+3/4), ou la mesure à 7/4 en 4//4+3/4 (ou 3/4+4/4).

Si l'on veut indiquer un chiffrage de mesure à numérateur multiple, on utilise la commande \compoundMeter, par exemple (pour l'affichage des notes sur une ligne unique, voir ci-dessous) :

\compoundMeter #'(2 2 2 3 8)
a8 f a f a f e f g
\time 9/8
f g a g a bes a bes c
\bar "|."

Rythme de Blue Rondo a la Turk (Dave Brubeck, Time Out, 1959).

Nous constatons que LilyPond associe les croches suivant la décomposition indiquée.

Il est possible de supprimer provisoirement le découpage en mesures, par exemple pour une cadence. Pour cela, on commence la partie concernée par \cadenzaOn, et on la termine par \cadenzaOff.

Rythme sans hauteur de note

[modifier | modifier le wikicode]

On peut vouloir indiquer un rythme sans hauteur de note particulière. Pour cela, on met les notes entre des balises \improvisationOn… \improvisationOff. Les têtes de note sont alors des parallélogrammes.

Exemple
\version "2.18.2" % necessary for upgrading to future LilyPond versions.

\paper{ make-footer=##f }

\header {
}

\score{
  <<
    \chords { \set chordChanges = ##t % les accords identiques qui se suivent ne sont pas répétés
      c2 g
      f4 g c2
    }

    \new Staff \relative c''{
      \improvisationOn
      b2 b
      b4 b b2 \bar "|."
      \improvisationOff
    }
  >>
}
donne :

Une autre manière consiste à utiliser une portée pour batterie (drum staff) en n'affichant qu'une seule ligne de portée (line count = 1) ; la note que l'on utilise est alors celle correspondant au güiro (gui en abrégé) et l'on impose que les hampe soient orientées vers le haut (stem direction up).

Exemple
\version "2.18.2"  % necessary for upgrading to future LilyPond versions.

\score {
\new DrumStaff \with {drumStyleTable = #percussion-style
  \override StaffSymbol.line-count = #1
  \override Stem.neutral-direction = #up
}
\drummode {
  \numericTimeSignature
  \time 5/4
  gui4. gui8~ gui4 \bar "!" gui gui
  \tuplet 3/2 {gui8 gui gui~} gui2 \bar "!" r2
  gui8 gui r4 r4 \bar "!" r2
  \bar "|."
 }
}
donne :
  1. attention à bien distinguer \time au singulier, qui indique le chiffrage de la mesure, et \times au pluriel, qui indique les triolets, sextolets et n-olets
Dans Wikipédia

La hauteur des notes < > Une ligne mélodique complète


Une ligne mélodique complète

5. Une ligne mélodique complète

Début de partition

[modifier | modifier le wikicode]

Une portée commence par une clef suivie d'une armure (ou armature) et d'un tempo.

La clef est indiquée juste après l'accolade d'ouverture par la commande \clef suivi du nom de la clef en anglais. Les deux plus courantes sont la clef de sol, notée \clef treble, et la clef de fa, notée \clef bass.

Notation des clefs
Clef Notation
Lilypond
clef de sol 1re ligne \clef french
clef de sol 2e ligne \clef treble
\clef G
clef de fa 3e ligne \clef varbaritone
clef de fa 4e ligne \clef bass
\clef F
clef d'ut 1re ligne \clef soprano
clef d'ut 2e ligne \clef mezzosoprano
clef d'ut 3e ligne \clef alto
\clef C
clef d'ut 4e ligne \clef tenor
Exemple
\relative c' {
   \clef french c
   \clef treble c
   \clef soprano c
   \clef mezzosoprano c
   \clef alto c
   \clef tenor c
   \clef varbaritone c
   \clef bass c
}
donne

Dans certains cas, on écrit les notes une octave au-dessus ou en dessous, pour simplifier la notation. Si l'on écrit les notes une octave en dessous, comme dans le cas de la guitare, on met le nom de la clef entre guillemets et l'on ajoute _8 ; pour écrire une octave au-dessus, on utilise ^8.

Exemple
\clef "G_8"

L'armure est indiquée après la clef avec la commande \key suivie de la gamme utilisée ; le ton est indiqué comme une note normale, le mode est \major pour majeur, \minor pour mineur.

Exemple
\key g \major pour l'armure de sol majeur (un fa dièse).

Pour indiquer le tempo, on utilise la commande \tempo en indiquant la valeur rythmique concernée (4 pour une noire…) puis les pulsations après un signe égal. Cela se place à l'intérieur des accolades, à l'emplacement désiré.

Exemple
\relative c' {
   \time 4/4
   \tempo 4 = 60

   c8 c c d e4 d c8 e d d c4 r
}
donne

Il n'y a pas de commande permettant d'indiquer un changement de tempo par équivalence. Pour faire cela, il faut mettre une chaîne de caractères au-dessus de la note (voir Indications supplémentaires).

Exemple
\relative c' {
   \time 2/4
   c2
   \time 6/8
   c2.^\markup {
      (
      \smaller \general-align #Y #DOWN \note #"4" #1
      =
      \smaller \general-align #Y #DOWN \note #"4." #1
      )
   }
}
donne
on peut remplacer les valeurs de durées « 4 » (noire) et « 4. » (noire pointée) par n'importe quelle valeur.

Levée ou anacrouse

[modifier | modifier le wikicode]

La levée ou l'anacrouse est une mesure partielle en début de morceau. On utilise pour cela l'instruction \partial suivi de l'indication de la durée de la levée, notée comme la durée des notes (4 pour une noire…).

Exemple
\relative c' {
   \time 4/4
   \partial 4. f8 f[ f]
   b4 b c c
}
donne

Pour écrire un accord, il suffit de mettre les notes entre « chevrons », c'est-à-dire entre un signe inférieur et un signe supérieur <…>. C'est le groupe entier entre les chevrons qui est considéré comme une seule note ; l'indication de durée se place après le chevron fermant.

Sur une partition, on peut indiquer de jouer un accord en arpège en plaçant une ligne brisée verticale. Pour que LilyPond trace cette ligne, on place la commande \arpeggio après l'accord.

Exemple
\relative c' { c8 <e g c>4 <e g c>8 }

Si un accord se répète, on peut, après la première occurrence, utiliser la lettre q. L'exemple suivant devient alors :

\relative c' { c8 <e g c>4 q8 }

Résolution d'un accord dissonant

[modifier | modifier le wikicode]

Certains accords sont dissonants et peuvent donner lieu à une résolution. Dans ce cas-là, la durée des notes de l'accord n'est pas la même. Il peut être alors intéressant de considérer les différentes notes comme des « voix » différentes qui se superposent.

Chaque voix est notée entre accolades. Les voix sont notées les unes après les autres, et sont entre deux paires de crochets pointus << et >>. Cependant, le début du morceau doit nécessairement être une note unique, faute de quoi les voix s'affichent sur des portées différentes.

Exemple
comparer les trois solutions suivantes
\relative c' {
   % premiere solution
   c4
   <g' b d>4
   <c, e g b>~
   <c e g c>

   % deuxieme solution
   c4
   <g' b d>4
   <<
      { c,4~ c }
      { e4~ e }
      { g4~ g }
      { b4 c }
   >>

   % troisieme solution
   c,4
   <g' b d>4
   <<
      { c,2 }
      { e2 }
      { g2 }
      { b4(c) }
   >>
}
résultat :

Basse chiffrée

[modifier | modifier le wikicode]

Le chiffrage d'un accord se fait dans un contexte \figures{ … } (qui est un raccourci pour \new FiguredBass { \figuremode { … } } ). La syntaxe globale est : < chiffrage >durée, par exemple

< 5 >4

pour un accord de quinte sur la durée d'une noire.

Voici par exemple l'accord parfait de do majeur à l'état fondamental et ses renversements :

Chiffrage de l'accord parfait de do majeur, à l'état fondamental et ses renversements.
\score{
  <<
    
    \figures{
      < 5 >1
      < 6 >
      < 6 4 >
    }
    
    \new Staff \relative c {
      \clef "F"
      \key c \major
      \time 4/4
      
      c1
      e
      g
    }
  
  >>
}

Un signe + (plus) placé après un chiffre dans le code ajoute un ♯ (dièse) avant le chiffre sur la partition ; un signe - (moins) ajoute un ♭ (bémol) ; un signe ! (point d'exclamation) ajoute un ♮ (bécarre).

Pour faire figurer un signe « plus » avant un chiffre pour indiquer l'emplacement de la sensible, on utilise \+ après le chiffre. Si l'on veut qu'il n'y ait pas de chiffre mais seulement le signe, on utilise le tiret de soulignement _ à la place du chiffre. Par exemple, pour l'accord de septième de dominante de la tonalité de do majeur :

Chiffrage de l'accord de septième de dominante de la tonalité de do majeur, à l'état fondamental et ses renversements.
\score{
  <<

    \figures{
      < 7 _\+ >1
      < 6 5\\ >
      < 6\+ >
      < 4\+ >
    }

    \new Staff \relative c {
      \clef "F"
      \key c \major
      \time 4/4

      g1
      b
      d
      f
    }

  >>
}

On notera que la double barre de fraction inversée \\ a pour effet de barrer le chiffre.

Accords usuels

[modifier | modifier le wikicode]

On peut aussi faire générer les accords usuels par LilyPond en donnant le nom de l'accord. Pour cela, il faut mettre la commande \chordmode, puis mettre les nom des accords entre accolades, en notation « jazz ». Le nom de l'accord se compose du nom de la fondamentale (en notation habituelle), suivi de l'indication du type d'accord après deux-points « : » :

  • pas d'indication : accord parfait majeur ;
  • m : accord parfait mineur ;
  • dim : accord diminué (quinte diminuée) ;
  • aug : accord augmenté (quinte augmentée) ;
  • 7 : accord de septième (ajoute une septième mineure à l'accord parfait) ;
  • maj7 : accord de septième majeure (ajoute une septième majeure à l'accord parfait) ;
  • m.7+, maj7.3- : accord mineur avec une septième majeure ;
  • m7.5- : accord demi-diminué ;
  • dim7 : accord de septième diminué ;
  • aug7 : accord de septième augmenté ;
  • 7.9- : accord de septième avec neuvième mineure ;
  • 6 : accord majeur avec une sixte ;
  • m6 : accord mineur avec une sixte ;
  • sus2 et sus4 : remplace la tierce de l'accord parfait par respectivement la seconde ou la quarte ;
  • 7sus2, 7sus4 ;
  • /note : ajoute une note en basse ; s'il s'agit d'une note de l'accord, donne un renversement.

L'indication de durée se place avant les deux-points.

Exemple
\chordmode {
   c2 c2:m
   c4:dim c:aug c:7 c:7maj
   c:sus2 c:sus4 r2
}
donne

Plusieurs voix sur une même portée

[modifier | modifier le wikicode]

Nous avons vu qu'il y avait la possibilité de mettre plusieurs voix sur une même portée ; cela se fait en mettant les voix l'une après l'autre entre accolades, et en entourant le tout d'un double crochet pointu.

Lorsqu'il s'agit d'instruments différents (par exemple deux hautbois qui divergeraient), il peut être intéressant de faire figurer les voix bien distinctement. Pour cela, il suffit de faire suivre la première voix d'une double barre de fraction inversée.

Pour éviter de faire figurer les silences sur une voix, on utilise s (space, « espace ») à la place de r.

Exemple
comparer les deux solutions
\relative c' {

   \time 6/8

   % premiere solution
   g'4.~
   <<
      {  g8. bes16 d8
         f8. ees16 d8
         c8. d16   ees8
         d2.
       }

      {  g,4.
         f   a
         a8. g16 fis8
         g4.
      }
   >>

   \break

   % deuxieme solution

   <<
      {  g4.~
         g8. bes16 d8
         f8. ees16 d8
         c8. d16   ees8
         d2.
      } \\

      {  s4. g,4.
         f   a
         a8. g16 fis8
         g4.
      }

   >>

}

Voir aussi Association de plusieurs voix > Voix sur une même portée.

Silence sur plusieurs mesures

[modifier | modifier le wikicode]

Dans la musique d'ensemble, il est fréquent d'avoir plusieurs mesures de silence. Cela se fait avec un R (lettre capitale), suivi par la valeur d'une mesure (1. en 12/8, 1 en 4/4 et en 2/2, 2. en 3/4 et en 6/8, 2 en 2/4…) suivi d'une astérisque « * » (symbole de la multiplication en informatique) puis du nombre de mesures.

Exemple
R2*4 indique quatre mesures de silence dans une mesure à 2/4.

Si l'on veut condenser les mesures de silence, il faut mettre le code suivant en début de portée (staff) :

\set Score.skipBars = ##t

Indications d'interprétation

[modifier | modifier le wikicode]

Le trémolo est une abréviation utilisée en musique, lorsqu'une note ou une suite de notes est répétée rapidement. Pour mettre des trémolos sur une note, il suffit de mettre deux-points « : » après la note, puis la durée de la subdivision (au minimum 8, des croches).

Exemple
c4:8 indique que l'on divise la noire en croches.

Pour les trémolos sur plusieurs notes, il faut utiliser la commande \repeat, avec la syntaxe suivante :

\repeat "tremolo" nombre_de_répétitions { note1 note2 }
Exemple
\repeat "tremolo" 4 { c16 d16 } indique que la succession do-ré en doubles-croches est répétée quatre fois.

Notez que si vous générez un fichier son, seule la solution avec \repeat est susceptible d'être interprétée (cf. Génération d'un fichier de son) ; la solution avec deux-points donne juste une sortie graphique.

Phrasé et attaques

[modifier | modifier le wikicode]

Le phrasé (legato ou coulé) se marque avec des parenthèses ; la parenthèse ouvrante ( se place après la première note du phrasé, et la parenthèse fermante ) se place après la dernière note du phrasé.

Les attaques se notent en faisant suivre la note d'un signe moins « - » puis du signe de l'attaque :

  • un point « . » pour le piqué (staccato) ;
  • un signe supérieur « > » pour une attaque forte ;
  • un signe moins « - » pour une note portée (ou lourée) ;
  • un accent circonflexe pour une note accentuée.
Exemple
\relative c' {
   \time 4/4
   c8( e ~ e4 d) c->
   c'8-. c-. c4-^ c-- r
}
donne

Au lieu de -symbole, on peut utiliser des instructions telles que \accent (attaque), \staccato, \marcato (note accentuée), \tenuto (note portée)…

Le glissando s'obtient en mettant la commande \glissando entre les deux notes concernées.

Points d'orgue et points d'arrêt

[modifier | modifier le wikicode]

Le point d'orgue et le point d'arrêt « 𝄐 » s'obtiennent avec la commande \fermata, placée après la note ou le silence.

Si l'on veut mettre un point d'arrêt à cheval sur une barre de mesure, on utilise le code suivant[1] :

\override Score.RehearsalMark.break-visibility = #begin-of-line-invisible
c1 \mark \markup { \musicglyph "scripts.ufermata" }

Les nuances sont simplement indiquée par leur abréviation précédée d'une barre de fraction inversée, et sont placées après la note sur laquelle elles s'appliquent.

Notation des nuances
Nuance Commande
LilyPond
il piu pianissimo
possibile
\ppp
pianissimo \pp
piano \p
mezzo piano \mp
mezzo forte \mf
forte \f
fortissimo \ff
il piu fortissimo
possibile
\fff
forte-piano \fp
sforzando \sfz

Un crescendo commence par la commande \< ou bien \cr, et se termine soit par la commande \!, soit par une indication de nuance.

Un decrescendo commence par la commande \> ou bien \decr, et se termine de même soit par la commande \!, soit par une indication de nuance.

Un crescendo-decrescendo sur une note se fait avec la commande \espressivo placée après la note.

La trille se note simplement avec la commande \trill ; cela place l'indication tr au-dessus de la note. Si l'on veut faire figurer une ligne brisée au-dessus de la portée, il faut procéder différemment : placer l'instruction \startTrillSpan après la note trillée, et \stopTrillSpan après la note suivante.

Le gruppetto se note avec la commande \turn s'il commence par la note supérieure et avec \reverseturn s'il commence par la note inférieure.

Le mordant se note avec la commande \prall s'il se fait avec la note supérieure, et avec \mordent s'il se fait avec la note inférieure.

Une appogiature longue s'obtient en mettant la commande \appoggiatura avant la petite note. Une appogiature brève, ou acciaccatura, s'obtient en mettant la commande \acciaccatura avant la petite note.

On peut aussi noter les ornements comme le gruppetto ou le mordant par plusieurs petite notes. Pour cela, on peut mettre plusieurs notes entre accolades après une commande \appoggiatura ou \acciaccatura ; il faut forcer la barre de double-croche avec les crochets. Si l'on ne veut pas avoir le phrasé, il faut utiliser la commande \grace.

Lorsqu'une trille avec ligne brisée se résout par une appogiature, il faut créer deux voix : une avec la note principale, et une avec l'appogiature, précédée d'un espacement. Puis, il faut placer la commande \startTrillSpan après la note principale, et \stopTrillSpan après la première note de l'appogiature.

Exemple
<<
   { c1 \startTrillSpan }
   { s2. \grace { d16[\stopTrillSpan e] } }
>>

L'ajout d'une altération sur un mordant ou un gruppetto est un peu complexe. À la base, on ajoute simplement une annotation ^\markup { alteration } à la note, après l'ornement ; alteration est à remplacer par \sharp pour un dièse, \flat pour un bémol et \natural pour un bécarre. Cependant, il faut indiquer à LilyPond quel est le symbole à mettre en dessous : l'ornement (qui est, du point de vue programmation, un script), auquel cas c'est la note supérieure de l'ornement qui est altérée, ou l'altération (qui est, du point de vue programmation, un text-script), auquel cas c'est la note inférieure qui est altérée. Cela se fait en modifiant la priorité du script ou du text-script. On indique donc, avant la note :

  • \once \override TextScript #'script-priority = #-100 pour mettre l'altération en dessous ;
  • \once \override Script #'script-priority = #-100 pour mettre l'altération au-dessus.
Exemple
c4 \trill c \prall c \mordent c \turn c \reverseturn
\acciaccatura d8 e4
\appoggiatura {c16[ d e f]} c4
\grace {c16[ d e f]} c4

\once \override TextScript #'script-priority = #-100
a4^\turn^\markup { \sharp }

\once \override Script #'script-priority = #-100
a4^\reverseturn^\markup { \flat }

\once \override TextScript #'script-priority = #-100
a4^\prall^\markup { \natural }
donne

Indications supplémentaires

[modifier | modifier le wikicode]

De la même manière que les attaques, on peut ajouter des indications, sous forme de lettres ou de chiffres, au-dessus ou en dessous des notes — par exemple les doigtés pour certains instruments.

Pour cela, il suffit de mettre les indications après un signe moins « - » ; les lettres doivent être entre guillemet "…". De cette manière, LilyPond choisit automatiquement l'emplacement de l'indication : au-dessus ou en dessous.

Si vous voulez imposer la position, à la place du signe moins :

  • utilisez un accent circonflexe « ^ » pour placer l'indication au-dessus ;
  • utilisez un tiret de soulignement « _ » pour placer l'indication en dessous.
Exemple
\relative c' { c4-1 c-"a" c_1 c^"a" }
donne

Notons que les signes ^ et _ permettent aussi de forcer la position d'autres indications, ainsi que des phrasés.

Exemple
phrasé en haut : c4^(d e)
attaque en bas : c4_.

Pour placer des repères de mesure, il suffit de mettre \mark \default entre les notes encadrant la barre de mesure concernée. La numérotation se fait de manière automatique.

On peut indiquer qu'une série de notes est à l'octave supérieure en les mettant entre des balises #(set-octavation 1) (début) et #(set-octavation 0) (fin) ; cela affiche « 8va » au dessus des notes. Si elles sont à l'octave inférieure, on utilise #(set-octavation -1) (début) et #(set-octavation 0).

Répétitions, barres de mesure, reprises, fin de morceau

[modifier | modifier le wikicode]

Pour indiquer la répétition d'une note, on utilise la commande \repeat avec le style "percent" (en raison de la similitude du signe avec le pourcent « % ») ; la note doit être entre accolades. On peut aussi mettre toute une mesure dans l'accolade.

\repeat "percent" nombre_de_répétitions { note }
ou
\repeat "percent" nombre_de_répétitions { mesure }

Si l'on remplace "percent" par "unfold", cela réécrit la phrase musicale. Ceci permet d'éviter le copier-coller, et les erreurs qui vont avec.

Les barres de mesure sont mises en place automatiquement. On peut forcer une barre de mesure en utilisant la commande \bar "|"

La commande \bar peut générer d'autres types de barres, selon la description de la barre entre guillemets[2]

  • \bar ".|:" pour un début de reprise ;
  • \bar ":|." pour une fin de reprise ;
  • \bar ":|.|:" pour une transition entre deux reprises.

Toutefois, il ne s'agit là que d'un signe affiché, et ces reprises ne sont pas interprétées dans un fichier son.

On peut aussi générer des reprises avec la commande \repeat et le style "volta" ; les mesures à répéter sont incluses entre accolades :

\repeat "volta" nombre_de_répétitions { mesures }

si l'on ne répète qu'une fois les mesures, nombre_de_répétitions vaut 2. Si la fin de la dernière répétition est différente, on utilise la commande \alternative :

\repeat "volta" nombre_de_répétitions { mesures }
\alternative { { alternative1 } { alternative2 } }

Si une liaison de prolongation (tie) se poursuit sur la deuxième alternative, on utilise la commande \repeatTie, par exemple :

\repeat "volta" 2{c4 d e f~}
\alternative {
  {f2 r}
  {f4 \repeatTie g a b}
}

La commande \repeat, avec le style "percent" comme "volta", peut être interprétée dans un fichier de son (cf. Génération d'un fichier de son > Gestion des répétitions).

On obtient le ballon de coda en plaçant la commande \coda après la note concernée.

Le signe de reprise segno 𝄋 s'obtient avec la commande \segno.

Si l'on veut mettre symbole à cheval sur une barre de mesure, on utilise :

\mark \markup{\musicglyph #"scripts.coda"} % coda
\mark \markup{\musicglyph #"scripts.segno"} % segno

La double-barre de transition (changement d'armure, de mesure) se note \bar "||". La double-barre de fin (avec le deuxième trait gras) se note \bar "|."

  1. « Positioning a \fermata over the last bar line », sur The LilyPond Snippet Repository (consulté le 6 janvier 2024)
  2. Dans la version 2.10 de LilyPond, les barres étaient codées :
    • \bar "|:" pour un début de reprise ;
    • \bar ":|" pour une fin de reprise ;
    • \bar ":|:" pour une transition entre deux reprises.
Dans Wikipédia

Le rythme < > Partition de chant et grille d'accords


Partition de chant et grille d'accords

6. Partition de chant et grille d'accords

Il est possible de placer sur la même partition la ligne mélodique du chant, la grille d'accord ainsi que les paroles. Pour ce faire, il faut créer trois voix, en utilisant les doubles crochets pointus << et >>. La première voix contient les accords, la deuxième voix la ligne mélodique et la troisième les paroles.

Il faut s'attacher à faire correspondre les durées d'une voix à l'autre.

Structure globale du fichier

[modifier | modifier le wikicode]

Lorsque l'on se contente d'avoir une ligne mélodique, le fichier texte peut n'avoir que la description de la musique. Lorsque l'on veut faire des choses un peu plus complexes, le fichier doit respecter un certain formalisme.

Le fichier doit globalement avoir la structure suivante :

\version "version"

\header {
   title = "titre de l’œuvre"
   composer = "nom du compositeur"
}

\score {

   <<

      \chords {
          % accords
      }

      \new Staff {
         % ligne mélodique
      }

      \addlyrics {
         % paroles
      }
 
   >>
}

Le contexte \header est un en-tête permet de définir le titre de l'œuvre et le nom du compositeur ; ils seront affiché en haut de la partition.

Le contexte \score contient la partition en elle-même. Cette partition comporte donc trois voix en parallèles. Deux d'entre elles sont dans un contexte spécifique : \chords pour les accords, et \addlyrics pour les paroles.

Les accords peuvent aussi être dans un contexte :

\new ChordNames {
  \chordmode {}
}

en fait, \chords {…} est un raccourci pour \new ChordNames { \chordmode {…} }.

L'en-tête peut contenir les informations suivantes :

  • copyright : détenteur des droits d'auteur ;
  • title : titre de l'œuvre ;
  • subtitle : sous-titre ;
  • subsubtitle : sous-titre de second niveau ;
  • poet : auteur ;
  • composer : compositeur ;
  • texttranslator : traducteur ;
  • meter ? ;
  • arranger : arrangeur ;
  • instrument : instrument de la partie ;
  • piece : pièce, par exemple mouvement d'une œuvre en comportant plusieurs ;
  • opus : n° d'opus.

Les accords sont donc dans un contexte \chords. Ils doivent être écrits en écriture abrégée (c pour do majeur, c:m pour do mineur, c:7 pour do majeur septième mineure… cf. Une ligne mélodique complète > Accords usuels). La durée se place après la fondamentale, avant les éventuels deux-points. On peut placer des silences (s).

Exemple

\score {
  <<
    \chords { \set chordChanges = ##t
      a1:m
    }
    
    \new Staff \relative c'' {
      \key a \minor
      \time 4/4
      
      a8 c e a~ a2
    }
  >>
}

La commande \set chordChanges = ##t permet de n'afficher les accords que lorsqu'il y a un changement (donc de ne pas répéter deux accords identiques qui se suivent).

Si vous voulez que les accords soient notés en français, il faut mettre la commande \frenchChords en début de contexte.

Basse chiffrée

[modifier | modifier le wikicode]
Pour plus de détails voir : Introduction à LilyPond/Une ligne mélodique complète#Basse chiffrée.

Ligne mélodique

[modifier | modifier le wikicode]

La ligne mélodique s'écrit de la manière habituelle. Elle peut être mise dans un contexte \relative.

Alignement automatique

[modifier | modifier le wikicode]

Les paroles sont dans un contexte \addlyrics.

LilyPond s'occupe d'aligner les syllabes avec les notes de la mélodie, encore faut-il lui indiquer les syllabes.

L'espace entre deux mots indique un changement de note. Au sein d'un mot, les syllabes doivent être séparées par la combinaison « espace + deux tirets + espace ». Cela indique également à LilyPond comment faire les césures.

Lorsqu'une syllabe est chantée sur plusieurs notes (mélisme), on place deux tirets de soulignement (underscore) « __ » après. Il peut être nécessaire, dans la ligne mélodique, d'encadrer les notes du mélisme par les commandes \melisma et \melismaEnd. Lorsque les notes sont inclues dans une liaison non rythmique — liaison d'expression — par les signes ( et ), une seule syllabe sera allouée aux notes incluses dans la liaison.

Pour au contraire affecter plusieurs syllabes à une seule note, on les sépare d'un tiret de soulignement, ou bien on les met entre guillemets « " ». Pour faire figurer des guillemets dans le texte imprimé, il faut faire précéder le guillemet d'une barre de fraction inversée « \" ».

Si l'on veut que les paroles sautent une ou plusieurs notes, on utilise la commande \skip suivi d'un espace puis de la valeur rythmique à sauter (par exemple \skip 4 pour sauter une noire).

Il est possible de mettre plusieurs contextes \addlyrics les uns à la suite des autres ; à ce moment là, les paroles sont inscrites les unes en dessous des autres. On peut placer le numéro de couplet en commençant les paroles par \set stanza = "numéro ", par exemple \set stanza = "1. " pour le premier couplet.

Exemple
\relative c' {

   \clef treble
   \time 4/4
      c8 c c d e4 d c8 e d d c2
}

\addlyrics {
   \set stanza = "1. "
   Au clair de la Lu -- ne
   mon a -- mi Pier -- rot
}
 
\addlyrics {
   \set stanza = "2. "
   Au clair de la Lu -- ne
   Pier -- rot ré -- pon -- dit
}

Alignement manuel

[modifier | modifier le wikicode]

Dans certains cas, l'alignement automatique n'est pas possible, en particulier lorsque la partition a plusieurs portées (voir le chapitre Association de plusieurs voix). Il faut alors définir la durée de chaque syllabe manuellement. On utilise pour cela \lyricmode. Par exemple

\header {
  title = "L'article est mort ce soir"
}

\score {

  << % Nécessaire pour encadrer plusieurs voix
 
    \new Staff { % Crée une première portée
      \relative {
        \tempo 4 = 120
        \clef "G"
        \time 4/4
        \partial 8 r8
        c'4 d8 e4 d e8
        f4 e8 d4 c d8
        e4 d8 c4. e8 d
      }
    }

    \new Lyrics { % Crée la ligne de paroles afférente
      \lyricmode {
        _8
        Dans4 le8 wi4 -- ki le8
        no4 -- ble8 wi4 -- ki l'ar8 --
        ticle4 est8 mort4. ce8 soir
      }
    }
 
   \new Staff { % Crée une seconde portée
     \relative {
       \clef "F"
       \time< 4/4
       \partial 8 g8
       \repeat "unfold" 4 { \times 2/3 { g4 g8 } }
       \repeat "unfold" 4 { \times 2/3 { a4 a8 } }
       \repeat "unfold" 4 { \times 2/3 { g4 g8 } }
     }
   }

   \new Lyrics { % Crée la ligne de paroles afférente
     \lyricmode {
       T8
       \repeat "unfold" 6 {\times 2/3 { I4 de8 } \times 2/3 { geek4 T8 } }
     }
   }
 >> % Fin de l'encadrement des voix
 
}

L'absence de parole, par exemple sur un silence, peut se faire avec la commande \skip, mais aussi avec le tiret de soulignement (underscore) « _ ».

Paroles en fin de morceau

[modifier | modifier le wikicode]

En général, seul le premier couplet est sous la ligne mélodique, les autres sont en fin de morceau.

Pour cela, il faut ajouter un environnement \markup après la fermeture de l'environnement \score. La structure globale est alors la suivante :

\version "version"

\header {
   % comme à l'habitude
}

\score {
   % comme à l'habitude
}

\markup {
   \column{
     \line{ Couplet 2. }
     \line{ première strophe }
     \line{ deuxième strophe }
       % etc.
   }
}
\version "2.10"

\header {
   title = "Au clair de la Lune"
   composer = "Jean-Baptiste Lully ?"
   copyright = "Domaine public"
}

\score {

   <<

      \chords {
         \frenchChords
         \repeat "unfold" 2 {
            c1 c4 g4 c2
         }
         d2:m a d g
         c1 c4 g4 c2
      }

      \relative c' {

         \clef treble
         \time 4/4
         \tempo 4=80

         \repeat "unfold" 2 {
            c8 c c d e4 d c8 e d d c2
         }
         d8 d d d a4 a d8 c b a g2 
         c8 c c d e4 d c8 e d d c2
         \bar "|."
      }

      \addlyrics {
         \set stanza = "1. "
         Au clair de la Lu -- ne
         mon a -- mi Pier -- rot
         prè -- te moi ta plu -- me
         pour é -- crire un mot
         ma chan -- delle est mor -- te
         je n'ai plus de feu
         ou -- vre moi ta por -- te
         pour l'am -- our de dieu
      }

      \addlyrics {
         \set stanza = "2. "
         Au clair de la Lu -- ne
         Pier -- rot ré -- pon -- dit
         je n'ai pas de plu -- me
         je suis dans mon lit
         va chez la voi -- si -- ne
         je crois qu'elle y est
         car dans sa cui -- si -- ne
         on bat le bri -- quet
      }

   >>

}


Dans Wikipédia



Une ligne mélodique complète < > Association de plusieurs voix


Association de plusieurs voix

7. Association de plusieurs voix

Voix sur une même portée

[modifier | modifier le wikicode]

Nous avons vu que pour mettre plusieurs voix sur une même portée, il suffisait de mettre les expressions musicales pour chaque voix entre deux paires de crochets pointus (voir Une ligne mélodique complète > Plusieurs voix sur une même portée).

Il peut se produire des collisions, des ambiguïtés. Pour lever ce problème, la première précaution consiste à séparer les expressions musicales par une double barre de fraction inversée \\.

On peut définir explicitement les voix en les introduisant par \new Voice. On peut alors indiquer qu'une voix doit avoir ses hampes orientées vers le haut, et l'autre vers le bas :

  • une voix dont les hampes sont orientées vers le haut commence par \voiceOne ou \voiceThree ;
  • une voix dont les hampes sont orientées vers le bas commence par \voiceTwo ou \voiceFour.
Exemple
\relative c' {
   c4
   <<
      \new Voice { \voiceOne
         c f
      }
      \new Voice { \voiceTwo
         d e
      }
   >>
}

Cette méthode permet d'imbriquer les voix les unes dans les autres (par exemple une voix qui se séparerait en deux).

Si une expression musicale apparaît entre les <<…>> sans être introduite par \new Voice, alors elle est considérée comme la voix principale, c'est-à-dire la continuité de ce qui précède l'ouverture <<. On peut ainsi, par exemple, avoir un phrasé qui commence avant l'ouverture << et qui se termine après.

Exemple
\relative c' {
   c4(
   <<
      { \voiceOne
         c f)
      }
      \new Voice { \voiceTwo
         d e
      }
   >>
}

Voix sur plusieurs portées différentes

[modifier | modifier le wikicode]

Lorsque l'on écrit plusieurs voix sur des portées différentes, alors :

  • les différentes voix sont chacune dans une accolade introduite par la commande \new Staff ;
  • elles sont placées l'une après l'autre, dans l'ordre d'affichage sur la partition ;
  • le tout est englobé dans des doubles crochets pointus <<…>>.
<<

   \new Staff { % voix une
    }

   \new Staff { % voix deux
   }
>>

Pour mettre le nom des instruments, il faut définir, pour chaque voix (à l'intérieur des accolades)[1] :

  • le nom entier de l'instrument, avec la commande \with {instrumentName = "nom complet de l'instrument"} ;
  • le nom abrégé de l'instrument, avec la commande \with {shortInstrumentName = "nom abrégé de l'instrument"}.

L'exemple suivant montre comment faire afficher un nom d'instrument sur deux colonnes :

\new Staff \with {
  instrumentName = \markup {
    \column {
      "Clarinette"
      \line { "en si" \smaller \flat }
    }
  }
shortInstrumentName = "Clar."
}
Exemple
\version "2.18.2-1"

\header {
   title = "Au Clair de la Lune"
   composer = \markup{Anonyme (XVIII\hspace #-1 \super{e} siècle)}
   copyright = "Domaine public"
}

\score {
<<
\new Staff \with {
  instrumentName = "en do"
  shortInstrumentName = "do"
}
{
  \relative c'' {
    \time 2/4
    \tempo 4 = 60

    c8 c c d
    e4 d4
    c8 e d d
    c2 \bar ":|.|:" \break
    d8 d d d
    a4 a4
    d8 c b a
    g2 \break
    c8 c c d
    e4 d4
    c8 e d d
    d2 \bar "|."
  }
}

\new Staff \with {
    instrumentName = \markup {
      \column { "Trompette"
        \line { "en si" \smaller \flat } 
      }
    }
    shortInstrumentName = "Tr."
  }
  \relative c'' {
    \transposition bes
    \key d \major

    d8 d d e
    fis4 e4
    d8 fis e e
    d2
    e8 e e e
    b4 b4
    e8 d cis b
    a2
    d8 d d e
    fis4 e4
    d8 fis e e
    d2
  }
>>
}
Mélodie d’Au clair de la lune pour un instrument en do et une trompette en si bémol.

Il est possible de grouper des voix en un système avec les commandes \new StaffGroup, \new GrandStaff ou \new ChoirStaff, par exemple :

\new StaffGroup <<
   \new Staff {
     % voix 1
   }
   \new Staff {
     % voix 2
   }
>>

cela centre les noms des instruments et affiche une accolade cursive (GrandStaff) ou bien rectiligne (StaffGroup, ChoirStaff) à gauche des portées. Dans le cas de GrandStaff et de StaffGroup, les barres de mesure sont connectées ; ce n'est pas le cas pour ChoirStaff.

Passage d'une portée à une autre

[modifier | modifier le wikicode]

Une voix peut passer d'une portée à une autre. Pour cela, il faut donner un nom à chaque portée (staff) lors de la création et utiliser la commande change :

\new StaffGroup{
<<
   \new Staff="porteeDuHaut" \relative c' {
      \clef "G"
      \times 2/4
      R1
   }
   \new Staff="porteeDuBas" \relative c {
      \clef "F"
      \times 2/4
      c8 \change Staff="porteeDuHaut" d' \change Staff="porteeDuBas" c,4
   }
>>
}

Nous pouvons forcer l'orientation des hampes (stem) avec :

  • \stemUp qui force la hampe vers le haut ;
  • \stemDown qui force la hampe vers le bas ;
  • \stemNeutral qui laisse LilyPond décider de l'oientation.
      \stemUp c8 \change Staff="porteeDuHaut" \stemDown d' \change Staff="porteeDuBas" \stemNeutral c,4
  1. On peut également utiliser la syntaxe suivante :
    \set Staff.instrument = "nom complet de l'instrument"
    \set Staff.instr = "nom abrégé de l'instrument"
    \set Staff.instrument = \markup {
      \column {
        "Clarinette"
        \line { "en si" \smaller \flat }
      }
    }
    \set Staff.instr = "Clar."
    
Dans Wikipédia

Partition de chant et grille d'accords < > Gestion de partitions volumineuses


Gestion de partitions volumineuses

8. Gestion de partitions volumineuses

Une partition peut vite devenir volumineuse, surtout lorsqu'elle contient plusieurs voix. Pour vous aider à gérer cette situation, LilyPond dispose de trois outils : les commentaires, les variables et la possibilité de scinder la partition en plusieurs fichiers. Par ailleurs, il y a la possibilité de créer plusieurs partitions dans un même document, comme par exemple les différentes pièces d'une œuvre. Enfin, la gestion des voix nécessite un peu de rigueur, et la mise en place de certains éléments peut faciliter le déchiffrage par les musiciens.

Les commentaires

[modifier | modifier le wikicode]

LilyPond est au fond un langage de programmation (voir le chapitre Programmation). Ce que vous tapez dans l'éditeur de texte est appelé le « code source ». Une bonne pratique de programmation consiste à commenter le code source. Cela permet :

  • à d'autres personnes de comprendre ce que vous faites, et donc de pouvoir retravailler la partition, la corriger, la modifier ;
  • de pouvoir retrouver rapidement un passage, soit en mettant en évidence certaines parties, soit en mettant des mots-clefs que vous pouvez retrouver avec la fonction de recherche de l'éditeur de texte (en général par le menu Édition | Rechercher).

Un commentaire s'introduit avec le signe pourcent « % » ; tout ce qui suit ce signe sur la ligne est ignoré.

Exemple
{c4 c c d e2 d c4 e d d c1} % thème de base

Vous pouvez définir tout un bloc de commentaires, c'est-à-dire plusieurs lignes. Un bloc de commentaire est ouvert par %{ et est fermé par %}.

Une des manières de faire ressortir une partie du code consiste à mettre un commentaire entouré d'étoiles.

Exemple
%{
*********************
*                   *
* Premier mouvement *
*                   *
*********************
%}

Les commentaires permettent aussi de faire des essais : plutôt que de modifier une ligne, vous pouvez la mettre en commentaire, la copier et modifier la copie, ce qui permet de revenir en arrière facilement.

Exemple
% {<c e>4 <d f> <e g>}
<<
   {c4 d e}
   {e f g}
>>

Une variable est un nom qui se substitue à une expression musicale, c'est-à-dire à des notes dans une paire d'accolades. Pour déclarer la variable, on écrit simplement :

NomDeVariable = { expression musicale }

Pour utiliser cette variable, il suffit d'en écrire le nom précédé d'une barre de fraction inversée :

\NomDeVariable

Comme de nombreux caractères ont des fonctions précises dans LilyPond (caractères spéciaux), il importe que le nom de la variable ne comporte que des lettres, et en particulier pas d'espace, de point, de chiffre, de tiret ni de tiret de soulignement.

Le nom de variable ne doit bien entendu pas être un nom de commande LilyPond.

Exemple
Frère Jacques en canon
ThemePremier = {
   c4 d e c c d e c
}


ThemeSecond = {
   e4 f g2 e4 f g2
}

<<
   \new Staff {
      \ThemePremier
      \ThemeSecond
   }

   \new Staff {
      R1*2
      \ThemePremier
   }
>>

Si vous travaillez avec plusieurs voix, une bonne pratique consiste à définir chaque voix dans une variable portant un nom explicite, puis d'utiliser ces variables dans une deuxième partie de fichier qui sera assez courte.

Exemple
\version "version"

%{
***********************
*                     *
* Definition des voix *
*                     *
***********************
%}

% ***** Chant *****

PartieChant = {}

% ***** Guitare *****

PartieGuitare = {}%{
**************************
*                        *
* Mise en place des voix *
*                        *
**************************
%}

\score {
<<

   \new Staff {
      \set Staff.instrument = "Chant"
      \set Staff.instr = "Ch."
      \PartieChant
   }

   \addlyrics {
      paroles
   }

   \new StaffGroup {
   <<

      \new Staff {
         \set Staff.instrument = "Guitare"
         \set Staff.instr = "Gtr."
         \clef "G_8"
         \PartieGuitare
      }

      \new TabStaff {
         \PartieGuitare
      }

   >>
   }

>>
}

(Voir le chapitre suivant pour l'explication de TabStaff.)

L'utilisation de variables permet par ailleurs de faciliter le suivi de l'évolution de LilyPond. En effet, la description de la musique (donc le contenu des variables) est peu susceptible de changer, contrairement aux instructions spécifiques qui entourent cette musique. Ce point est d'autant plus important que le projet est volumineux.

Une variable peut également contenir une chaîne de caractère (éventuellement contenue dans un \markup {…} et assortie d'un indicateur de position « ^ » ou « _ »

Scinder la partition en plusieurs fichiers

[modifier | modifier le wikicode]

Il est possible de scinder la partition sur plusieurs fichiers. Chaque fichier élémentaire sert alors à définir une variable, et cette variable est utilisée dans un autre fichier, dit « fichier maître ». Le fichier élémentaire est intégré dans le fichier maître par la commande \include "nom_de_fichier".

Exemple
Le fichier chant.LY contient
% ***** Chant *****

PartieChant = {
   …
}

le fichier guitare.LY contient
% ***** Guitare *****

PartieGuitare = {
    …
}
le fichier maître (par exemple nom_du_morceau.LY) contient
\version "version"

%{
***********************
*                     *
* Definition des voix *
*                     *
***********************
%}

\include "chant.ly"
\include "guitare.ly"

%{
**************************
*                        *
* Mise en place des voix *
*                        *
**************************
%}

\score {
<<

   \new Staff {
      \set Staff.instrument = "Chant"
      \set Staff.instr = "Ch."
      \PartieChant
   }

   \addlyrics {
      paroles
   }

   \new StaffGroup {
   <<

      \new Staff {
         \set Staff.instrument = "Guitare"
         \set Staff.instr = "Gtr."
         \clef "G_8"
         \PartieGuitare
      }

      \new TabStaff {
         \PartieGuitare
      }

   >>
   }

>>
}

Plusieurs partitions

[modifier | modifier le wikicode]

Il est possible de mettre plusieurs partitions, contenues dans un contexte \score {…}, dans un même document. Pour cela, il faut utiliser un contexte global \book {…} (littéralement « livre ») qui contient les différentes partitions.

Il peut alors y avoir :

  • un en-tête général, définissant le titre de l'œuvre et le nom de l'auteur ;
  • un en-tête par partition, définissant le nom de la pièce.

Il est possible de placer du texte (par exemple des paroles) entre les partitions contenues dans le livre, avec la commande \markup (sur ce point, voir Partition de chant et grille d'accords > Paroles en fin de morceau).

Exemple
 \book {

   \header {
      title = \markup {
         "Sonate en si" \flat " majeur pour deux hautbois"
      }
      composer = "Haendel"
      copyright = "Domaine public"
   }

   \score {
      \header { piece = "Adagio" }
      musique
   }

   \score {
      \header { piece = "Allegro" }
      musique
   }}

Gestion des voix

[modifier | modifier le wikicode]

Pour les petites partitions, on peut laisser les voix se « créer toutes seules ». Avec les grandes partition, il faut :

  • créer explicitement les portées et les voix avec la commande \new type ;
  • donner des noms aux voix, en ajoutant = "NomDeVoix" après le type de voix ;
  • regrouper les voix de même type dans des groupes (StaffGroup, PianoStaff, GrandStaff et ChoirStaff).

Le fait d'associer un nom à une voix permet de faire passer une ligne mélodique d'une voix à une autre, et d'associer des paroles à une voix donnée (voir ci-après).

Exemple
\score {

    \new ChoirStaff {

       \new Staff = "duo" {
          \new Voice = "VoixUn" {} \\

          \new Voice = "VoixDeux" {}
       }

    }

       \new Staff = "VoixBasse" {}

    }

    \new PianoStaff {

       \new Staff = "PianoAigu" {}

       \new Staff = "PianoGrave" {} 
    }

}

Aide au déchiffrage

[modifier | modifier le wikicode]

Les grandes partitions sont en général des morceaux longs. Un certain nombre d'éléments facilitent le déchiffrage.

Repères de répétition

[modifier | modifier le wikicode]

LilyPond numérote les mesures et indique le numéro au début de chaque ligne. Cela permet, lors des répétitions, de reprendre à un endroit donné (« on reprend mesure 56 »). Il est possible de placer des repères, par exemple à l'introduction de nouveaux thèmes, ou aux « changements d'ambiance ». Pour cela, il suffit de mettre \mark \default avant la première note de la mesure visée ; cela place une lettre, qui facilite le repérage (« on reprend à B », « à la levée de C », « 8 après D »…).

Si l'on veut que le repère soit aligné avec la barre de mesure, on met :

\override Score.RehearsalMark.break-align-symbols =#'(time-signature)

Par défaut, les repères sont des lettres. Si l'on ne veut pas commencer au A mais, par exemple, à la 8e lettre (le H), on utilise :

\mark #8

Si l'on veut que la lettre soit encadrée, on utilise (avant le premier repère, par exemple au début de l'environnement \new Staff {}) :

\set Score.markFormatter = #format-mark-box-alphabet

Si l'on veut que les repères soient des nombres, on utilise :

\set Score.markFormatter = #format-mark-numbers

et pour des nombres encadrés, on utilise :

\set Score.markFormatter = #format-mark-box-numbers

Si l'on veut imposer un repère de répétition, il suffit de remplacer le default par la chaîne de caractère désirée, par exemple :

\mark "*"

Numérotation des mesures

[modifier | modifier le wikicode]

La numérotation des mesures est automatique. Si l'on veut changer le numéro à partir d'une mesure on utilise la syntaxe suivante :

\set Score.currentBarNumber = #50

ici, la mesure sera numérotée 50, celle d'après 51, etc.

Par défaut, le numéro de la première mesure d'un environnement \score{} n'est pas affiché. Pour forcer l'affichage du numéro, il faut commencer la partie par une barre vide, \bar "".

Citation d'une mélodie

[modifier | modifier le wikicode]

Certaines parties ont de nombreuses mesures à compter. Le démarrage de l'instrument peut parfois être annoncé par le thème joué par un autre instrument. Le fait de citer ce thème facilite le travail du musicien, qui peut ainsi éviter de compter les mesures.

Pour cela, on a recours à une deuxième voix sur la portée pour citer la mélodie en parallèle des derniers silences.

Exemple
\score {

   \new Staff \relative c' {

      \set Score.skipBars = ##t

      R1*18

      <<
         {\set fontSize = #-4 % notes citées plus petite
            bes'2^"hautbois" c a1 % thème cité 
         } \\
         { r1 r1 } % derniers silences de la partie
      >>

      a16 bes c d e4
   }

}

Il y a possibilité d'« automatiser » cela en utilisant les fonctions \addquote et \quoteDuring ou \cueDuring.


Dans Wikipédia

Association de plusieurs voix < > Notation spécifique à certains instruments


Notation spécifique à certains instruments

9. Notation spécifique à certains instruments

Instruments à corde

[modifier | modifier le wikicode]

Avec un instrument à corde, il est possible de laisser sonner une note pendant que l'on joue la suivante. Pour cela, on ajoute la commande \laissezVibrer après la note.

Pour indiquer une respiration (avec une apostrophe), on utilise la commande \breathe.

La partie de piano se compose de deux portées, une en clef de sol (en haut) et une en clef de fa. Les deux portées, créées comme à l'habitude par \new Staff, sont introduites la commande \new PianoStaff : les deux portées sont alors reliées par une accolades, et l'on n'indique le chiffrage de la mesure que pour la première portée (par contre, les altérations à la clef doivent être indiquées pour chaque portée).

Exemple
\new PianoStaff <<
   \new Staff \relative c' {
      \key g \major \time 3/4
      c4 e g
   }
   \new Staff \relative c {
      \clef bass \key g \major 
      \repeat "unfold" 3 { \times 2/3 {  c8[ e g] } }
   }
>>

Si l'on n'a qu'une seule mélodie, on peut aussi laisser LilyPond placer les notes sur la portée du haut ou du bas : les notes plus aiguës que le do médium sont placées en haut, et les notes plus graves en bas. On n'a plus donc qu'une seule voix. Pour cela, on utilise la commande \autochange.

Exemple
\new PianoStaff
   \autochange \relative c {
      c4 e g c e g
   }

Pour indiquer les actions sur les pédales, on met les commandes suivantes après la note à laquelle on effectue l'action :

  • \sustainDown : on appuie sur la pédale forte (celle qui prolonge le son) ;
  • \sustainUp : on relâche la pédale forte ;
  • \unaCorda : on appuie sur la pédale douce ;
  • \treCorde : on relâche la pédale douce ;
  • \sostenutoDown : on appuie sur la pédale de soutien ;
  • \sostenutoUp : on relâche la pédale de soutien.

Par défaut, l'appuie sur la pédale forte est indiqué par la mention « Ped. » en écriture cursive, et le relâchement est indiqué par une étoile. On peut remplacer ceci par un crochet placé sous les notes à laisser sonner, en indiquant la commande :

\set Staff.pedalSustainStyle = #'bracket

On peut indiquer la mention « Ped. » et mettre des crochets avec la commande :

\set Staff.pedalSustainStyle = #'mixed

Notation classique

[modifier | modifier le wikicode]

Habituellement, on utilise la clef de sol une octave en dessous de son niveau normal ; on utilise donc \clef "G_8".

Pour entrer le doigté utilisé, on peut utiliser les indications habituelles (cf. Une ligne mélodique complète > Indications supplémentaires).

Dans le cas d'un accord, on peut indiquer le numéro de corde, on ajoute simplement le numéro de la corde précédé d'une barre de fraction inversée :

  • \1 pour la mi aigu ;
  • \2 pour la si ;
  • \3 pour la sol ;
  • \4 pour la  ;
  • \5 pour la la ;
  • \6 pour la mi grave.

On utilise les mêmes conventions pour les autres instruments de la famille, comme le banjo ou la guitare basse. Notons que comme pour la guitare, on écrit les notes une octave au dessus de leur hauteur réelle avec la guitare basse ; on utilise donc \clef "F_8".

Pour mettre des tablatures, on crée une portée spécifique avec la commande \new TabStaff. La corde est indiquée comme ci-dessus, et la frette est déterminée automatiquement.

Au lieu d'indiquer la corde, on peut indiquer la position, c'est-à-dire la frette sous l'index (la frette plus basse jouée). Pour cela, on définit la variable \set TabStaff.minimumFret = #n°_de_frette ; il est alors inutile d'indiquer le numéro de corde après.

Exemple
gamme pentatonique de la mineur avec indication des cordes
gammeLaMinPenta = {
   a8\6[ c\6 d\5 e\5] g\4[ a\4 c\3 d\3] e\2[ g\2 a\1 c\1]
   c\1[ a\1 g\2 e\2] d\3[ c\3 a\4 g\4] e\5[ d\5 c\6 a\6]
}

<<

   \new Staff \relative c {
      \clef "G_8"
      \gammeLaMinPenta
      \bar "|"
   }

   \new TabStaff \relative c {
      \gammeLaMinPenta
      \bar "|"
   }

>>
gamme pentatonique de la mineur avec indication de la position
gammeLaMinPenta = {
   a8[ c d e] g[ a c d] e[ g a c]
   c[ a g e] d[ c a g] e[ d c a]
}

<<

   \new Staff \relative c {
      \clef "G_8"
      \gammeLaMinPenta
      \bar "|"
   }

   \new TabStaff \relative c {
      \set TabStaff.minimumFret = #5
      \gammeLaMinPenta
      \bar "|"
   }

>>
les deux donnent le même résultat :

Si l'on écrit en parallèle la musique sur une portée et sur une tablature, on peut mettre en évidence l'association des deux en les plaçant dans un groupe de portées (\new StaffGroup), notamment lorsque d'autres voix sont portées sur la partition.

Si l'on change l'accordage de la guitare (par exemple jeu en accordage « à vide », « open chords »), il faut indiquer la note à vide de chaque corde. Cela s'indique sous la forme d'un entier positif ou négatif qui correspond au nombre de demi-tons par rapport au do médium.

Par exemple, pour un accordage ouvert en ré (D open tuning), les cordes suivant la progression ré-la-ré-fa♯-la-ré (DADF♯AD) :

\new TabStaff <<
   \set TabStaff.stringTunings = #'(+2 -3 -6 -10 -15 -22)
   {
     musique
   }
>>

Il existe aussi des modes prédéfinis, par exemple

\set TabStaff.stringTunings = #guitar-open-d-tuning

On utilise aussi cette technique pour créer les tablatures d'une guitare basse, mais Lilypond dispose d'un mode prédéfini :

\set TabStaff.stringTunings = #bass-tuning

En guise de référence, voici les accordages habituels de la guitare et de la basse :

guitare : (+4 -1 -5 -10 -15 -20) ;
basse : (-17 -22 -27 -32).

Diagramme d'accord

[modifier | modifier le wikicode]

On peut placer un diagramme d'accord. C'est une chaîne de caractère \markup placée au-dessus de la portée, donc avec l'accent circonflexe « ^ ». Ce diagramme est introduit par \fret-diagram-terse #"diagramme" et est une succession de codes séparés par un point virgule ; le code peut être :

  • x (petit X) : la corde n'est pas jouée ;
  • o (petit O) : la corde est jouée à vide ;
  • un numéro : la frette correspondante.

L'ordre des cordes est de la plus grave à la plus aiguë (de gauche à droite sur le diagramme).

Exemple
accord de ré majeur
d'4^\markup \fret-diagram-terse #"x;x;o;2;3;2;"

Exemple
accord de la mineur
<<
   \new Staff {
      \clef "G_8"
      <e, a, e a   c'   e'>1^\markup \fret-diagram-terse #"o;o;2;2;1;o;"
      \bar "|"
   }

   \new TabStaff {

      <e, a, e a   c'   e'>1
      \bar "|"
   }

>>

Pour faire un barré, il faut :

  • pour la première corde concernée, que la frette soit suivie d'un tiret puis d'une parenthèse ouvrante, avant le point-virgule ;
  • pour la dernière corde concernée, que la frette soit suivie d'un tiret puis d'une parenthèse fermante, avant le point-virgule.
Exemple
accord de sol majeur en barré sur la troisième case
\relative c' {
   g ^\markup \fret-diagram-terse #"3-(;5;5;4;3;3-);"
}

On peut faire figurer plusieurs doigtés sur une même corde (par exemple pour indiquer deux accords proches avec un seul diagramme, ou encore une alternative à un accord). Pour cela, il suffit de mettre les indications de frette séparées par un espace, avant le point-virgule qui conclut la corde.

Si l'on utilise \fret-diagram #"diagramme" à la place, il faut indiquer le numéro de corde devant, le mi grave étant la corde 6 et le mi aigu la corde 1. Le diagramme est une succession de n° de corde-frette;. Dans ce cas-là, le barré n'est pas figuré par un trait.

Exemple
\relative c' {
   d4^\markup \fret-diagram #"6-x;5-x;4-o;3-2;2-3;1-2;"
   g ^\markup \fret-diagram #"6-3-(;5-5;4-5;3-4;2-3;1-3-);"
}

Autres notations

[modifier | modifier le wikicode]

Les notes étouffées se notent avec un croix. Pour ce faire, on introduit le passage par \override NoteHead #'style = #'cross et on le termine par \revert NoteHead #'style.

Nous avons déjà vu comment faire figurer des paroles (voir Partition de chant et grille d'accords > Paroles). Il existe d'autres manières de faire, qui donnent des possibilités supplémentaires.

Par ailleurs, pour être aussi rigoureux que les portées, les paroles devraient être introduites par \new Lyrics.

Les voix chantées peuvent être regroupées dans un ensemble \new ChoirStaff <<…>>.

Si les paroles sont trop resserrées, on peut augmenter l'espacement avec \override Lyrics.LyricSpace #'minimum-distance = #valeur, par exemple \override Lyrics.LyricSpace #'minimum-distance = #valeur. Cette commande prend effet pour les paroles qui suivent. On peut le généraliser en le mettant dans le bloc \layout (voir Mise en forme d'une partition.

Mode \lyricmode

[modifier | modifier le wikicode]

Si l'on utilise le mode \lyricmode, il est possible d'indiquer la durée de chaque syllabe ; si la durée est omise, LyliPond la détermine de manière automatique comme avec \addlyrics.

Exemple
\score {

   <<

      \new Staff \relative c' {

         \clef treble
         \time 4/4
         \tempo 4=80

         c8 c c d e4 d
      }
 
      \new Lyrics \lyricmode {

         \set stanza = "1. "
         Au8 clair de la Lu-4 ne

      }
 
   >>

}

Ce mode permet de placer des paroles dans une variable.

Mode \lyricsto

[modifier | modifier le wikicode]

Le mode \lyricsto permet de travailler avec des portées ayant plusieurs voix. En effet, si l'on donne un nom à une voix, on peut alors associer explicitement les paroles à une voix.

Exemple
\score {

   <<

      \new Staff \relative c' {

         \clef treble
         \time 4/4
         << 
            \new Voice = "voixUn" \relative c' {
               e4 f g2
            } \\
            \new Voice = "voixDeux"  \relative c' {
               c4 d e c
            }
         >>
      }
 
      \new Lyrics \lyricsto "voixUn" {
         dor -- mez vous
      }

      \new Lyrics \lyricsto "voixDeux" {
         frè -- re Jac -- ques
      }
 
   >>

}

Dans ce mode, le placement des syllabes est déterminé de manière automatique, comme avec \addlyrics. Par ailleurs, lorsque des notes sont liées par un legato, cela est automatiquement considéré comme un mélisme. Pour qu'un groupe non lié soit considéré comme un mélisme, il faut placer \melisma après la première note et \melismaEnd après la dernière note du groupe.

Instruments transpositeurs

[modifier | modifier le wikicode]

Dans le cas d'un instrument transpositeur, comme une clarinette ou une trompette en si ♭, on écrit la hauteur des notes que doit lire l'instrumentiste. Si l'on veut générer un fichier midi, on indique à LilyPond qu'il faut décaler les notes par l'instruction :

\transposition bes

Voir l'exemple dans Association de plusieurs voix > Voix sur plusieurs portées différentes.

Pour entrer une partie de batterie, on utilise la commande \drums à la place de \new Staff. À la place des noms des notes, on utilise les noms des accessoires (en anglais), ou bien leur abréviation. Les durées sont indiquées comme à l'habitude. Par exemple, pour un coup de grosse caisse sonnant durant une noire, on peut entrer bassdrum4 ou bien bd4.

Exemple
<<

   \new StaffGroup { <<

      \new Staff \relative c, {
         \clef "F_8"
         \partial 8
         d16 c
         a4 a a r8. a16
         a8 a c a16 d~ d2
      }

      \new TabStaff \relative c, {
         \set TabStaff.stringTunings = #bass-tuning
         \partial 8
         d16 c
         a4 a a r8. a16
         a8 a c a16 d~ d2
      }

   >>}

   \drums {
      \partial 8
      r8
      <<
         {
            \repeat "unfold" 2 {hhc8 hhc hhc hhc hhc hhc hhc hho}
         }

         {
            \repeat "unfold" 2 {bd4 sn bd sn}
         }
      >>

   }

>>
donne
Fichier:Ly intro queen another one bites the dust.png
écouter l'extrait
Nom et abréviations des accessoires
Accessoire Nom LilyPond Abréviation
frappe de baguettes sidestick ss
grosse caisse bassdrum bd
caisse claire snare sn
tom aigu hightom tomh
tom moyen aigu himidtom tommh
tom moyen grave lowmidtom tomml
tom grave lowtom toml
charleston hihat hh
charleston ouvert hihatopen hho
charleston semi-ouvert halfopenhihat hhho
charleston fermé closedhihat hhc
pédale de charleston pedalhihat hhp
crash crashcymbal cymc
splash splashcymbal cyms
ride ridecymbal cymr
cloche du ride ridebell rb
frappe de main handclap hc

La liste des accessoires se trouve dans le fichier drumpitch-init.LY situé dans un dossier ly (par exemple LiLypond\ usr\ share\ lilypond\ current\ ly\).


Dans Wikipédia



Gestion de partitions volumineuses < > Mise en forme d'une partition


Mise en forme d'une partition

10. Mise en forme d'une partition

LilyPond se charge lui-même de la mise en page. Il est toutefois possible de lui donner des directives.


Note
On attribue des valeurs aux variables avec le signe égale : variable = valeur. Dans certains cas, le chiffre est précédé du croisillon # (parfois appelé, à tort, « dièse ») ; de manière générale :
  • le croisillon est un symbole de Scheme (le langage dans lequel est écrit LilyPond) ; le croisillon est en général optionnel puisque les valeurs sont par défaut interprétées en tant qu'expression de Scheme, mais il devient obligatoire lorsqu'il y a une ambiguïté (par exemple, « -1 » est normalement interprété comme un doigté, il faut écrire « #-1 » pour qu'il soit interprété comme « moins un ») ;
  • il ne doit pas y avoir de croisillon lorsque l'expression ne doit pas être interprétée par Scheme (comme par exemple celles contenant une unité, par exemple dans le cas de « 2\cm » pour « deux centimètres »).
Si l'on ne connaît pas Scheme, le mieux est de reproduire la syntaxe des exemples de la documentation officielle, ou de procéder par essai-erreur.
Certaines variables sont des booléens, c'est-à-dire ont pour valeur « vrai » ou « faux ». La valeur « vrai » est notée « #t » (true) et la valeur « faux » est notée « #f » (false). Si ces valeurs sont précédées du croisillon, on écrit variable = ##t ou variable = ##f.

Retour de ligne et saut de page

[modifier | modifier le wikicode]

On peut forcer un retour de ligne avec l'instruction \break. Cette commande ne peut se placer que là où se trouve une barre de mesure « valide » (par exemple, une note qui dépasse d'une mesure rend impossible le saut de ligne). Il est possible de forcer un retour au milieu d'une mesure en introduisant une barre de mesure « invisible », avec la commande \bar "".

On peut à l'inverse empêcher un retour de ligne avec la commande \noBreak. Cette commande doit aussi être placée à une barre de mesure valide.

Si l'on veut faire des retours de ligne régulier, on peut alors créer un voix qui ne contiendra que des retours de ligne, parallèle à la musique. Les retours de lignes sont alors séparés par des valeurs temporelles s (space).

Exemple
Pour forcer un retour de ligne toutes les quatre mesures pour une mesure à quatre temps, sur vingt-huit mesures (7×4) :
<<
   \repeat unfold 7 {
      s1 \noBreak s1 \noBreak
      s1 \noBreak s1 \break
   }

   { musique }
>>

On peut forcer un saut de page avec la commande \pageBreak, et on peut interdire un saut de page avec \noPageBreak.

« Écrire plus petit »

[modifier | modifier le wikicode]

L'exemple suivant permet de mettre « plus de notes dans une page » que le comportement par défaut :

\version "2.18.2"

#(set-global-staff-size 19) % notes plus petites

\score { #(set-default-paper-size "a4" )
 
  <<
  
    \new Staff {
      […]
    }
    
    […]
    
  >>
  
  \layout{
    indent = 5\mm
    \context {
      \Score
      \override SpacingSpanner.common-shortest-duration =
        #(ly:make-moment 1/2) % notes plus rapprochées
    }
   }
}

La valeur de set-global-staff-size est en points typographiques. Les valeurs habituelles sont entre 11 et 16 pour des livrets de poche, 18 pour un carnet de chant et 20 à 25 pour une partition. La valeur par défaut est 20.

La valeur indent est le décalage de la première ligne. La valeur par défaut est 15\mm (1.5\cm).

La valeur common-shortest-duration indique quelle est la figure de base. La valeur par défaut, 1/4, désigne une noire ; les notes plus courtes sont suivie d'une espace proportionnelle à la durée. Si nous prenons une valeur de référence plus longue, ici 1/2 pour une blanche, cela resserre les notes.

Si le fichier comporte plusieurs partitions (scores), on peut alors fixer une taille deportée par partition dans les environnements \score :

\score{
  ...
  \layout{
    #(layout-set-staff-size 14)
  }
}

Configurer le comportement

[modifier | modifier le wikicode]

On peut modifier la manière dont LilyPond place les différents éléments.

Dans un fichier .LY, il y a deux endroits où l'on peut indiquer les paramètres. Ces « blocs de définition » sont :

  • le bloc de définition du papier, \paper {…}, qui se place en début de document, avant la partition ;
  • le bloc de définition de la mise en forme, \layout {…}, qui se place au sein de la partition.

La structure globale du fichier est donc :

\paper {}

\score {
   musique
   \layout {}
}

Blocs de définition du papier

[modifier | modifier le wikicode]

Le bloc \paper {…} peut contenir plusieurs paramètres.

Choix du format du papier

[modifier | modifier le wikicode]

On peut définir le format du papier avec la commande #(set-paper-size "format"), où format est :

  • a6 (10,5×14,8 cm), a5 (14,8×21 cm), a4 (21×29,6 cm), ou a3 (29,7×42 cm) : formats standards ISO ;
  • legal (21,6×35,6 cm), letter (21,6×27,9 cm) et 11x17 (27,9×43,2 cm) : formats étatsuniens.

Le format par défaut est a4.

L'orientation par défaut est « portrait » (la grande dimension est verticale). Pour que le papier soit orienté en « paysage » (la grande dimension à l'horizontale), il faut alors utiliser la commande

#(set-default-paper-size "format" 'landscape)

placée au début du fichier (pas dans le bloc \paper).

Si l'on veut générer une image de petit format, par exemple juste quelques lignes de musique à intégrer dans autre document, on peut utiliser les variables paper-width (largeur de page), line-width (largeur de ligne) et paper-height, par exemple

\paper {
   paper-width = 16.0\cm
   line-width = 15.0\cm
   paper-height = 10.0\cm
   make-footer=##f
}

L'attribution de la valeur « faux » à la variable make-footer enlève le pied de page.

Par défaut lilypond ajoute un pied de page "Music engraving by LilyPond (N° de version) — www.lilypond.org". On peut le modifier dans le bloc \paper.

Exemple :

  oddFooterMarkup = \markup {
   \fill-line {
     \fromproperty #'header:title
     [N° de version de la partition]
   } }

compose une ligne rappelant le titre de la partition sur sa partie gauche et indiquant son N° de version sur la droite.

On peut également ajuster la largeur des portées (line-width), les marges (top-margin, right-margin, bottom-margin, left-margin), la distance entre l'en-tête et la première portée (head-separation) ou entre le pied de page et la dernière portée (foot-separation), l'espacement entre les systèmes de portées (between-system-space), …

Marges et espacement entre blocs

[modifier | modifier le wikicode]

On peut définir la taille des marges sous la forme variable = valeur. La valeur peut être indiquée en millimètres, en ajoutant \mm derrière la valeur, en en centimètres, en ajoutant \cm, en pouces, en ajoutant \in, et en point typographique en ajoutant \pt. Les variables pour les marges sont les suivantes

  • top-margin : distance entre le haut de la feuille et le haut des caractères de la première ligne (5 mm par défaut)
  • bottom-margin : distance entre le bas de la feuille et le bas des caractères de la dernière ligne (6 mm par défaut)
  • left-margin distance entre la gauche de la feuille et la gauche du premiers caractère de chaque ligne (pas de défaut).

Les marges de gauche et de droite sont en fait définis par la largeur de la ligne, déterminée par la variable line-width (20 mm par défaut). Si left-margin n'est pas défini, la ligne est centrée. La marge de droite dépend de la marge de gauche et de la largeur de la ligne.

Par ailleurs, on peut aussi définir l'espacement entre les différents blocs de la page :

  • head-separation : distance entre l'en-tête (titre, auteur…) et la première portée (4 mm par défaut) ;
  • foot-separation : distance entre la dernière portée et le pied de page (4 mm par défaut) ;
  • horizontal-shift : décalage vers la droite de certains éléments, laissant plus de place pour les noms d'instrument (0 par défaut) ;

LilyPond peut utiliser trois algorithmes différents pour déterminer les sauts de page :

  • optimal-breaking (par défaut) : cherche à éviter que les notes soient trop resserrées ou espacées ;
  • page-turn-breaking : cherche à placer les sauts de page aux endroits où il y a des silences, afin de diminuer la difficulté liée au fait de tourner les pages ; on peut aussi indiquer qu'un saut de page est possible avec l'instruction \allowPageTurn ;
  • optimal-page-breaks (l'ancien algorithme).

Pour changer l'algorithme utilisé, il faut mettre dans le bloc de définition /paper la commande #(define page-breaking ly:algorithme).

Exemple
\paper{
   #(define page-breaking ly:page-turn-breaking)
}

Numérotation des pages

[modifier | modifier le wikicode]

On peut définir les variables suivantes :

  • first-page-number : numéro de la première page (1 par défaut) ;
  • print-first-page-number : vrai (##t) pour que la première page soit numérotée, faux (##f, valeur par défaut) pour qu'elle ne le soit pas ;
  • print-page-number : vrai (##t, valeur par défaut) pour que les numéros de page soient imprimés, faux (##f) pour qu'ils ne le soient pas.

Extension sur la page

[modifier | modifier le wikicode]

Par défaut, les notes sur une portée sont placées de manière à occuper toute la largeur de la ligne. Si l'on veut avoir une écriture plus compacte, alors il faut mettre la variable ragged-right sur vrai (##t). Ceci est utile lorsque l'on n'a qu'une seule ligne (par exemple, pour les courtes citations, les présentations d'un thème…).

On peut demander à LilyPond de n'avoir une écriture compacte que sur la dernière ligne de la partition. Ceci se fait en mettant la variable ragged-last sur vrai (##t).

La première ligne est en général en retrait (indentation). On peut modifier ce retrait en modifiant la valeur de la variable indent.

Par défaut, LilyPond ne cherche pas à remplir toute la page. On peut forcer Lilypond à augmenter l'espace entre les portées afin d'occuper tout l'espace vertical. Pour cela, il faut mettre la variable ragged-bottom sur vrai (##t).

Ceci ne s'applique pas à la dernière page. Pour que les portées s'espacent sur la dernière page, il faut mettre la variable ragged-last-bottom sur faux (##f).

Autres paramètres globaux

[modifier | modifier le wikicode]

Les paramètres globaux ne concernant pas le papier en lui-même sont fixés hors de tout bloc ou contexte.

Taille des portées

[modifier | modifier le wikicode]

Il existe huit tailles de portée, exprimées en point typographique : 11 (pour les livrets de poche), 13, 14, 16, 18 (pour les livres de chant), 20 (pour les partitions classiques), 23 et 26.

Pour définir la taille de portée par défaut, on utilise la commande

#(set-global-staff-size taille)

par exemple

#(set-global-staff-size 14)

Bloc de définition de la mise en page d'une partition

[modifier | modifier le wikicode]

Le bloc \layout {…} peut contenir plusieurs paramètres, qui s'appliquent à une partition donnée (mais pas à tout un livre). On peut ainsi faire varier la mise en forme d'une pièce à l'autre d'une même œuvre, ou entre les morceaux d'un recueil.

On peut par exemple mettre les variables ragged-right, ragged-last ou indent dans le bloc \layout {…} plutôt que \paper {…}. Dans le cas où il n'y a qu'une seule partition dans le fichier, cela n'a aucune importance.

Dans une expression musicale

[modifier | modifier le wikicode]

Certaines modifications ne concernent qu'une expression musicale, ou qu'une partie de cette expression.

Taille des notes

[modifier | modifier le wikicode]

La taille des notes est calculée en fonction de la taille de la portée (pour une portée de 20 points, les notes ont une taille de 10 points) ; la police utilisée pour les figures de notes est Feta.

On peut changer provisoirement la taille des notes avec la commande \set fontSize = #modificateur, où modificateur est un nombre entier, positif ou négatif :

  • -6 : moitié de la taille normale ;
  • 0 : taille normale ;
  • 6 : double de la taille normale.

Un pas représente une variation d'environ 12 % de la taille précédente. Par exemple pour une portée de 20 points, \set fontSize = #-1 donnera des notes de taille 9 tandis que \set fontSize = #1 donnera des notes de taille 11.

Quelques astuces

[modifier | modifier le wikicode]

Positionnement vertical des silences

[modifier | modifier le wikicode]

Les silences sont placés automatiquement sur la portée par Lilypond, la plupart du temps d'heureuse façon. Quelquefois cependant, il peut paraître nécessaire d'ajuster la position du silence sur la portée.

On utilise habituellement une commande du type fa4\rest par exemple pour placer un soupir à la hauteur de la note fa sur la portée.

On peut aussi utiliser une commande du type \once\override Rest #'extra-offset = #'(0.0 . 5.0) r4. Il faut placer cette commande juste avant le silence à modifier. Elle présente l'avantage de pouvoir aussi ajuster la position horizontale du silence. Cela peut servir dans des cas particuliers. Bien sûr les paramètres de la commande (ici ajustement horizontal 0.0 et ajustement vertical 5.0) sont à régler finement au cas par cas, le plus souvent par tatonnement. Ces paramètres peuvent être négatifs. Toutefois, cette commande ne fonctionne pas correctement pour les pauses et les demi-pauses à placer en dehors des portées.

Enfin la commande suivante peut aussi modifier la position verticale de pauses par exemple, tout au long de plusieurs mesures : \override MultiMeasureRest #'staff-position = #4.


Positionnement de textes

[modifier | modifier le wikicode]

On peut modifier la position horizontale et verticale de textes au-dessus de la portée avec la commande \once\override Voice.TextScript #'extra-offset = #'(-1.5 . -1.0) par exemple.

Un texte peut comporter aussi une marque musicale, un trille, un point d'orgue par exemple. Voici un exemple complet : \once\override Voice.TextScript #'extra-offset = #'(-1.5 . -1.0) la4^\markup{"(" \hspace #0.5 \musicglyph #"scripts.ufermata" \hspace #-1 ")"} Il s'agit d'un point d'orgue placé entre parenthèses. La position du point d'orgue a été ici ajustée avec les paramètres -1.5 horizontalement et -1.0 verticalement.


Dans Wikipédia

Notation spécifique à certains instruments < > Génération d'un fichier de son


Génération d'un fichier de son

11. Génération d'un fichier de son

Pour que LilyPond génère un fichier de son, il faut indiquer \midi {} à la fin du fichier. La commande doit être placée à l'intérieur du contexte \score, mais après la description de la musique (après le dernier >> ou l'accolade de fermeture de la voix lorsqu'il n'y en a qu'une).

Le fichier Midi est alors généré automatiquement lors de la compilation. Cependant, il n'y a alors pas de fichier PS ou PDF généré.

Pour que la compilation génère la partition et le fichier son, il faut mettre également une commande \layout {} à côté de la commande \midi {}

La structure globale du fichier est donc :

\score {
   {
      musique
   }
\layout { }
\midi { }
}

ou bien, à plusieurs voix :

\score {
   <<
      \new Staff {
         musique
      }

      \new Staff {
         musique
      }>>
\layout { }
\midi { }
}

Choix des instruments

[modifier | modifier le wikicode]

On peut définir l'instrument associé à chaque voix. Pour cela, il faut définir la variable Staff.midiInstrument dans la voix (c'est-à-dire entre les accolades de la voix). Ceci est indépendant du nom qui est affiché, défini par la variable \set Staff.instrument (cette dernière n'est qu'une chaîne de caractères destinée à être affichée).

Exemple
\new Staff {
   \set Staff.instrumentName = "nom de l'instrument"
   \set Staff.midiInstrument = "instrument midi"

   musique
}

ou bien

\new Staff \with { instrumentName = "nom de l'instrument" midiInstrument = "instrument midi" } {

   musique
}
Liste non exhaustive de noms d'instrument utilisables
Instrument Nom codifié
Cordes frottées
violon violin, orchestral strings, string ensemble 1 ou 2, pizzicato strings, fiddle
alto viola
violoncelle cello
contrebasse contrabass
Bois
flute traversière
piccolo
flute
piccolo
hautbois
cor anglais
oboe
english horn
clarinette clarinet
basson bassoon
saxophone soprano sax, alto sax, tenor sax, baritone sax
cornemuse, biniou bagpipe
Cuivres
trompette trumpet
trombone trombone
tuba tuba
cor french horn
Cordes pincées
guitare classique
guitare folk
acoustic guitar (nylon)
acoustic guitar (steel)
guitare électrique electric guitar (jazz), electric guitar (clean), electric guitar (muted), overdriven guitar, distorted guitar
basse acoustic bass, electric bass (finger), electric bass (pick), fretless bass, slap bass 1 ou 2
banjo banjo
clavecin harpsichord
harpe orchestral harp
Claviers
piano acoustic grand, bright acoustic, electric grand, honky-tonk (bastringue), electric piano 1 ou 2
clavecin harpsichord
orgue drawbar organ, percussive organ, rock organ, church organ
accordéon accordion
Percussions
cloches glockenspiel, tubular bells, tinkle bell
xylophone xylophone
boîte à musique music box
Divers
voix choir aahs, voice oohs, synth voice
bruitages fx 1 (rain), guitar fret noise, breath noise, seashore, bird tweet, telephone ring, helicopter, applause, gunshot

Voir la totalité des noms utilisables sur la page MIDI instruments du site de LilyPond

Paramètres de la commande \midi

[modifier | modifier le wikicode]

Les accolades situées après \midi permettent de mettre des commandes de paramétrage — les accolades sont obligatoires même en l'absence de telles commandes.

Par exemple, si la description de la musique ne contient pas d'indication de tempo, il est possible de l'indiquer dans le contexte \midi, de la même manière.

Exemple
\midi { \tempo 4=90 }

Paramètres de la sortie midi

[modifier | modifier le wikicode]

La sortie midi prend en compte les indications présentes dans la partition, c'est-à-dire la hauteur des notes, le rythme, mais aussi les indications de nuance et de changements de tempo. Les crescendi et decrescendi se traduisent par un augmentation ou une diminution régulière du son entre le début et la fin du crescendo ou decrescendo ; toutefois cette fonction n'est pas opérationnelle sur une note isolée.

Gestion des répétitions

[modifier | modifier le wikicode]

Les répétitions (trémolos, répétitions de mesures, reprises…) ne sont normalement pas prises en compte lors de la génération du fichier midi. On peut les faire prendre en compte en utilisant la commande \unfoldRepeats ; tout se passe alors comme si les commandes \repeat avaient le style "unfold".

On peut par exemple avoir deux environnements \score contenant la même musique, le premier contenant \layout, le second ayant la même expression musicale, mais dans un environnement \unfoldRepeats et contenant \midi.

Exemple
\score {
   musique
 \layout { }
}

\score {
   \unfoldRepeats {
      musique
   }
   \midi { }
}


Dans Wikipédia



Mise en forme d'une partition < > Programmation


Afficher du texte

12. Afficher du texte

Nous avons vu à plusieurs endroits comment afficher du texte. Nous regroupons ici les informations.

Comment afficher du texte

[modifier | modifier le wikicode]

Chaîne de caractères

[modifier | modifier le wikicode]

Dans LilyPond, le texte à afficher peut être :

  • mis entre guillemets anglais ", par exemple : "Texte à afficher" ; c'est la solution utilisée lorsque le texte est simple : sans caractère spécial, sans mise en forme (pas d'italique ni de gras, pas de retour à la ligne…) ;
  • mis dans un environnement \markup{…}, par exemple : \markup{Texte à afficher}.

La chaîne vide s'écrit donc "" ou bien \markup{}.

Dans l'en-tête

[modifier | modifier le wikicode]

Il y a du texte qui est lié à l'en-tête du document : il est mis dans des variables dédiées. C'est en particulier le cas du titre de la pièce (dans la variable title) et du nom du compositeur (dans la variable composer) :

\header {
  title = "Titre de la pièce"
  composer = "Compositeur ou compositrice"
}

La liste des variable de l'en-tête est donnée au chapitre Partition de chant et grille d'accords > En-tête.

Dans la nomenclature

[modifier | modifier le wikicode]

Il y a du texte qui est lié à la portée, il est lui aussi mis dans des variables ; il s'agit du nom de l'instrument (dans les variables instrumentName et shortInstrumentName) qui s'affiche dans la nomenclature (marge à gauche de la portée) :

\new Staff \with{instrumentName = "Instrument" shortInstrumentName = "Inst."} \relative c'' {
  c4 d e f
}

Au niveau des fonctions qui structurent la partition

[modifier | modifier le wikicode]

Il y a du texte attaché à certaines fonctions qui structurent la partition. C'est par exemple le cas de l'indication textuelle du tempo (qui suit la commande \tempo), des noms de section (qui suivent la commande \sectionLabel) ou des marques de répétition (qui suivent la commande \mark) :

\new Staff \relative c'' {
  \tempo "Allegro" 4 = 120
  \mark "A"
  \sectionLabel "Introduction"
  c4 d e f
}

Concernant les sections :

  • cette fonctionnalité a été introduite avec la version 2.23
  • la commande \section indique un changement de section et place automatiquement une double-barre de mesure || ;
  • si l'on veut donner une indication avant la double-barre, par exemple une indication de saut (type D.C. ou D.S.) , on la met après une commande \jump, le texte est alors en italiques.
\new Staff \relative c'' {
  \sectionLabel "Introduction"
  c4 d e f \jump "D.C."
  \section
  \sectionLabel "I"
  g a b c
}

Au niveau des notes ou des mesures

[modifier | modifier le wikicode]

Il y a du texte qui est affiché au-dessus ou en dessous d'une note ; il s'agit en général d'un commentaire ou d'une indication de jeu. Pour placer ce texte, on le met après un trait d'union - pour laisser LilyPond placer le texte librement au-dessus ou en dessous ; après un tiret de soulignement _ pour le placer sous la portée, et après un accent circonflexe ^ pour le mettre au-dessus de la portée :

\new Staff \relative c'' {
  c1-"Texte placé automatiquement"
  d_"Texte placé sous la portée"
  e^"Texte placé au-dessus de la portée"
}

Il y a du texte attaché aux mesures ; il est placé au-dessus de la portée. Si le texte doit être aligné au début de la portée, on utilise une commande \textMark ; pour l'aligner à la fin de la mesure, on utilise \textEndMark.

\new Staff \relative c'' {
  \textMark"Début"
  c1
  \textEndMark "Fin"
  d
}

Il y a le texte des paroles d'un chant. Il est dans un environnement \lyricmode. Ce mode est activé automatiquement avec la commande \addlyrics{…} (pour les chants simples) ou bien \lyricsto{…} (qui permet d'attacher les paroles à une voix Voice donnée) :

<<
  \new Staff \relative c'' {
    c
  }
  \addlyrics {"do"}
>>
<<
  \new Staff \relative c'' {
    c
  }
  \lyrics {"do"}
>>
<<
  \new Staff \relative c'' {
    c
  }
  \new \Lyrics \lyricmode {"do"}
>>
<<
  \new Staff  \relative c'' {
    \new Voice = "voixUn" {
      c1
    }
  }
  \new \Lyrics \lyricsto "voixUn" {"do"}
>>

Pour avoir tout le texte en italique :

\lyrics { \override LyricText.font-shape = #'italic
  }

Texte indépendant de la partition

[modifier | modifier le wikicode]

On peut mettre un bloc de texte avant ou après un environnement \score{…}, par exemple pour mettre une introduction et des notes de fin.

Dans tous les exemples ci-dessous, on peut utiliser un environnement \markup{…} et des variables.

Par exemple :

\version "2.18.23"

compositeur = "W. A. Mozart"
titre = \markup{Sonate}
instru = "Piano"

\markup{Ceci est une œuvre de jeunesse}

\header {
  title = \titre
  composer = \compositeur
  tagline = ""
}

\score {
  
  \new Staff \with{instrumentName = \instru} \relative c'' {
    \tempo \markup{Allegro}
    c1
  }
  
  \layout {}
  \midi {}
}

Mise en forme globale

[modifier | modifier le wikicode]

Le bloc \layout{…} permet de définir des paramètres de mise en forme valables pour la partition pour certains contextes.

\score {
    \layout{
    \set fontSize = #-1 % pour la partition
    
    \context {
      \Staff % ou \staffGroup, ou \Voice
      \override TextScript.padding = #1 % espacement par rapport aux objets voisins du texte
      \override TextScript.color = #magenta % couleur
    }
  }
  []
}

Mise en forme d'une portée

[modifier | modifier le wikicode]

Les paramètres de mise en forme concernant une portée sont placés dans l'environnement \with, ou ben au sein de l'environnement avec un \set :

\new Staff \with{ fontSize = #-4 } \relative c'' {
  c1-"Texte"
}
\new Staff \relative c'' { \set fontSize = #-4
  c1-"Texte"
}

Cela concerne :

  • la nomenclature (nom de l'instrument) ;
  • la clef ;
  • le chiffrage de la mesure.

Mise en forme d'un texte donné

[modifier | modifier le wikicode]

Pour mettre en forme une chaîne de caractère, il faut utiliser le contexte \markup{…}.

Pour changer le corps (la taille du texte), on peut utiliser une commande mnémotechnique — dont le nom a un sens en anglais — comme tiny (minuscule) ou huge (énorme), ou bien en indiquant une variation de la variable fontSize (taille de fonte) :

  • jusqu'à la version 2.18 : \set fontSize = #n ;
  • à partir de la version 2.19 : \set fontSize = n.
Changement de corps
Commande
mnémotechnique
fontSize
\teeny -3
\tiny -2
\small -1
\normalsize 0
\large 1
\huge 2

Pour encadrer le texte, on utilise la commande \box{…} ; les mots sont encadrés séparément. Pour avoir un cadre commun à plusieurs mots, on utilise la commande \wordwrap{…}.

https://lilypond.org/doc/v2.23/Documentation/notation/formatting-text.fr.html

Caractères spéciaux

[modifier | modifier le wikicode]

\coda, \flat, \doubleflat, \semiflat, \sharp, \doublesharp, \semisharp, \natural, \fermata, \segno, \musicglyph "scripts.segno"

Pour afficher une note dans un contexte \markup{}, on peut utiliser :

  • \note {"m} #nm est la durée (par exemple {4} pour une noire, {4.} pour une noire pointée) et n est la longueur de hampe (#1 pour une hampe de longueur standard vers le haut, #-0.75 pour une hampe plus courte vers le bas) ;
    jusqu'à la version 2.21 de LilyPond, la syntaxe est : \note #"m" #n ;
  • \note\note-by-number #m #n #pm est la durée de base, n est le nombre de points et p est la longueur de hampe ;
  • à partir de la version 2.23, on peut utiliser la commande \rythm{musique} dans laquelle musique est le motif rythmique écrit sans hauteur de note (par exemple \rythm{\tuplet 3/2{4 8}} pour une noire et une croche en triolet).

On peut créer une espace de longueur définie, positive ou négative (cela rapproche le caractère suivant) avec \hspace (horizontal space, espace horizontale) et \vspace (vertical space, espace verticale), par exemple : \hspace #0.75.

Notes et références

[modifier | modifier le wikicode]

Génération d'un fichier de son < > Programmation


Programmation

13. Programmation

Concepts de base

[modifier | modifier le wikicode]

Expression musicale

[modifier | modifier le wikicode]

Une « expression musicale » est un ensemble d'instructions comprises dans une paire d'accolades {…} ou par une paire de double-crochets pointus <<…>>. Les expressions musicales peuvent s'imbriquer.

Contexte d'interprétation

[modifier | modifier le wikicode]

Les expressions musicales sont interprétées pour donner la partition. Cette interprétation prend en compte des paramètres tels que la clef, le chiffrage de la mesure, l'armure…

Au sein d'une même partition, on peut avoir plusieurs contextes d'interprétation possibles. On a plusieurs niveaux qui s'imbriquent :

  • le fichier LilyPond est bien entendu un contexte ; il peut être séparé en plusieurs livres (\book {…}), chaque livre est alors un contexte (certains paramètres s'appliquent à un livre et pas à un autre) ;
  • certains paramètres s'appliquent à toute la partition ; la partition, introduite par \score, est donc un contexte ;
  • au sein de la partition, certains paramètres s'appliquent à telle ou telle portée (par exemple la clef) ; la portée, introduite (en général) par \new Staff, est donc un contexte ;
  • au sein d'une portée, certains paramètres s'appliquent à telle ou telle voix ; la voix, expression musicale au sein d'un <<…>> (éventuellement introduite par \new Voice), est donc un contexte.

Interpretation contexts

Il est important d'indiquer la version, par exemple :

\version "2.10"

en effet, cela permet :

  • de savoir quelle version était utilisée lorsque l'on reprend un « vieux » fichier ;
  • d'utiliser un programme, convert-ly, qui transforme automatiquement le fichier pour qu'il soit compatible avec une version plus récente.

Chaînes de caractère

[modifier | modifier le wikicode]

à utiliser dans \markup :

Police
  • \bold : texte en gras ;
  • \italic : texte en italique ;
  • \smallCaps : petites capitales ;
  • \typewriter : police type machine à écrire ;
Corps (taille)
  • \large : plus grand ;
    • \huge : encore plus grand ;
    • bigger plus grand que la taille courante ;
  • \small : plus petit ;
    • \tiny : encore plus petit ;
    • \teeny : encore encore plus petit ;
    • \smaller : plus petit que la taille courante ;
Position
  • \combine : comme ci-dessus, mais sans barre de fraction ;
  • \fraction : met les deux chaînes suivantes en fraction ;
  • \hspace : espacement horizontal ; peut être négatif pour décaler vers la gauche, par exemple \hspace #-1 ;
  • \sub : texte en indice ;
  • \super : écriture en exposant ;
Encadrement
  • \box : met un rectangle autour du caractère ;
  • \circle : met un cercle autour du caractère.

Ces commandes s'appliquent à la chaîne qui les suit, mais pas à celles d'après ; si les chaînes ne sont pas entre guillemets, une commande s'applique jusqu'à une commande l'invalidant.

Caractères spéciaux

[modifier | modifier le wikicode]

à utiliser dans \markup :

  • \arrow-head axe direction remplissage → tête de flèche ;
    • \arrow-head #X #RIGHT ##t : horizontale (axe X), vers la droite (direction RIGHT), remplie (remplissage « vrai » #t) ;
    • \arrow-head #Y #LEFT ##f : verticale (axe Y), vers le bas (direction LEFT), vide (remplissage « faux » #f) ;
  • \doubleflat♭♭ ;
  • \doublesharp× ;
  • \flat ;
  • \natural ;
  • \semiflat → demi-bémol (bémol inversé) ;
  • \semisharp → demi-dièse (avec une seule barre verticale) ;
  • \sesquiflat → trois-demi de bémol (double bémol barré) ;
  • \sesquisharp → trois-demi de dièse (dièse avec trois barres verticales) ;
  • \sharp ;

Overview of text markup commands

Programmation avancée

[modifier | modifier le wikicode]

Lilypond a été écrit en Scheme. Il est possible de développer des modules en Scheme.

Interfaces pour programmeurs


Dans Wikipédia



Afficher du texte < > LilyPond et Python


LilyPond et Python

14. LilyPond et Python

Le langage Python dispose d'un module python-ly qui permet de manipuler du code LilyPond.

Importation du module

[modifier | modifier le wikicode]

Pour télécharger le module, il faut utiliser la commande Python :

pip install python-ly

Cela met à disposition le module ly, qui contient lui-même plusieurs modules. Par la suite, il faut importer le module dont on a besoin dans le programme où on veut l'utiliser. Si par exemple on veut utiliser le module ly.musicxml pour manipuler le format musicXML, le début du programme sera donc :

#!/usr/bin/env python3
# coding: utf-8

import ly.musicxml

Programmation < > Voir aussi


Voir aussi

15. Voir aussi

Voici quelques documents utiles pour aller plus ou loin, ou simplement pour se documenter sur des aspects précis de LilyPond.

Dans Wikibooks
Dans Wikipédia
Liens externes

Programmation < > Index


Index

Sommaire : Haut - A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Index
  • \1, \2, \3, \4, \5 : 1
  • 7 : 1
  • 7maj : 1
  • 8va : 1
  • * : 1
  • . : 1, 2
  • ! : 1
    • \! : 1
  • , : 1
  • : : 1, 2
  • ' : 1
  • ^ : 1, 2
  • - : 1, 2, 3
  • _ : 1
  • " : 1
  • (, ) : 1
  • {, } : 1, 2, 3, 4, 5, 6
  • [, ] : 1
  • <, > : 1, 2
    • \<, \> : 1
    • <<, >> : 1, 2, 3
  • ~ : 1
  • / : 1, 2, 3
  • a : 1
  • \accent : 1
  • Accent circonflexe : 1, 2
  • Accentuée (note) : 1
  • Acciaccatura, \acciaccatura : 1
  • Accolade : 1, 2, 3, 4, 5, 6
  • Accord : 1, 2
  • \addlyrics : 1
  • Altération : 1
  • \alternative : 1
  • Anacrouse : 1
  • Apostrophe : 1
  • Appogiature, \appoggiatura : 1
  • Armure, armature : 1
  • Arpège, \arpeggio : 1
  • Astérisque : 1
  • Attaque : 1
  • aug : 1
  • autochange : 1
  • b : 1
  • Ballon de coda : 1
  • \bar : 1
  • Barre de fraction : 1, 2, 3
  • Barre de mesure : 1
  • Basse chiffrée : 1
  • Bécarre : 1, 2
  • Bémol : 1, 2
  • Blanche : 1
  • \book : 1
  • \break : 1
  • \breathe : 1
  • c : 1
  • Cadence : 1
  • \cadenzaOn, \cadenzaOff : 1
  • Chiffrage de la mesure : 1
  • Chiffrage d'un accord : 1
  • ChoirStaff : 1
  • \chordmode : 1
  • \chords : 1
  • Clef, \clef : 1, 2
  • Coda, \coda : 1
  • Compositeur, composer : 1
  • Coulé : 1
  • \cr : 1
  • \column : 1, 2
  • Crescendo : 1
  • Croche : 1
  • Crochet : 1
    • ~ pointu : 1, 2, 3, 4
  • d : 1
  • \decr : 1
  • Decrescendo : 1
  • Demi-pause : 1
  • Demi-soupir : 1
  • Demi-ton : 1
  • Deux-points : 1, 2
  • Diagramme d'accord : 1
  • Dièse : 1, 2
  • dim : 1
  • Do : 1
  • Double-barre : 1
  • Double-bémol : 1
  • Double-croche : 1
  • Double-dièse : 1
  • DVI : 1
  • e : 1
  • es : 1
  • eses : 1
  • \espressivo : 1
  • f : 1
  • \f : 1
  • Fa : 1
  • \fermata : 1
  • Feta : 1
  • \ff : 1
  • \fff : 1
  • Fichier
    • .LY : 1
    • .PDF : 1
    • son : 1, 2, 3, 4
  • \figures : 1
  • \flat : 1, 2
  • Forte : 1
  • Forte-piano : 1
  • Fortissimo : 1
  • \fp : 1
  • Fraction : 1, 2, 3
  • \fret-diagram : 1
  • g : 1
  • Glissando, \glissando : 1
  • \grace : 1
  • GrandStaff : 1
  • Gruppetto : 1
  • Guillemet : 1, 2
  • Guitare : 1
  • hampe : 1
  • \harmonic : 1
  • Harmoniques : 1
  • \header : 1
  • Huitième de soupir : 1
  • Il piu fortissimo possibile : 1
  • Il piu pianissimo possibile : 1
  • Intonation : 1
  • is : 1
  • isis : 1
  • \key : 1
  • La : 1
  • \laissezVibrer : 1
  • LaTeX : 1
  • \layout : 1, 2
  • Legato : 1
  • Levée : 1
  • Liaison : 1
  • Lien : 1
  • \line : 1, 2
  • Lourée (note) : 1
  • .LY : 1
  • \lyricmode : 1, 2
  • Lyrics : 1
  • \lyricsto : 1
  • m : 1
  • Majeur : 1, 2
  • \major : 1
  • \marcato : 1
  • \markup : 1
  • \markup : 1, 2, 3, 4, 5
  • Mélisme : 1, 2
  • Mezzo forte : 1
  • Mezzo piano : 1
  • \mf : 1
  • Mi : 1
  • Midi, \midi : 1, 2, 3
  • Mineur : 1, 2
  • \minor : 1
  • Mode : 1
  • Mordant : 1
  • \mordent : 1
  • \mp : 1
  • \natural : 1
  • \newSpacingSection : 1
  • \noBreak : 1
  • Noire : 1
  • \noPageBreak : 1
  • Note :
    • ~ accentuée : 1
    • ~ lourée : 1
    • ~ piquée : 1
    • ~ portée : 1
  • Nuance : 1
  • Numérotation
    • des mesures : 1
    • des pages : 1
  • Octave : 1
  • Octaviation : 1, 2
  • \ottava : 1
  • \p : 1
  • \pageBreak : 1
  • \paper : 1
  • Parenthèse : 1
  • \partial : 1
  • Pause : 1
  • PDF : 1, 2
  • Pédale : 1
  • Phrasé : 1
  • Pianissimo, pp : 1
  • Piano
    • nuance, p : 1
    • instrument : 1
  • PianoStaff : 1
  • Piquée (note) : 1
  • PNG : 1
  • Point : 1
    • ~ d'exclamation : 1, 2
    • ~ d'orgue : 1
  • Police de caractère : 1
  • Portée (ligne) : 1, 2, 3, 4, 5, 6, 7, 8, 9
    • ~ groupées : 1, 2, 3
    • taille : 1
  • Portée (note) : 1
  • PostScript, PS : 1, 2
  • \pp : 1
  • \ppp : 1
  • \prall : 1
  • Quadruple-croche : 1
  • Quart de soupir : 1
  • r : 1
  • R : 1, 2
  • Ré : 1
  • \relative : 1
  • \repeat : 1, 2
  • \repeatTie : 1
  • Répétition : 1
  • Reprise : 1
  • Résolution d'un accord dissonant : 1
  • \reverseturn : 1
  • Ronde : 1
  • Ronde carrée : 1
  • s : 1, 2
  • \score : 1
  • \segno : 1
  • Seizième de soupir : 1
  • \set : 1, 2
  • set-octavation : 1
  • Sextolet : 1
  • Sforzando : 1
  • \sharp : 1
  • \sfz : 1
  • Si : 1
  • Signe
    • ~ inférieur : 1, 2
    • ~ moins : 1, 2
    • ~ supérieur : 1, 2, 3
  • Silence : 1, 2
  • \smaller : 1, 2
  • Sol : 1
  • Son : 1
  • \sostenutoDown, \sostenutoUp : 1
  • Soupir : 1
  • sus : 1
  • Staccato, \staccato : 1
  • Staff : 1
  • StaffGroup : 1
  • \startTrillSpan : 1
  • \stopTrillSpan : 1
  • \sustainDown, \sustainUp : 1
  • SVG : 1
  • Système : 1
  • Tablature : 1
  • TabStaff : 1
  • Tempo, \tempo : 1
  • \tenuto : 1
  • TeX : 2
  • Tildé : 1
  • \time : 1
  • \times : 1
  • Titre de l'œuvre, title : 1
  • Tiret : 1, 2
    • ~ de soulignement : 1, 2
  • Ton : 1
  • \transpose : 1
  • \transposition : 1
  • \treCorde : 1
  • Trémolo : 1
  • Trille, \trill : 1
  • Triolet : 1
  • Triple-croche : 1
  • \turn : 1
  • \unaCorda : 1
  • Virgule : 1
  • \voiceOne, \voiceTwo, \voiceThree, \voiceFour,  : 1

Voir aussi < |

GFDL GFDL Vous avez la permission de copier, distribuer et/ou modifier ce document selon les termes de la licence de documentation libre GNU, version 1.2 ou plus récente publiée par la Free Software Foundation ; sans sections inaltérables, sans texte de première page de couverture et sans texte de dernière page de couverture.