2. Structure du fichier
Un fichier LilyPond est donc un fichier texte. Prenons un exemple minimal et complet.
Exemple minimal complet.
Voici un petit programme LilyPond :
\version "2.18.2" % necessary for upgrading to future LilyPond versions.
\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
 »
Le résultat est le suivant :
Explications.
Le fichier contient deux parties : l'en-tête et la partition. La partition contient des portées.
En-tête.
L'en-tête est le début du fichier. Il contient les éléments suivants :
Partition.
La partition est contenue dans le contexte (l'environnement) codice_5.
Puis vient la construction codice_6 : 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 codice_7.
La partition se conclut par les instructions :
La structure globale d'une partition avec des systèmes de deux portées est donc :
\score{
Portée.
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 :
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 codice_10 ("do" grave en clef de sol) ou bien codice_11 ("do" aigu en clef de "sol").
La portée elle-même comporte un en-tête :
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 :
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.
Une partition "()" peut contenir d'autres éléments que des portées "()". Par exemple, pour une partition de chant accompagnée à la guitare, on peut avoir :
La partition aurait donc la structure :
\score{
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
 »
Voix au sein d'une portée.
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 codice_31. 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.
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"

Addappendix
Harmonie
Addappendix/Construction d'un paquet ubuntu

Auto-éditer un wikilivre/Addappendix/Construction d'un paquet ubuntu

Auto-éditer un wikilivre/Addappendix
Programmation Java/Nombre de taille arbitraire