Petit tuto Lilypond 3

Bonjour à tous !

Je vous propose de continuer la série de tutoriels commencés ici et sur le logiciel de partitions de musique Lilypond.

Clairement le but sera moins les bases de Lilypond, que je crois avoir pas mal abordé, mais plutôt tous les petits bidouillages que j'ai fait pour améliorer la disposition des notes sur une partition lorsque la configuration par défaut était imparfaite. Ça vous permettra de commencer à faire des recherches sur la documentation et les exemples de Lilypond.

On va tout d'abord commencer en parlant de la structure d'une partition, je serai assez bref là-dessus, puisque Lilypond permet de faire une quantité de partitions invraisemblables, et que je n'écris pratiquement que des partitions pour piano, ou presque.

Des structures Lilypond

Vous vous rappelez surement le début où l'on faisait des fichiers ly aussi petits que ça :

{
a c e
}

eh bien c'était non seulement grâce aux très nombreuses valeurs par défaut de Lilypond, mais aussi parce que Lilypond voit une unique chaîne de musique et sait "dans quel ordre" la traiter, et "où" la placer. En effet si vous voulez écrire une partita à 6 mouvements et deux portées, il n'est plus possible de savoir quoi mettre où. Donc il va falloir l'expliquer à Lilypond. Et pour ça, il y a plusieurs solutions.

  • Utiliser des templates.
  • Bidouiller justqu'à ce que "ça marche".
  • Utiliser l'assistant de création de partition de Frescobaldi.

Prenons un exemple créé avec Frescobaldi :

\version "2.18.2" % header version

\header {
    dedication = "ma dédicace"
    title = "le Titre"
    subtitle = "ss titre"
    subsubtitle = "le ssss titre"
    instrument = "l'instrument"
    composer = "le compositeur"
    arranger = "l'arrangeur"
    poet = "le parolier"
    meter = "Symphonia"
    piece = "Andantino"
    opus = "D959"
    copyright = "GNU GPLv3"
    tagline = "Le site des gentis du net"
} % header global

global = {
    \key f \minor
    \time 2/2
    \partial 8.
    \tempo "Andante"
} % header pour les trois portées

right = \relative c'' {
    \global
    % En avant la musique !

} % portée supérieure piano

left = \relative c' {
    \global
    % En avant la musique !

} % portée inférieure piano

sopranoVoice = \relative c'' {
    \global
    \dynamicUp
    % En avant la musique !

} % voix de soprane

verse = \lyricmode {
    % Ajouter ici des paroles.

} % paroles pour la soprane

pianoPart = \new PianoStaff \with {
    instrumentName = "Piano"
} << \new Staff = "right" \with { midiInstrument = "acoustic grand" } \right \new Staff = "left" \with { midiInstrument = "acoustic grand" } { \clef bass \left } >>
% utilisation des variables \right et \left pour créer la ligne piano

sopranoVoicePart = \new Staff \with {
    instrumentName = "Soprano"
    midiInstrument = "choir aahs"
} { \sopranoVoice }
\addlyrics { \verse }
% utilisation des variables \sopranoVoice et \verse pour créer la ligne de la soprane

\score {
    << \pianoPart \sopranoVoicePart >> % assemblage dans la partition score
    \layout { }
    \midi {
        \context {
            \Score
            tempoWholesPerMinute = #(ly:make-moment 81 2)
        }
    }
}

En rajoutant des notes et des paroles on obtient :

partition

Partition exemple. Piano et voix de Soprane.

Problèmes rencontrés et leurs solutions

Forcer le retour à la ligne

Il suffit d'utiliser la commande \break au niveau d'une barre de mesure.

Je vous recommande d'écrire les barre de mesures de manière explicite (elles existent de manière implicite) car ça permet de corriger beaucoup d'erreur --- grâce au "barcheck", et permet de relire son code plus facilement.

Hampe (Stem)

La hampe est généralement liée à la voix s'il y en a plusieurs, voiceOne et voiceThree sont par défaut vers le haut (mais pas toujours) et voice To et voiceFour vers le bas. S'il n'y a qu'une seule voix, Lilypond choisit en fonction de la hauteur de la note.

Parfois la hampe de la note (Stem en anglais) est dirigée vers le haut et vous la voudriez vers le bas ou vice versa. Il y a pour cela une comande très simple : \stemUp pour forcer les hampes vers le haut, \stemDown pour les forcer vers le bas, \stemNeutral pour laisser de nouveau le choix à Lilypond.

On peut aussi rendre la hampe transparent à l'aide de :

\once \override Stem.transparent = ##t.

hampe transparente

noire avec une hampe transparente.

Silence transparent

Il peut vous arriver de vouloir effacer les silences, on le fait avec la commande : \override Staff.Rest.transparent = ##t, et pour n'en effacer qu'un : \once \override Staff.Rest.transparent = ##t.

Décaler une ligature

Si vous voulez déplacer une ligature logique (Tie, indiquée par le symbole ~ après la note) on peut le faire à l'aide de la commande : \once \override Tie.extra-offset = #'(0.1 . -0.1) par exemple :

ligature normale

ligature normale

devient :

ligature décalée

ligature décalée en hauteur et en largeur

(ici ce n'était pas très utile, je l'admets...)

De la même façon que la hampe, on peut forcer une ligature vers le haut ou vers le bas avec \tieUp \tieDown, et remettre le défaut avec \tieNeutral.

Décaler une note horizontalement

Par défaut, les voix 3 et 4 (voiceThree et voiceFour) sont décalées par rapport aux voix une et deux. C'est sympa la majorité du temps, mais parfois (lorsqu'on fait des accord, par exemple, afin d'avoir les notes alignées). On peut le faire à l'aide de la commande suivante : \once \override NoteColumn.force-hshift = 0.

Trille prolongé

On peut spécifier un trille avec \trill après la note sur lequel le trille s'applique.

Pour faire un trille prolongé, on indique le début avec \startTrillSpan et on le termine avec \stopTrillSpan.

Pour spécifier une altération sur le trille, on utilise \pitchedTrill.

Texte sur la partition

On peut utiliser \markup{} pour afficher du texte. Par exemple : c4^\markup{\italic{mezzo forte}} affiche mezzo forte en italic au dessus de la note, et c4_\markup{\italic{mezzo forte}} l'affiche en dessous.

markup markup mezzo forte en italic en haut, piano en italic en bas

Accords en arpèges

Pour afficher un arpège, on utilise \arpegio. Pour préciser explicitement si l'accord est de haut en bas, on utilise \arpeggioArrowUp, qu'on termine avec \arpeggioNormal. Pour aller de haut en bas, on utilise \arpeggioArrowDown.

Voilà, c'est tout pour ce troisième petit tour dans Lilypond, je suppose qu'il va falloir attendre que j'écrive des partitions vraiment complexes pour en écrire un troisième ;). Bonne journée à tous !

Motius