# Introduction à LilyPond/Programmation

* Principe général
* Structure du fichier
* La hauteur des notes
* Le rythme
* Une ligne mélodique complète
* Partition de chant et grille d'accords
* Association de plusieurs voix
* Gestion de partitions volumineuses
* Notation spécifique à certains instruments
* Mise en forme d'une partition
* Génération d'un fichier de son
* Afficher du texte
* Programmation
* LilyPond et Python
* Voir aussi
* Index
* Principe général
* Structure du fichier
* La hauteur des notes
* Le rythme
* Une ligne mélodique complète
* Partition de chant et grille d'accords
* Association de plusieurs voix
* Gestion de partitions volumineuses
* Notation spécifique à certains instruments
* Mise en forme d'une partition
* Génération d'un fichier de son
* Afficher du texte
* Programmation
* LilyPond et Python
* Voir aussi
* Index
[ Modifier le sommaire ]

## Concepts de base
### Expression musicale

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.
* A single music expression
* Music expressions explained

### Contexte d'interprétation

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

## En-tête

Il est important d'indiquer la version, par exemple :
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
### Mise en forme

à 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

à 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

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

## Voir aussi
### Dans Wikipédia

Afficher du texte < ↑ > LilyPond et Python