4.4.3 Écriture d’une partition à partir de zéro
Après avoir acquis une certaine dextérité dans l’écriture de code LilyPond, vous devez vous sentir suffisamment prêt à vous lancer dans la création d’une partition à partir de zéro, autrement dit en ne partant pas d’un exemple. Vous pourrez ainsi vous construire vos propres patrons selon le type de musique que vous affectionnez plus particulièrement. Pour voir comment procéder, nous allons monter la partition d’un prélude pour orgue.
Nous débutons par une section d’en-tête ; nous y mettrons entre
autres le titre et le nom du compositeur. Puis viennent toutes les
définitions de toutes les variables. Nous terminons par le bloc
\score
. Attelons-nous pour cette aventure, en gardant bien à
l’esprit ce que nous venons de dire ; nous nous occuperons des
détails en temps voulu.
Nous nous appuyons sur les deux premières mesures du prélude sur Jesu, meine Freude, écrit pour orgue avec pédalier. Vous pouvez voir ces deux mesures au bas de cette page. La main droite comporte deux voix, la main gauche et le pédalier une seule. Il nous faut donc quatre définitions de musique, plus une qui contiendra la métrique et l’armure :
\version "2.24.4" \header { title = "Jesu, meine Freude" composer = "J S Bach" } ArmureMetrique = { \key c \minor \time 4/4 } ManuelUnVoixUnMusique = { s1 } ManuelUnVoixDeuxMusique = { s1 } ManuelDeuxMusique = { s1 } PedalierOrgueMusique = { s1 } \score { }
Pour l’instant, nous utilisons des silences invisibles, s1
, en
lieu et place des notes réelles. On verra plus tard.
Passons maintenant au bloc \score
et à ce qu’il devrait contenir.
Nous y recopions simplement la structure des portées que nous voulons.
La musique pour orgue se présente généralement sous la forme de trois
portées, une pour chaque main et une pour le pédalier. Les portées du
manuel sont regroupées, nous utiliserons donc un PianoStaff
. La
première partie du manuel requiert deux voix et la seconde une seule.
\new PianoStaff << \new Staff = "ManuelUn" << \new Voice { \ManuelUnVoixUnMusique } \new Voice { \ManuelUnVoixDeuxMusique } >> % fin du contexte de portée ManuelUn \new Staff = "ManuelDeux" << \new Voice { \ManuelDeuxMusique } >> % fin du contexte de portée ManuelDeux >> % fin du contexte PianoStaff
Il nous faut ajouter à cela une portée pour le pédalier. Elle se place
sous le système de piano, mais puisqu’elle doit rester synchrone avec
lui, nous utilisons des doubles chevrons pour les regrouper.
Négliger ceci nous renverrait une erreur, et personne n’est à l’abri de
cette faute ! Pour preuve, il vous suffit de copier l’exemple
complet en fin de chapitre, de supprimer ces <<
et >>
, et
de le compiler, pour voir de quoi il retourne.
<< % Système pianistique et portée de pédalier sont synchrones \new PianoStaff << \new Staff = "ManuelUn" << \new Voice { \ManuelUnVoixUnMusique } \new Voice { \ManuelUnVoixDeuxMusique } >> % fin du contexte de portée ManuelUn \new Staff = "ManuelDeux" << \new Voice { \ManuelDeuxMusique } >> % fin du contexte de portée ManuelDeux >> % fin du contexte PianoStaff \new Staff = "PedalierOrgue" << \new Voice { \PedalierOrgueMusique } >> >>
La construction en simultané – << … >>
– n’est pas
strictement obligatoire pour les portées manuel deux et pédalier, qui ne
contiennent chacune qu’une seule expression musicale ; mais cela ne
mange pas de pain, et c’est une bonne habitude que de toujours encadrer
par des doubles chevrons gauche/droite ce qui suit une commande
\new Staff
au cas où il y aurait plusieurs voix. Il en va
autrement pour les contextes Voice
: ils doivent être toujours
suivis d’accolades – { … }
– au cas où vous auriez
employé plusieurs variables qui doivent intervenir consécutivement.
Ajoutons donc cette structure au bloc \score
, tout en fignolant
l’indentation. Nous en profitons pour ajouter les clefs appropriées,
effectuer les réglages concernant les hampes et liaisons de la portée
supérieure grâce à \voiceOne
et \voiceTwo
, et mettre en
place la métrique et l’armure de chaque portée grâce à notre variable
\MetriqueArmure
.
\score { << % Système pianistique et portée de pédalier sont synchrones \new PianoStaff << \new Staff = "ManuelUn" << \ArmureMetrique % définition de l'armure et de la métrique \clef "treble" \new Voice { \voiceOne \ManuelUnVoixUnMusique } \new Voice { \voiceTwo \ManuelUnVoixDeuxMusique } >> % fin du contexte de la portée ManuelUn \new Staff = "ManuelDeux" << \ArmureMetrique \clef "bass" \new Voice { \ManuelDeuxMusique } >> % fin du contexte de la portée ManuelDeux >> % fin du contexte PianoStaff \new Staff = "PedalierOrgue" << \ArmureMetrique \clef "bass" \new Voice { \PedalierOrgueMusique } >> % fin du contexte de la portée PedalOrgan >> } % fin du contexte Score
Cette partition pour orgue est presque parfaite. Reste juste ce petit
défaut qui ne se remarque pas lorsque l’on considère un seul système :
la distance qui sépare la portée de pédalier de celle de la main gauche
devrait être plus ou moins égale à celle qui sépare les deux mains. En
fait, la distance entre les deux portées d’un PianoStaff
ne
saurait trop se dilater ; le pédalier devrait adopter le même
comportement.
La propension des portées à se dilater se contrôle à l’aide de la
propriété staff-staff-spacing
, attachée à « l’objet graphique »
VerticalAxisGroup
– la documentation de LilyPond utilise souvent
l’abréviation grob pour graphical object. Pas de
panique ! Tout ceci sera expliqué plus tard – pour les curieux,
jetez un œil au chapitre
Vue d'ensemble de la modification des propriétés.
Revenons à notre propos : nous voulons modifier uniquement la
sous-propriété stretchability
. Toutes les valeurs qui n’auront
pas été modifiées garderont leur valeur par défaut. Les impatients
trouveront les valeurs par défaut de la propriété
staff-staff-spacing
dans le fichier ‘scm/define-grobs.scm’,
en examinant la définition du grob VerticalAxisGroup
. La
valeur que nous affecterons à stretchability
est celle que
contient la définition du contexte PianoStaff
telle qu’elle
apparaît dans le fichier ‘ly/engraver-init.ly’).
\score { << % Système pianistique et portée de pédalier sont synchrones \new PianoStaff << \new Staff = "ManuelUn" << \ArmureMetrique % définition de l'armure et de la métrique \clef "treble" \new Voice { \voiceOne \ManuelUnVoixUnMusique } \new Voice { \voiceTwo \ManuelUnVoixDeuxMusique } >> % fin du contexte de la portée ManuelUn \new Staff = "ManuelDeux" \with { \override VerticalAxisGroup.staff-staff-spacing.stretchability = 5 } << \ArmureMetrique \clef "bass" \new Voice { \ManuelDeuxMusique } >> % fin du contexte de la portée ManuelDeux >> % fin du contexte PianoStaff \new Staff = "PedalierOrgue" << \ArmureMetrique \clef "bass" \new Voice { \PedalierOrgueMusique } >> % fin du contexte de la portée PedalOrgan >> } % fin du contexte Score
Nous en avons fini avec la structure. Toutes les partitions pour orgue auront cette structure, même si le nombre de voix peut changer. Tout ce qui nous reste à faire maintenant consiste à saisir la musique et à regrouper toutes les parties.
\header { title = "Jesu, meine Freude" composer = "J S Bach" } keyTime = { \key c \minor \time 4/4 } ManualOneVoiceOneMusic = \relative { g'4 g f ees | d2 c | } ManualOneVoiceTwoMusic = \relative { ees'16 d ees8~ 16 f ees d c8 d~ d c~ | 8 c4 b8 c8. g16 c b c d | } ManualTwoMusic = \relative { c'16 b c8~ 16 b c g a8 g~ 16 g aes ees | f16 ees f d g aes g f ees d ees8~ 16 f ees d | } PedalOrganMusic = \relative { r8 c16 d ees d ees8~ 16 a, b g c b c8 | r16 g ees f g f g8 c,2 | } \score { << % PianoStaff and Pedal Staff must be simultaneous \new PianoStaff << \new Staff = "ManualOne" << \keyTime % set key and time signature \clef "treble" \new Voice { \voiceOne \ManualOneVoiceOneMusic } \new Voice { \voiceTwo \ManualOneVoiceTwoMusic } >> % end ManualOne Staff context \new Staff = "ManualTwo" \with { \override VerticalAxisGroup.staff-staff-spacing.stretchability = 5 } << \keyTime \clef "bass" \new Voice { \ManualTwoMusic } >> % end ManualTwo Staff context >> % end PianoStaff context \new Staff = "PedalOrgan" << \keyTime \clef "bass" \new Voice { \PedalOrganMusic } >> % end PedalOrgan Staff context >> } % end Score context
Voir aussi
Glossaire musicologique : système.