Lilypond génère des fichiers midi qui aident à l'apprentissage des chants de notre chorale. Ces pièces, quand elles sont importantes, sont divisées en parties et \book me permet de nommer facilement les divers fichiers de sortie, .pdf et .mid.
Un exemple, A Concert Celebration de Andrew Lloyd Webber, divisé en sept parties, I, II… VII, dont voici l'architecture des dossiers et des fichiers :
Webber/
|-- books/
|-- ilys/
| |-- altoI.ily, ... , altoVII.ily ; ... ; tenorI.ily, ... , tenorVII.ily, pianoI.ily, ... , pianoVII.ily % les voix de chaque partie
| |-- altoWebber.ily, ..., tenorWebber.ily, pianoWebber.ily % les voix de la pièce fabriquées à l'aide des voix partielles.
|-- init
| |-- common.ily % #(ly:set-option 'midi-extension "mid"), #(ly:set-option 'point-and-click #f) ...
| |-- global.ily % contient les \global de chaque partie : globalI = { \key sib \major \time 4/4 \tempo "" 4=96 } ...
|--parts| |-- altoPart.ily, ... , tenorPart.ily, pianoPart.ily % mise en place des diverses partitions.
| |-- all.ly, alto.ly, ... , tenor.ly, piano.ly % sortie .pdf et .mid de la pièce complète pour chacune des voix.
|-- util.ily %
Exemples de fichiers :
- les voix du dossier /ilys/ :
- altoI.ily contient la musique, la dynamique et le texte de la voix d'alto de la partie I :
- % -*- master: ../parts/alto.ly; % pour Frescobaldi
\include "../init/common.ily"
altoMusicI = \relative { \globalI } % la musique
altoDynI = { } % la dynamique
altoWordsI = \lyricmode { } % le texte
- pianoI.ily contient la musique des mains droite et gauche, la dynamique et la pédale du piano de la partie I :
- % -*- master: ../parts/piano.ly;
rhMusicI = \relative { \globalI } % la musique de la main droite.
lhMusicI = \relative { \globalI } % la musique de la main gauche.
pianoDynNuancesI = { } % les nuances.
pianoDynPedaleI = { } % la pédale.
- altoWebber.ily regroupe la musique, la dynamique et les paroles de toutes les parties de la voix d'alto
- % -*- master: ../parts/alto.ly;
\include "../ilys/altoI.ily" ... \include "../ilys/altoVII.ily"
altoMusicWebber = { \altoMusicI ... \altoMusicVII }
altoDynWebber = { \altoDynI ... \altoDynVII }
altoWordsWebber = { \altoWordsI ... \altoWordsVII }
- les partitions du dossier /parts/ sont de deux types : <voice>Part.ily fabrique des partitions, <voice>.ly les utilise :
- altoPart.ily fabrique les partitions de chacune des parties de la voix d'alto
- \include "../ilys/altoI.ily" ... \include "../ilys/altoVII.ily" \include "../ilys/altoWebber.ily"
altoPartWebber = { \new Staff \with { \altoSet }
\new Voice = "alto" { << \altoMusicWebber \altoDynWebber >> } \addlyrics { \altoWordsWebber } }
altoPartI = { \new Staff \with { \altoSet }
\new Voice = "alto" { << \altoMusicI \altoDynI >> } \addlyrics { \altoWordsI } }
etc ...
- pianoPart.ily fabrique les partitions de chacune des parties de la voix de piano
- \include "../ilys/pianoI.ily" ... \include "../ilys/pianoVII.ily" \include "../ilys/pianoWebber.ily
pianoPartWebber = {
\new PianoStaff \with { \pianoSet }
<<
\new Staff = "right"
<<
\new Voice { \rhMusicWebber }
\new Dynamics = "nuances" \with { alignBelowContext = "right" } { \pianoDynNuancesWebber } >>
\new Staff = "left"
<<
\new Voice { \lhMusicWebber }
\new Dynamics = "pedales" \with { alignBelowContext = "left" pedalSustainStyle = #'mixed }
{ \pianoDynPedaleWebber }
>>
>>
}
pianoPartI = {
\new PianoStaff \with { \pianoSet }
<<
\new Staff = "right"
<<
\new Voice { \rhMusicI }
\new Dynamics = "nuances" \with { alignBelowContext = "right" } { \pianoDynNuancesI }
>>
\new Staff = "left"
<<
\new Voice { \lhMusicI }
\new Dynamics = "pedales" \with { alignBelowContext = "left" pedalSustainStyle = #'mixed }
{ \pianoDynPedaleI }
>>
>>
}
etc ...
- alto.ly génère les sorties .pdf et .mid de la voix d'alto de la pièce entière accompagnée par le piano :
- \include "../util.ily" \include "../ilys/altoPart.ily" \include "../ilys/pianoPart.ily"
\include "articulate.ly"
\header { instrument = "Alto et piano" }
\score {
<< \new ChoirStaff << \altoPartWebber >>
\pianoPartWebber
>>
\layout { \context { \Score currentBarNumber = #1 } }
}
\score {
\articulate
\unfoldRepeats {
<< \new ChoirStaff << \altoPartWebber >>
\pianoPartWeber
>>
}
\midi { }
}
- les \book du dossier /books/ :
- book_alto.ly génère les .pdf partitions de toutes les parties de la voix d'alto et les .mid de ces parties accompagnées du piano :
- \include "../utilMorricone.ily"
\include "../parts/altoPart.ily" \include "../parts/pianoPart.ily"
\include "articulate.ly"
\book {
\bookOutputName "Webber" % sorties Webber-alto_I.pdf et Webber-alto_I.mid
\bookOutputSuffix "alto_I"
\header {
title = "A Concert Celebration"
composer = "Andrew Lloyd Webber"
instrument = "Alto"
poet = "Partie I, mesure 1 => mesure 42"
}
\score {
<< \new ChoirStaff << \altoPartI >> >>
\layout { \context { \Score currentBarNumber = #1 } }
}
\score {
\articulate
\unfoldRepeats {
<< \new ChoirStaff << \altoPartI >>
<< \pianoPartI >>
>> }
\midi { }
}
}
\book {
\bookOutputName "Webber" % sorties Webber-alto_II.pdf et Webber-alto_II.mid
\bookOutputSuffix "alto_II"
\header {
title = "A Concert Celebration"
composer = "Andrew Lloyd Webber"
instrument = "Alto"
poet = "Partie II, mesure 43 => mesure 68"
}
\score {
<< \new ChoirStaff << \altoPartII >> >>
\layout { \context { \Score currentBarNumber = #43 } }
}
\score {
\articulate
\unfoldRepeats {
<< \new ChoirStaff << \altoPartII >>
<< \pianoPartII >>
>> }
\midi { }
}
}
etc ...
- le fichier uti1.ly :
- #(ly:set-option 'relative-includes #t)
\include "./init/global.ily"
\include "./init/common.ily"
altoSet = {
\set Staff.midiInstrument = #"choir aahs"
\set Staff.instrumentName = "Alto"
\set Staff.shortInstrumentName = "A"
\set Staff.midiMaximumVolume = #0.9
}
etc ...
\layout {
\context { \ChoirStaff \dynamicUp \override SystemStartBracket.collapse-height = #4 }
\context { \Score \override SystemStartBar.collapse-height = #4 }
\context { \PianoStaff \dynamicDown }
}
J'espère que ceci peut vous aider,
Jean-Luc