htg-content/content/posts/petit-tuto-lilypond-2.md

277 lines
9.2 KiB
Markdown
Raw Normal View History

2020-04-30 23:07:15 +02:00
---
2020-12-02 16:36:09 +01:00
title: "Petit tuto Lilypond 2"
2020-05-11 16:47:51 +02:00
date: 2015-10-24
2020-04-30 23:07:15 +02:00
author: motius
template: post
2020-05-12 16:08:52 +02:00
tags: lilypond,musique,partition,planet libre,tutoriel,tutoriels
2020-04-30 23:07:15 +02:00
---
Bonjour à tous !
Vous avez aimé le [petit tuto Lilypond 1](/posts/petit-tuto-lilypond-1/) ? Eh bien c'est reparti pour un tour.
# Petit récapitulatif
Passez ce paragraphe si vous connaisez mon précédent article par cœur, ou si vous avez déjà des bases de Lilypond. Il s'agit cependant d'un récapitulatif complet et simple. La dernière fois, je vous ai montré :
- le mode absolu de représentation d'une note avec LiLypond (par défaut, pas recommandé) ;
- le mode relatif (instruction `\relative c'`) ;
- comment do-ré-mi-fa-sol-la-si s'écrit `c-d-e-f-g-a-b` en Lilypond ;
- comment augmenter la hauteur d'une note avec `'` ;
- comment abaisser la hauteur d'une note avec `,` ;
- le dièse avec `is`, le double dièse avec `isis` ;
- le bémol avec `es`, le double bémol avec `eses` ;
- comment définir la longueur d'une note avec les puissances de 2 (`1` : ronde, `2` blanche, `4` noire, `8` croche, `16` double croche...) ;
- les accords à l'aide des brackets `<` et `>` ;
- comment changer de rythme avec l'instruction `\time 3/8` ;
- comment changer de clef à l'armure avec l'instruction `\clef` (treble, bass...) ;
- comment imposer une tonalité à l'aide de l'instruction `"\key c \minor"` ou `"\key f \major"` par exemple ;
- comment faire des legati avec `(` et `)` ;
- comment forcer la ligature des crochets de hampe de (simples-, doubles-...) croches à l'aide de `[` et `]` pour l'esthétique visuelle aussi bien que pour la facilité de lecture du chant ;
- comment compiler à l'aide de la commande lilypond (on peut aussi utiliser l'IDE Frescobaldi) ;
- comment faire en sorte que Lilypond nous ennuie pas avec la version de Lilypond utilisée avec le header `\version "2.18.2"` ;
- comment marquer les mesures (facultatifs, mais un moyen de vérification utile) à l'aide de `|`.
Vous savez plein de choses ! Mais la musique est un art, et qui dit art dit beaucoup de travail et un peu de génie. Allons voir comment Lilypond vous permet de représenter le génie qui habite vos partitions préférées...
# La suite...
Au programme :
- écrire plusieurs portées, (jusqu'ici, on n'en a écrit qu'une seule, ce qui est un peu triste pour du piano...) ;
- représenter plusieurs voix ;
- écrire les ornements ;
- faire disparaître les mesures ! magie ! ;
- faire disparaître l'armure ! magie magie ! ;
- un retour sur les rythmes avec les pointées ;
- écrire des commentaires dans la partition.
On va s'y prendre de la même manière que la première fois, rien ne vaut un petit exemple simple pour comprendre.
2020-05-05 23:23:26 +02:00
## Plusieurs portées
2020-04-30 23:07:15 +02:00
On pourrait essayer de faire ça pour obtenir deux portées :
2020-05-05 23:23:26 +02:00
```
\version "2.18.2"
upper = \relative c'
2020-04-30 23:07:15 +02:00
{
c e g
}
2020-05-05 23:23:26 +02:00
lower = \relative c
2020-04-30 23:07:15 +02:00
{
c e g
}
2020-05-05 23:23:26 +02:00
```
2020-04-30 23:07:15 +02:00
Mais ici on ne dit pas à Lilypond comment il doit gérer les deux groupes de notequ'on a créé. La seule chose ici qu'on a fait, c'est dédoubler le premier groupe de musique et on leur a donné des noms. On a de plus pas généré de PDF ! C'est un bon début, mais ce n'est pas suffisant. Il faut donc préciser dans un header -- qu'on va placer à la fin, je suppose que ça en fait un footer -- comment les ajouter. Voici le code, attention les yeux :
2020-05-05 23:23:26 +02:00
```
\version "2.18.2"
upper = \relative c'
2020-04-30 23:07:15 +02:00
{
c e g
}
2020-05-05 23:23:26 +02:00
lower = \relative c
2020-04-30 23:07:15 +02:00
{
c e g
}
2020-05-05 23:23:26 +02:00
\score
2020-04-30 23:07:15 +02:00
{
2020-05-05 23:23:26 +02:00
\new GrandStaff \with { instrumentName = "Piano" }
<< \new Staff = upper { \new Voice = "singer" \upper } \new Staff = lower { \lower } >>
2020-04-30 23:07:15 +02:00
}
2020-05-05 23:23:26 +02:00
```
2020-04-30 23:07:15 +02:00
Voilà, c'est un peu moche, mais on ne touchera plus à ce footer dans cette deuxième partie de tutoriel. Il est cependant très utile, puisqu'il permet en théorie l'ajout de paroles et la création automatique du fichier midi de votre partition. Voici le résultat tand attendu :
2020-05-05 23:23:26 +02:00
![2portees](%assets_url%/2015/10/2portees-300x215.png)
Deux portées au piano. Le début de la gloire !
2020-04-30 23:07:15 +02:00
Bon maintenant tout ça donne un PDF un peu moche, alors rendons-le plus joli. Vous savez faire, il suffit de changer la clef à l'armure (je ne mets plus les headers ni les footers) :
2020-05-05 23:23:26 +02:00
```
\version "2.18.2"
upper = \relative c'
2020-04-30 23:07:15 +02:00
{
c e g
}
2020-05-05 23:23:26 +02:00
lower = \relative c
2020-04-30 23:07:15 +02:00
{
2020-05-05 23:23:26 +02:00
\clef bass
2020-04-30 23:07:15 +02:00
c e g
}
2020-05-05 23:23:26 +02:00
```
2020-04-30 23:07:15 +02:00
qui donne :
2020-05-05 23:23:26 +02:00
![2portees_2clefs](%assets_url%/2015/10/2portees_2clefs-300x177.png)
Partition à deux portées avec Lilypond
2020-04-30 23:07:15 +02:00
2020-05-05 23:23:26 +02:00
## Commentaires
2020-04-30 23:07:15 +02:00
Pour insérer un commentaires en lilypond, il suffit d'utiliser le caractère `%`.
Tout ce qui suit le `%` est ignoré par le compilateur. Voilà. Simple et efficace.
2020-05-05 23:23:26 +02:00
## Plusieurs Voix
2020-04-30 23:07:15 +02:00
On se représente les voix facilement lorsqu'il y a plusieurs instruments, donc sur plusieurs portées, mais une portée peut représenter plusieurs voix. Le code peut ressembler à ceci :
2020-05-05 23:23:26 +02:00
```
\version "2.18.2" % ---- header ---- %
upper = \relative c'' {
  \clef treble
  <<     \voiceOne{c4 c c c  c} \\     \voiceTwo{b4 b2  b4 b}   >>
2020-04-30 23:07:15 +02:00
}
% ---- footer ---- %
2020-05-05 23:23:26 +02:00
\score {
  \new GrandStaff <<     \new Staff = upper { \new Voice = "singer" \upper }   >>
  \layout {
    \context {
      \GrandStaff
      \accepts "Lyrics"
2020-04-30 23:07:15 +02:00
    }
2020-05-05 23:23:26 +02:00
    \context {
      \Lyrics
      \consists "Bar_engraver"
2020-04-30 23:07:15 +02:00
    }
  }
}
2020-05-05 23:23:26 +02:00
```
2020-04-30 23:07:15 +02:00
dont le rendu est :
2020-05-05 23:23:26 +02:00
![1portee_2voix](%assets_url%/2015/10/1portee_2voix-300x97.png)
Gérer deux voix sur une portée avec Lilypond
2020-04-30 23:07:15 +02:00
Pas très original, mais pratique pour faire apprécier l'idée : ici le chant en haut est constitué de _do_ 4, et la basse de _si_ 4 et 2.
J'ai encore un peu modifié le footer pour que les deux voix soient prises en compte.
2020-05-05 23:23:26 +02:00
## Ornements
2020-04-30 23:07:15 +02:00
Vous connaissez ces jolies petites notes qui ne compte (souvent) pas dans le calcul de la longueur de la mesure ? Il y en a plein et nous allons les découvrir.
2020-05-05 23:23:26 +02:00
```
upper = \relative c'' {
  \clef treble
2020-04-30 23:07:15 +02:00
2020-05-05 23:23:26 +02:00
   \appoggiatura{a8} c2 \appoggiatura{a16}c2 | \appoggiatura{a32}c2 \appoggiatura{a16 b}c2 | r1 \bar "" \break
   \acciaccatura{a8} c2 \acciaccatura{a16} c2 \acciaccatura{a32} c2 \acciaccatura{a16 b} c2   r1 \bar "" \break
   \grace{a8} c2 \grace{a16} c2 | \grace{a32} c2 \grace{a16 b} c2 \bar ""
2020-04-30 23:07:15 +02:00
}
2020-05-05 23:23:26 +02:00
```
2020-04-30 23:07:15 +02:00
Il s'agit la de trois ornements que j'ai mis en parallèle pour que vous puissiez voir la différence facilement :
2020-05-05 23:23:26 +02:00
![grace_notes](%assets_url%/2015/10/grace_notes-300x93.png)
Ornements avec Lilypond
2020-04-30 23:07:15 +02:00
Les notes sont espacées exprès à l'aide de la commande `\break`. Ce n'est pas utile pour l'instant, il s'agit d'une commande avancée mais je l'ai utilisé pour que les notes soient très écartées, pour plus de lisibilité.
2020-05-05 23:23:26 +02:00
## Trilles - mordants
2020-04-30 23:07:15 +02:00
On n'oublie surtout pas les mordants et autres trilles qui vont de pair avec les ornements :
2020-05-05 23:23:26 +02:00
```
upper = \relative c'' {
  \clef treble
2020-04-30 23:07:15 +02:00
2020-05-05 23:23:26 +02:00
  c4\trill r2 r4 | c\prall r2 r4 | c\mordent r2 r4 | c\turn r2  
2020-04-30 23:07:15 +02:00
}
2020-05-05 23:23:26 +02:00
```
2020-04-30 23:07:15 +02:00
dont le rendu est :
2020-05-05 23:23:26 +02:00
![trilles](%assets_url%/2015/10/trilles-300x64.png)
2020-04-30 23:07:15 +02:00
2020-05-05 23:23:26 +02:00
Trilles et mordants avec GNU Lilypond
## Écriture du rythme
2020-04-30 23:07:15 +02:00
Si vous avez fait un peu de mathématiques ou d'informatique, vous savez qu'on peut représenter n'importe quel nombre à l'aide des puissances de 2. Les musiciens devaient savoir ça et permettent de rallonger les notes ainsi :
2020-05-05 23:23:26 +02:00
```
upper = \relative c'' {
  \clef treble
2020-04-30 23:07:15 +02:00
   a4 r2 r4 |
a. r8 r2 |
a4.. r16 r2 |
}
2020-05-05 23:23:26 +02:00
```
2020-04-30 23:07:15 +02:00
ce qui donne :
2020-05-05 23:23:26 +02:00
![pointees](%assets_url%/2015/10/pointees-300x50.png)
Notes pointées avec Lilypond
2020-04-30 23:07:15 +02:00
J'ai fait exprès ici de mettre les silences complémentaires pour terminer la mesure afin qu'on se rende compte de l'effet du `.` sur la note.
2020-05-05 23:23:26 +02:00
## Accentuations
2020-04-30 23:07:15 +02:00
Voici comment expliquer la façon dont une note est jouée :
2020-05-05 23:23:26 +02:00
```
upper = \relative c'' {
  \clef treble
2020-04-30 23:07:15 +02:00
  a4 a^. a^- a^> |
a^1 a^^ a^+ a-\_ |
}
2020-05-05 23:23:26 +02:00
```
2020-04-30 23:07:15 +02:00
ce qui donne sans grande surprise :
2020-05-05 23:23:26 +02:00
![accentuation](%assets_url%/2015/10/accentuation-300x80.png)
Notes accentuées avec Lilypond
2020-04-30 23:07:15 +02:00
Ici le `^` sert à introduire le signe qui sera utilisé sur la note.
2020-05-05 23:23:26 +02:00
## Pour quelques sesterces de plus...
2020-04-30 23:07:15 +02:00
On en a fini (je crois) avec les principales règles de Lilypond. Bien sûr il y en a encore plein d'autre qui existent et elles sont plus ou moins importantes en fontcion des partitions que vous jouez. Alors pour finir, on va faire disparaître la mesure, et c'est là que vous vous rendrez compte que les commandes de Lilypond sont très puissantes.
2020-05-05 23:23:26 +02:00
```
2020-04-30 23:07:15 +02:00
global = {
2020-05-05 23:23:26 +02:00
  \cadenzaOn %supprimer les mesures
  \override Staff.TimeSignature.transparent = ##t
2020-04-30 23:07:15 +02:00
}
2020-05-05 23:23:26 +02:00
upper = \relative c'' {
  \clef treble
2020-04-30 23:07:15 +02:00
  a4 a a a
  a a a a
  a a a a
}
2020-05-05 23:23:26 +02:00
```
2020-04-30 23:07:15 +02:00
donne
2020-05-05 23:23:26 +02:00
![magie_rythme](%assets_url%/2015/10/magie_rythme-300x58.png)
2020-04-30 23:07:15 +02:00
J'ai donc utilisé un header supplémentaire, le header global, auquel j'ai donné une instruction : `\cadenzaOn`, et une commande `\override Staff.TimeSignature.transparent = ##t`.
# Et après ?
On n'a pas fini. loin de là ! il reste à découvrir, entre autres :
- comment générer le fichier midi associé à votre partition ;
- comment gérer les barres de mesures de fin de partition ;
- comment gérer les mesures partielles (je vous ai aidé, là, ça s'appelle une [anacrouse](https://fr.wikipedia.org/wiki/Anacrouse)) ;
- la gestion des paroles
- et probablement beaucoup d'autres choses !
mais pour cela il faudra revoir de plus près la structure logique du document texte .ly, et non pas seulement ce qu'il y a entre les accolades. Ce sera donc pour le petit tuto lilypond 3...
Merci d'avoir suivi ! À bientôt, et n'hésitez pas à commenter !
_Motius_