Introduction à LilyPond/Gestion de partitions volumineuses

Un livre de Wikilivres.
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}
>>

Les variables[modifier | modifier le wikicode]

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.

Notes[modifier | modifier le wikicode]


Voir aussi[modifier | modifier le wikicode]

Dans Wikipédia

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