[ << Chords ] | [Racine][Table des matières] | [ Percussion >> ] |
[ < ] | [Plus haut: Top ] | [ > ] |
Keyboards
Keyboard and other multi-staff instruments
[ << Keyboards ] | [Racine][Table des matières] | [ Percussion >> ] |
[ < Keyboards ] | [Plus haut: Keyboards ] | [ > ] |
Symboles de chant pour accordéon
Cet extrait de code est rendu obsolète par l’apparition de commandes de
markup prédéfinies. Il reste néanmoins utile à titre d’exemple
sur la manière de combiner des symboles : le positionnement de tels
symboles, ajoutés sous forme de markups, s’ajuste à l’aide des
arguments de \translate-scaled
. La fonction
\translate-scaled
est ici préférée à \translate
parce
qu’elle permet au positionnement des parties symboliques de s’adapter
aux changements de font-size
.
discant = \markup { \musicglyph "accordion.discant" } dot = \markup { \musicglyph "accordion.dot" } \layout { ragged-right = ##t } % 16 voets register accBasson = ^\markup { \combine \discant \translate-scaled #'(0 . 0.5) \dot } % een korig 8 en 16 voets register accBandon = ^\markup { \combine \discant \combine \translate-scaled #'(0 . 0.5) \dot \translate-scaled #'(0 . 1.5) \dot } accVCello = ^\markup { \combine \discant \combine \translate-scaled #'(0 . 0.5) \dot \combine \translate-scaled #'(0 . 1.5) \dot \translate-scaled #'(1 . 1.5) \dot } % 4-8-16 voets register accHarmon = ^\markup { \combine \discant \combine \translate-scaled #'(0 . 0.5) \dot \combine \translate-scaled #'(0 . 1.5) \dot \translate-scaled #'(0 . 2.5) \dot } accTrombon = ^\markup { \combine \discant \combine \translate-scaled #'(0 . 0.5) \dot \combine \translate-scaled #'(0 . 1.5) \dot \combine \translate-scaled #'(1 . 1.5) \dot \translate-scaled #'(-1 . 1.5) \dot } % eenkorig 4 en 16 voets register accOrgan = ^\markup { \combine \discant \combine \translate-scaled #'(0 . 0.5) \dot \translate-scaled #'(0 . 2.5) \dot } accMaster = ^\markup { \combine \discant \combine \translate-scaled #'(0 . 0.5) \dot \combine \translate-scaled #'(0 . 1.5) \dot \combine \translate-scaled #'(1 . 1.5) \dot \combine \translate-scaled #'(-1 . 1.5) \dot \translate-scaled #'(0 . 2.5) \dot } accAccord = ^\markup { \combine \discant \combine \translate-scaled #'(0 . 1.5) \dot \combine \translate-scaled #'(1 . 1.5) \dot \combine \translate-scaled #'(-1 . 1.5) \dot \translate-scaled #'(0 . 2.5) \dot } accMusette = ^\markup { \combine \discant \combine \translate-scaled #'(0 . 1.5) \dot \combine \translate-scaled #'(1 . 1.5) \dot \translate-scaled #'(-1 . 1.5) \dot } accCeleste = ^\markup { \combine \discant \combine \translate-scaled #'(0 . 1.5) \dot \translate-scaled #'(-1 . 1.5) \dot } accOboe = ^\markup { \combine \discant \combine \translate-scaled #'(0 . 1.5) \dot \translate-scaled #'(0 . 2.5) \dot } accClarin = ^\markup { \combine \discant \translate-scaled #'(0 . 1.5) \dot } accPiccolo = ^\markup { \combine \discant \translate-scaled #'(0 . 2.5) \dot } accViolin = ^\markup { \combine \discant \combine \translate-scaled #'(0 . 1.5) \dot \combine \translate-scaled #'(1 . 1.5) \dot \translate-scaled #'(0 . 2.5) \dot } \relative c'' { c4 d\accBasson e f c4 d\accBandon e f c4 d\accVCello e f c4 d\accHarmon e f c4 d\accTrombon e f \break c4 d\accOrgan e f c4 d\accMaster e f c4 d\accAccord e f c4 d\accMusette e f c4 d\accCeleste e f \break c4 d\accOboe e f c4 d\accClarin e f c4 d\accPiccolo e f c4 d\accViolin e f }
[ << Keyboards ] | [Racine][Table des matières] | [ Percussion >> ] |
[ < ] | [Plus haut: Keyboards ] | [ > ] |
Symboles de registre pour accordéon
Les symboles spécifiques aux registres d’accordéon sont disponible tant
sous forme de \markup
que d’événements musicaux indépendants –
un changement de registre a tendance à intervenir entre des événements
musicaux réels. Les registres de basse ne sont pas très standardisés.
Les différentes commandes disponibles sont regroupées à l’annexe
Registres d’accordéon.
#(use-modules (lily accreg)) \new PianoStaff << \new Staff \relative { \clef treble \discant "10" r8 s32 f'[ bes f] s e[ a e] s d[ g d] s16 e32[ a] << { r16 <f bes> r <e a> r <d g> } \\ { d r a r bes r } >> | <cis e a>1 } \new Staff \relative { \clef treble \freeBass "1" r8 d'32 s16. c32 s16. bes32 s16. a32[ cis] s16 \clef bass \stdBass "Master" << { r16 <f, bes d>^"b" r <e a c>^"am" r <d g bes>^"gm" | <e a cis>1^"a" } \\ { d8_"D" c_"C" bes_"B" | a1_"A" } >> } >>
[ << Keyboards ] | [Racine][Table des matières] | [ Percussion >> ] |
[ < ] | [Plus haut: Keyboards ] | [ > ] |
Modification du texte des indications de pédale
Staff.pedalSustainStrings
permet de définir le texte affiché pour
les instructions de pédale. Les seuls caractères autorisés sont les
glyphes particuliers de pédale, comme vous pouvez le constater ici.
sustainNotes = { c4\sustainOn d e\sustainOff\sustainOn f\sustainOff } \relative c' { \sustainNotes \set Staff.pedalSustainStrings = #'("P" "P-" "-") \sustainNotes \set Staff.pedalSustainStrings = #'("d" "de" "e") \sustainNotes \set Staff.pedalSustainStrings = #'("M" "M-" "-") \sustainNotes \set Staff.pedalSustainStrings = #'("Ped" "*Ped" "*") \sustainNotes }
[ << Keyboards ] | [Racine][Table des matières] | [ Percussion >> ] |
[ < ] | [Plus haut: Keyboards ] | [ > ] |
Clusters
Un cluster indique à l’instrumentiste qu’il doit jouer toute une suite de sons.
fragment = \relative c' { c4 f <e d'>4 <g a>8 <e a> a4 c2 <d b>4 e2 c } << \new Staff \fragment \new Staff \makeClusters \fragment >>
[ << Keyboards ] | [Racine][Table des matières] | [ Percussion >> ] |
[ < ] | [Plus haut: Keyboards ] | [ > ] |
Contrôler la position des doigtés dans un accord
Le positionnement des doigtés peut être contrôlé de manière très
précise. Afin que l’orientation soit prise en compte, il est nécessaire
d’utiliser une syntaxe d’accord < >
, même s’il ne s’agit que
d’une seule note. Le positionnement des numéros de corde et doigtés main
droite se règle de manière analogue.
\relative c' { \set fingeringOrientations = #'(left) <c-1 e-3 a-5>4 \set fingeringOrientations = #'(down) <c-1 e-3 a-5>4 \set fingeringOrientations = #'(down right up) <c-1 e-3 a-5>4 \set fingeringOrientations = #'(up) <c-1 e-3 a-5>4 \set fingeringOrientations = #'(left) <c-1>2 \set fingeringOrientations = #'(down) <e-3>2 \set stringNumberOrientations = #'(up left down) <f\3 a\2 c\1>1 \set strokeFingerOrientations = #'(down right up) <c\rightHandFinger #1 e\rightHandFinger #2 c'\rightHandFinger #4 > }
[ << Keyboards ] | [Racine][Table des matières] | [ Percussion >> ] |
[ < ] | [Plus haut: Keyboards ] | [ > ] |
Création d’une liaison entre plusieurs voix
Dans certaines situations, il peut être nécessaire de lier des notes
appartenant à des voix différentes. La solution consiste à ajouter une
note invisible dans l’une des voix, à l’aide de la commande
\hideNotes
.
Voici par exemple la mesure 235 de la chaconne de la seconde partita pour violon solo, BWV 1004, de Bach.
\relative c' { << { d16( a') s a s a[ s a] s a[ s a] } \\ { \slurUp bes,16[ s e]( \hideNotes a) \unHideNotes f[( \hideNotes a) \unHideNotes fis]( \hideNotes a) \unHideNotes g[( \hideNotes a) \unHideNotes gis]( \hideNotes a) } >> }
[ << Keyboards ] | [Racine][Table des matières] | [ Percussion >> ] |
[ < ] | [Plus haut: Keyboards ] | [ > ] |
Accord distribué et problème de hampe – solution
Il est parfois préférable d’utiliser les hampes de la portée supérieure
pour créer des accords distribués, afin d’éviter tout risque de
collision au niveau des ligatures automatiques. Dans l’exemple suivant,
le fait de partir des hampes de la portée inférieure aurait rendu
nécessaire l’adaptation du détecteur de collision des ligatures, par une
clause \override Staff.Beam.collision-voice-only = ##t
, afin
qu’il ne tienne pas compte des collisions entre portées.
\new PianoStaff << \new Staff = up \relative c' { << { r4 \override Stem.cross-staff = ##t \override Stem.length = #19 % this is in half-spaces, % so it makes stems 9.5 staffspaces long \override Stem.Y-offset = #-6 % stems are normally lengthened % upwards, so here we must lower the stem by the amount % equal to the lengthening - in this case (19 - 7) / 2 % (7 is default stem length) e e e } { s4 \change Staff = "bottom" \override NoteColumn.ignore-collision = ##t c, c c } >> } \new Staff = bottom \relative c' { \clef bass \voiceOne g8 a g a g a g a } >>
[ << Keyboards ] | [Racine][Table des matières] | [ Percussion >> ] |
[ < ] | [Plus haut: Keyboards ] | [ > ] |
Trémolo et changement de portée
Dans la mesure où \repeat tremolo
requiert deux arguments
musicaux pour un trémolo d’accords, la note ou l’accord de la portée
opposée doit être encadré par des accolades et se voir adjoindre la
commande \change Staff
.
\new PianoStaff << \new Staff = "up" \relative c'' { \key a \major \time 3/8 s4. } \new Staff = "down" \relative c'' { \key a \major \time 3/8 \voiceOne \repeat tremolo 6 { <a e'>32 { \change Staff = "up" \voiceTwo <cis a' dis>32 } } } >>
[ << Keyboards ] | [Racine][Table des matières] | [ Percussion >> ] |
[ < ] | [Plus haut: Keyboards ] | [ > ] |
Affinage des indications de pédale
Les crochets d’indication de pédale peuvent se modifier de différentes manières.
\paper { ragged-right = ##f } \relative c'' { c2\sostenutoOn c c2\sostenutoOff c \once \override Staff.PianoPedalBracket.shorten-pair = #'(-7 . -2) c2\sostenutoOn c c2\sostenutoOff c \once \override Staff.PianoPedalBracket.edge-height = #'(0 . 3) c2\sostenutoOn c c2\sostenutoOff c }
[ << Keyboards ] | [Racine][Table des matières] | [ Percussion >> ] |
[ < ] | [Plus haut: Keyboards ] | [ > ] |
Indication d’un accord à cheval sur deux portées par un crochet d’arpège
Un crochet d’arpège peut indiquer que des notes réparties sur deux
portées différentes doivent être jouées par la même main. Le contexte
PianoStaff
doit accepter ces arpèges « distribués », et les
indications d’arpège du contexte PianoStaff
adopter une allure de
crochet.
(Debussy, Les collines d’Anacapri, mesure 65)
\new PianoStaff << \set PianoStaff.connectArpeggios = ##t \override PianoStaff.Arpeggio.stencil = #ly:arpeggio::brew-chord-bracket \new Staff { \relative c' { \key b \major \time 6/8 b8-.(\arpeggio fis'-.\> cis-. e-. gis-. b-.)\!\fermata^\laissezVibrer \bar "||" } } \new Staff { \relative c' { \clef bass \key b \major << { <a e cis>2.\arpeggio } \\ { <a, e a,>2. } >> } } >>
[ << Keyboards ] | [Racine][Table des matières] | [ Percussion >> ] |
[ < ] | [Plus haut: Keyboards ] | [ > ] |
Symboles de jazz
Bien que compliqué de prime abord, voici un canevas tout à fait indiqué
pour les ensembles de jazz. Vous noterez que tous les instruments sont
notés en ut (\key c \major
), la tonalité de concert. Les notes
seront automatiquement transposées dès lors qu’elles seront inscrites
dans une section \transpose
.
\header { title = "Song" subtitle = "(tune)" composer = "Me" meter = "moderato" piece = "Swing" tagline = \markup { \column { "LilyPond example file by Amelie Zapf," "Berlin 07/07/2003" } } } % To make the example display in the documentation \paper { paper-width = 130 } %#(set-global-staff-size 16) \include "english.ly" %%%%%%%%%%%% Some macros %%%%%%%%%%%%%%%%%%% sl = { \override NoteHead.style = #'slash \hide Stem } nsl = { \revert NoteHead.style \undo \hide Stem } crOn = \override NoteHead.style = #'cross crOff = \revert NoteHead.style %% insert chord name style stuff here. jazzChords = { } %%%%%%%%%%%% Keys'n'thangs %%%%%%%%%%%%%%%%% global = { \time 4/4 } Key = { \key c \major } % ############ Horns ############ % ------ Trumpet ------ trpt = \transpose c d \relative c'' { \Key c1 | c | c | } trpHarmony = \transpose c' d { \jazzChords } trumpet = { \global \clef treble << \trpt >> } % ------ Alto Saxophone ------ alto = \transpose c a \relative c' { \Key c1 | c | c | } altoHarmony = \transpose c' a { \jazzChords } altoSax = { \global \clef treble << \alto >> } % ------ Baritone Saxophone ------ bari = \transpose c a' \relative c { \Key c1 c1 \sl d4^"Solo" d d d \nsl } bariHarmony = \transpose c' a \chordmode { \jazzChords s1 s d2:maj e:m7 } bariSax = { \global \clef treble << \bari >> } % ------ Trombone ------ tbone = \relative c { \Key c1 | c | c } tboneHarmony = \chordmode { \jazzChords } trombone = { \global \clef bass << \tbone >> } % ############ Rhythm Section ############# % ------ Guitar ------ gtr = \relative c'' { \Key c1 \sl b4 b b b \nsl c1 } gtrHarmony = \chordmode { \jazzChords s1 c2:min7+ d2:maj9 } guitar = { \global \clef treble << \gtr >> } %% ------ Piano ------ rhUpper = \relative c'' { \voiceOne \Key c1 | c | c } rhLower = \relative c' { \voiceTwo \Key e1 | e | e } lhUpper = \relative c' { \voiceOne \Key g1 | g | g } lhLower = \relative c { \voiceTwo \Key c1 | c | c } PianoRH = { \clef treble \global << \new Voice = "one" \rhUpper \new Voice = "two" \rhLower >> } PianoLH = { \clef bass \global << \new Voice = "one" \lhUpper \new Voice = "two" \lhLower >> } piano = { << \new Staff = "upper" \PianoRH \new Staff = "lower" \PianoLH >> } % ------ Bass Guitar ------ Bass = \relative c { \Key c1 | c | c } bass = { \global \clef bass << \Bass >> } % ------ Drums ------ up = \drummode { \voiceOne hh4 <hh sn> hh <hh sn> hh4 <hh sn> hh <hh sn> hh4 <hh sn> hh <hh sn> } down = \drummode { \voiceTwo bd4 s bd s bd4 s bd s bd4 s bd s } drumContents = { \global << \new DrumVoice \up \new DrumVoice \down >> } %%%%%%%%% It All Goes Together Here %%%%%%%%%%%%%%%%%%%%%% \score { << \new StaffGroup = "horns" << \new Staff = "trumpet" \with { instrumentName = "Trumpet" } \trumpet \new Staff = "altosax" \with { instrumentName = "Alto Sax" } \altoSax \new ChordNames = "barichords" \with { instrumentName = "Trumpet" } \bariHarmony \new Staff = "barisax" \with { instrumentName = "Bari Sax" } \bariSax \new Staff = "trombone" \with { instrumentName = "Trombone" } \trombone >> \new StaffGroup = "rhythm" << \new ChordNames = "chords" \gtrHarmony \new Staff = "guitar" \with { instrumentName = "Guitar" } \guitar \new PianoStaff = "piano" \with { instrumentName = "Piano" midiInstrument = "acoustic grand" } \piano \new Staff = "bass" \with { instrumentName = "Bass" } \bass \new DrumStaff \with { instrumentName = "Drums" } \drumContents >> >> \layout { \context { \Staff \RemoveEmptyStaves } \context { \Score \override BarNumber.padding = #3 \override RehearsalMark.padding = #2 skipBars = ##t } } \midi { } }
[ << Keyboards ] | [Racine][Table des matières] | [ Percussion >> ] |
[ < ] | [Plus haut: Keyboards ] | [ > ] |
Liaison « Laissez vibrer »
Les indications de « laisser vibrer » ont une taille fixe. Leur
formatage est accessible au travers de la propriété
tie-configuration
.
\relative c' { <c e g>4\laissezVibrer r <c f g>\laissezVibrer r <c d f g>4\laissezVibrer r <c d f g>4.\laissezVibrer r8 <c d e f>4\laissezVibrer r \override LaissezVibrerTieColumn.tie-configuration = #`((-7 . ,DOWN) (-5 . ,DOWN) (-3 . ,UP) (-1 . ,UP)) <c d e f>4\laissezVibrer r }
[ << Keyboards ] | [Racine][Table des matières] | [ Percussion >> ] |
[ < ] | [Plus haut: Keyboards ] | [ > ] |
Piano – cannevas simple
Voici une simple partition pour piano avec quelques notes.
upper = \relative c'' { \clef treble \key c \major \time 4/4 a4 b c d } lower = \relative c { \clef bass \key c \major \time 4/4 a2 c } \score { \new PianoStaff \with { instrumentName = "Piano" } << \new Staff = "upper" \upper \new Staff = "lower" \lower >> \layout { } \midi { } }
[ << Keyboards ] | [Racine][Table des matières] | [ Percussion >> ] |
[ < ] | [Plus haut: Keyboards ] | [ > ] |
Piano et paroles entre les portées
Lorsque la mélodie est doublée au piano, cela ne nécessite pas forcément une portée spécifique. Les paroles peuvent s’insérer entre les deux portées de la partition pour piano.
upper = \relative c'' { \clef treble \key c \major \time 4/4 a4 b c d } lower = \relative c { \clef bass \key c \major \time 4/4 a2 c } text = \lyricmode { Aaa Bee Cee Dee } \score { \new PianoStaff << \new Staff = upper { \new Voice = "singer" \upper } \new Lyrics \lyricsto "singer" \text \new Staff = lower { \lower } >> \layout { } \midi { } }
[ << Keyboards ] | [Racine][Table des matières] | [ Percussion >> ] |
[ < ] | [Plus haut: Keyboards ] | [ > ] |
Piano, mélodie et paroles
Il s’agit du format classique pour le chant : une portée pour la mélodie et les paroles au-dessus de l’accompagnement au piano.
melody = \relative c'' { \clef treble \key c \major \time 4/4 a b c d } text = \lyricmode { Aaa Bee Cee Dee } upper = \relative c'' { \clef treble \key c \major \time 4/4 a4 b c d } lower = \relative c { \clef bass \key c \major \time 4/4 a2 c } \score { << \new Voice = "mel" { \autoBeamOff \melody } \new Lyrics \lyricsto mel \text \new PianoStaff << \new Staff = "upper" \upper \new Staff = "lower" \lower >> >> \layout { \context { \Staff \RemoveEmptyStaves } } \midi { } }
[ << Keyboards ] | [Racine][Table des matières] | [ Percussion >> ] |
[ < ] | [Plus haut: Keyboards ] | [ > ] |
Retrait de l’accolade à la première ligne d’une pièce pour piano
Dans cet extrait est supprimée la première accolade d’un
PianoStaff
ou d’un GrandStaff
.
Ceci peut s’avérer utile pour couper et coller l’image générée dans de la musique préexistante.
Est utilisée la fonction \alterBroken
.
someMusic = { \once \override Staff.Clef.stencil = ##f \once \override Staff.TimeSignature.stencil = ##f \repeat unfold 3 c1 \break \repeat unfold 5 c1 \break \repeat unfold 5 c1 } \score { \new PianoStaff << \new Staff = "right" \relative c'' \someMusic \new Staff = "left" \relative c' { \clef F \someMusic } >> \layout { indent=75 \context { \PianoStaff \alterBroken transparent #'(#t) SystemStartBrace } } }
[ << Keyboards ] | [Racine][Table des matières] | [ Percussion >> ] |
[ < ] | [Plus haut: Keyboards ] | [ > ] |
Utilisation d’autoChange
avec plus d’une voix
L’instruction \autoChange
est opérationnelle y compris en
présence de voix multiples.
\score { \new PianoStaff << \new Staff = "up" { << \set Timing.beamExceptions = #'() \set Timing.beatStructure = #'(4) \new Voice { \voiceOne \autoChange \relative c' { g8 a b c d e f g g,8 a b c d e f g } } \new Voice { \voiceTwo \autoChange \relative c' { g8 a b c d e f g g,,8 a b c d e f g } } >> } \new Staff = "down" { \clef bass } >> }
[ << Keyboards ] | [Racine][Table des matières] | [ Percussion >> ] |
[ < ] | [Plus haut: Keyboards ] | [ Percussion > ] |
Ensemble vocal avec réduction pour piano
Ce canevas ajoute une réduction pour piano à une partition standard pour
chœur à quatre voix mixtes. Ceci illustre l’un des avantages de
LilyPond : une expression musicale peut être réutilisée sans effort.
Toute modification apportée à l’une des voix, mettons tenorMusique
,
sera automatiquement reportée dans la réduction pour piano.
\paper { top-system-spacing.basic-distance = #10 score-system-spacing.basic-distance = #20 system-system-spacing.basic-distance = #20 last-bottom-spacing.basic-distance = #10 } global = { \key c \major \time 4/4 } sopMusic = \relative { c''4 c c8[( b)] c4 } sopWords = \lyricmode { hi hi hi hi } altoMusic = \relative { e'4 f d e } altoWords =\lyricmode { ha ha ha ha } tenorMusic = \relative { g4 a f g } tenorWords = \lyricmode { hu hu hu hu } bassMusic = \relative { c4 c g c } bassWords = \lyricmode { ho ho ho ho } \score { << \new ChoirStaff << \new Lyrics = "sopranos" \with { % This is needed for lyrics above a staff \override VerticalAxisGroup.staff-affinity = #DOWN } \new Staff = "women" << \new Voice = "sopranos" { \voiceOne << \global \sopMusic >> } \new Voice = "altos" { \voiceTwo << \global \altoMusic >> } >> \new Lyrics = "altos" \new Lyrics = "tenors" \with { % This is needed for lyrics above a staff \override VerticalAxisGroup.staff-affinity = #DOWN } \new Staff = "men" << \clef bass \new Voice = "tenors" { \voiceOne << \global \tenorMusic >> } \new Voice = "basses" { \voiceTwo << \global \bassMusic >> } >> \new Lyrics = "basses" \context Lyrics = "sopranos" \lyricsto "sopranos" \sopWords \context Lyrics = "altos" \lyricsto "altos" \altoWords \context Lyrics = "tenors" \lyricsto "tenors" \tenorWords \context Lyrics = "basses" \lyricsto "basses" \bassWords >> \new PianoStaff << \new Staff << \set Staff.printPartCombineTexts = ##f \partCombine << \global \sopMusic >> << \global \altoMusic >> >> \new Staff << \clef bass \set Staff.printPartCombineTexts = ##f \partCombine << \global \tenorMusic >> << \global \bassMusic >> >> >> >> }
[ << Keyboards ] | [Racine][Table des matières] | [ Percussion >> ] |
[ < ] | [Plus haut: Keyboards ] | [ Percussion > ] |