[ << Top ] | [Racine][Table des matières] | [ Rhythms >> ] |
[ < Top ] | [Plus haut: Top ] | [ > ] |
Pitches
[ << Pitches ] | [Racine][Table des matières] | [ Rhythms >> ] |
[ < Pitches ] | [Plus haut: Pitches ] | [ > ] |
Un ambitus par voix
L’ambitus
peut être individualisé par voix. Il faut en pareil
cas éviter qu’ils se chevauchent.
\new Staff << \new Voice \with { \consists "Ambitus_engraver" } \relative c'' { \override Ambitus.X-offset = #2.0 \voiceOne c4 a d e f1 } \new Voice \with { \consists "Ambitus_engraver" } \relative c' { \voiceTwo es4 f g as b1 } >>
[ << Pitches ] | [Racine][Table des matières] | [ Rhythms >> ] |
[ < ] | [Plus haut: Pitches ] | [ > ] |
Ajout d’une indication d’octave pour une seule voix
Lorsque plusieurs voix cohabitent sur une même portée, déterminer
l’octaviation d’une voix affecte la position des notes de toutes les
voix, jusqu’à la fin du crochet d’octaviation. Si l’octaviation ne doit
s’appliquer qu’à une seule voix, le Ottava_spanner_engraver
devrait être déplacé dans le contexte Voice
.
\layout { \context { \Staff \remove Ottava_spanner_engraver } \context { \Voice \consists Ottava_spanner_engraver } } { \clef bass << { <g d'>1~ q2 <c' e'> } \\ { r2. \ottava -1 <b,,, b,,>4 ~ | q2 \ottava 0 <c e>2 } >> }
[ << Pitches ] | [Racine][Table des matières] | [ Rhythms >> ] |
[ < ] | [Plus haut: Pitches ] | [ > ] |
Variante fine des notes profilées Aiken
Les notes profilées Aiken, lorsqu’elles sont blanches, deviennent difficile à distinguer avec des tailles de portée réduites, notamment en présence de ligne supplémentaire. Perdant du blanc sur leur intérieur les fait alors ressembler à des noires.
\score { { \aikenHeads c''2 a' c' a % Switch to thin-variant noteheads \set shapeNoteStyles = ##(doThin reThin miThin faThin sol laThin tiThin) c'' a' c' a } }
[ << Pitches ] | [Racine][Table des matières] | [ Rhythms >> ] |
[ < ] | [Plus haut: Pitches ] | [ > ] |
Modification de la hauteur de hampes ligaturées
La hauteur de hampe des notes ligaturées est gérée par la sous-propriété
beamed-lengths
des details
de l’objet Stem
.
Lorsqu’elle ne comporte qu’une seule valeur, cette hauteur s’appliquera
à toutes les hampes. En présence de plusieurs arguments, le premier
affectera les croches, le second les doubles croches, et ainsi de suite.
Le dernier argument s’appliquera aussi aux notes de plus courte durée.
Les arguments peuvent être des valeurs décimales.
\relative c'' { \override Stem.details.beamed-lengths = #'(2) a8[ a] a16[ a] a32[ a] \override Stem.details.beamed-lengths = #'(8 10 12) a8[ a] a16[ a] a32[ a] r8 \override Stem.details.beamed-lengths = #'(8) a8[ a] \override Stem.details.beamed-lengths = #'(8.5) a8[ a] \revert Stem.details.beamed-lengths a8[ a] a16[ a] a32[ a] r16 }
[ << Pitches ] | [Racine][Table des matières] | [ Rhythms >> ] |
[ < ] | [Plus haut: Pitches ] | [ > ] |
Ambitus
Un ambitus indique la tessiture, autrement dit les hauteurs extrêmes d’une voix.
Seules seront affichées les altérations non comprises dans l’armure.
Les objets AmbitusNoteHead
peuvent avoir des lignes
supplémentaires.
\layout { \context { \Voice \consists "Ambitus_engraver" } } << \new Staff { \relative c' { \time 2/4 c4 f' } } \new Staff { \relative c' { \time 2/4 \key d \major cis4 as' } } >>
[ << Pitches ] | [Racine][Table des matières] | [ Rhythms >> ] |
[ < ] | [Plus haut: Pitches ] | [ > ] |
Ambitus après l’armure
L’ambitus se place par défaut à gauche de la clef. La fonction
\ambitusAfter
permet cependant de modifier ce positionnement ;
sa syntaxe est \ambitusAfter grob-interface
– voir
Graphical Object Interfaces pour une liste des valeurs de
grob-interface
possibles.
L’un des cas d’usage est d’insérer l’ambitus entre l’armure et la métrique.
\new Staff \with { \consists Ambitus_engraver } \relative { \ambitusAfter key-signature \key d \major es'8 g bes cis d2 }
[ << Pitches ] | [Racine][Table des matières] | [ Rhythms >> ] |
[ < ] | [Plus haut: Pitches ] | [ > ] |
Ambitus sur plusieurs voix
Si plusieurs voix se trouvent sur une même portée, on peut attribuer le
graveur Ambitus_engraver
au contexte Staff
afin d’obtenir
l’ambitus sur toutes les voix cumulées, non d’une seule des voix actives.
\new Staff \with { \consists "Ambitus_engraver" } << \new Voice \relative c'' { \voiceOne c4 a d e f1 } \new Voice \relative c' { \voiceTwo es4 f g as b1 } >>
[ << Pitches ] | [Racine][Table des matières] | [ Rhythms >> ] |
[ < ] | [Plus haut: Pitches ] | [ > ] |
Profilage des notes selon leur degré dans la gamme
La propriété shapeNoteStyles
permet d’affecter un profil
particulier à chaque degré de la gamme – à partir de l’armure ou
de la propriété tonic
. Ses valeurs sont constituées d’une liste
de symboles, qu’il s’agisse de formes géométriques (triangle
,
cross
ou xcircle
) ou basés sur la tradition des graveurs
américains (avec quelques noms de note latins).
LilyPond dispose de deux raccourcis, \aikenHeads
et
\sacredHarpHeads
, permettant de reproduire d’anciens recueils de
chansons américaines.
L’exemple suivant montre plusieurs manières de profiler les têtes de note, ainsi que la capacité de transposer tout en respectant la fonction harmonique de chaque note dans la gamme.
fragment = { \key c \major c2 d e2 f g2 a b2 c } \new Staff { \transpose c d \relative c' { \set shapeNoteStyles = ##(do re mi fa #f la ti) \fragment } \break \relative c' { \set shapeNoteStyles = ##(cross triangle fa #f mensural xcircle diamond) \fragment } }
[ << Pitches ] | [Racine][Table des matières] | [ Rhythms >> ] |
[ < ] | [Plus haut: Pitches ] | [ > ] |
Changement automatique de l’orientation de hampe de la note médiane selon la mélodie
Afin de suivre la ligne mélodique, LilyPond peut inverser l’orientation
de hampe de la note médiane, dès lors qu’aura été ajouté au contexte de
voix le graveur Melody_engraver
.
La propriété de contexte suspendMelodyDecisions
permet, si
besoin, de désactiver temporairement ce comportement.
\relative c'' { \time 3/4 a8 b g f b g | \set suspendMelodyDecisions = ##t a b g f b g | \unset suspendMelodyDecisions c b d c b c | } \layout { \context { \Voice \consists "Melody_engraver" \autoBeamOff } }
[ << Pitches ] | [Racine][Table des matières] | [ Rhythms >> ] |
[ < ] | [Plus haut: Pitches ] | [ > ] |
Modification du texte des marques d’octaviation
En interne, la fonction \ottava
détermine les propriétés
ottavation
(par ex. en "8va"
ou "8vb"
) et
middleCPosition
. Vous pouvez modifier le texte d’une marque
d’octaviation en définissant ottavation
après avoir fait appel à
ottava
.
Un texte bref est particulièrement utile lorsque l’octaviation est courte.
{ c'2 \ottava #1 \set Staff.ottavation = #"8" c''2 \ottava #0 c'1 \ottava #1 \set Staff.ottavation = #"Text" c''1 }
[ << Pitches ] | [Racine][Table des matières] | [ Rhythms >> ] |
[ < ] | [Plus haut: Pitches ] | [ > ] |
Réglage de l’affichage d’un ambitus
L’affichage d’un ambitus peut s’affiner pour répondre à vos préférences en matière d’esthétique.
\layout { \context { \Voice \consists "Ambitus_engraver" } } \new Staff { \time 2/4 % Default setting c'4 g'' } \new Staff { \time 2/4 \override AmbitusLine.gap = #0 c'4 g'' } \new Staff { \time 2/4 \override AmbitusLine.gap = #1 c'4 g'' } \new Staff { \time 2/4 \override AmbitusLine.gap = #1.5 c'4 g'' }
[ << Pitches ] | [Racine][Table des matières] | [ Rhythms >> ] |
[ < ] | [Plus haut: Pitches ] | [ > ] |
Modification de l’intervalle des lignes de la portée
staffLineLayoutFunction
permet de changer le positionnement des
notes. Dans cet exemple, la valeur qui lui est attribuée –
ly:pitch-semitones
– génère une gamme chromatique où l’écart
entre chaque ligne et interligne de la portée est ramené au demi ton.
scale = \relative c' { a4 ais b c cis4 d dis e f4 fis g gis a1 } \new Staff \with { \remove "Accidental_engraver" staffLineLayoutFunction = #ly:pitch-semitones } { << \scale \context NoteNames { \set printOctaveNames = ##f \scale } >> }
[ << Pitches ] | [Racine][Table des matières] | [ Rhythms >> ] |
[ < ] | [Plus haut: Pitches ] | [ > ] |
Transposition arbitraire d’une clef
Les clefs peuvent être transposées d’un intervalle différent de l’octave.
\relative c' { \clef treble c4 c c c \clef "treble_8" c4 c c c \clef "treble_5" c4 c c c \clef "treble^3" c4 c c c }
[ << Pitches ] | [Racine][Table des matières] | [ Rhythms >> ] |
[ < ] | [Plus haut: Pitches ] | [ > ] |
Coloration des notes selon leur hauteur
Les têtes de note peuvent adopter une couleur différente selon leur hauteur ou leur nom ; la fonction utilisée ici fait même la distinction entre enharmoniques.
%Association list of pitches to colors. #(define color-mapping (list (cons (ly:make-pitch 0 0 NATURAL) (x11-color 'red)) (cons (ly:make-pitch 0 0 SHARP) (x11-color 'green)) (cons (ly:make-pitch 0 1 FLAT) (x11-color 'green)) (cons (ly:make-pitch 0 2 NATURAL) (x11-color 'red)) (cons (ly:make-pitch 0 2 SHARP) (x11-color 'green)) (cons (ly:make-pitch 0 3 FLAT) (x11-color 'red)) (cons (ly:make-pitch 0 3 NATURAL) (x11-color 'green)) (cons (ly:make-pitch 0 4 SHARP) (x11-color 'red)) (cons (ly:make-pitch 0 5 NATURAL) (x11-color 'green)) (cons (ly:make-pitch 0 5 FLAT) (x11-color 'red)) (cons (ly:make-pitch 0 6 SHARP) (x11-color 'red)) (cons (ly:make-pitch 0 1 NATURAL) (x11-color 'blue)) (cons (ly:make-pitch 0 3 SHARP) (x11-color 'blue)) (cons (ly:make-pitch 0 4 FLAT) (x11-color 'blue)) (cons (ly:make-pitch 0 5 SHARP) (x11-color 'blue)) (cons (ly:make-pitch 0 6 FLAT) (x11-color 'blue)))) %Compare pitch and alteration (not octave). #(define (pitch-equals? p1 p2) (and (= (ly:pitch-alteration p1) (ly:pitch-alteration p2)) (= (ly:pitch-notename p1) (ly:pitch-notename p2)))) #(define (pitch-to-color pitch) (let ((color (assoc pitch color-mapping pitch-equals?))) (if color (cdr color)))) #(define (color-notehead grob) (pitch-to-color (ly:event-property (event-cause grob) 'pitch))) \score { \new Staff \relative c' { \override NoteHead.color = #color-notehead c8 b d dis ees f g aes } }
[ << Pitches ] | [Racine][Table des matières] | [ Rhythms >> ] |
[ < ] | [Plus haut: Pitches ] | [ > ] |
Création d’une séquence de notes de même hauteur
Lorsque la musique comporte à de nombreuses reprises une même séquence sur des hauteurs différentes, la fonction musicale ci-dessous peut s’avérer fort utile. Elle considère une note dont seule la hauteur est utilisée.
Cet exemple reproduit le rythme utilisé tout au long de « Mars », l’une des pièces de l’œuvre de Gustav Holst « Les planètes ».
rhythm = #(define-music-function (p) (ly:pitch?) "Make the rhythm in Mars (the Planets) at the given pitch" #{ \tuplet 3/2 { $p 8 8 8 } 4 4 8 8 4 #}) \new Staff { \time 5/4 \rhythm c' \rhythm c'' \rhythm g }
[ << Pitches ] | [Racine][Table des matières] | [ Rhythms >> ] |
[ < ] | [Plus haut: Pitches ] | [ > ] |
Création d’armures personnalisées
LilyPond accepte les armures personnalisées. Dans cet exemple, il s’agit d’une tonalité de ré mineur à laquelle on rajoute des bémols.
\new Staff \with { \override StaffSymbol.line-count = #8 \override KeySignature.flat-positions = #'((-7 . 6)) \override KeyCancellation.flat-positions = #'((-7 . 6)) % presumably sharps are also printed in both octaves \override KeySignature.sharp-positions = #'((-6 . 7)) \override KeyCancellation.sharp-positions = #'((-6 . 7)) \override Clef.stencil = # (lambda (grob)(grob-interpret-markup grob #{ \markup\combine \musicglyph "clefs.C" \translate #'(-3 . -2) \musicglyph "clefs.F" #})) clefPosition = #3 middleCPosition = #3 middleCClefPosition = #3 } { \key d\minor f bes, f bes, }
[ << Pitches ] | [Racine][Table des matières] | [ Rhythms >> ] |
[ < ] | [Plus haut: Pitches ] | [ > ] |
Orientation de la tête d’un « fa » profilé en cas de fusion
Grâce à la propriété NoteCollision.fa-merge-direction
,
l’orientation de la tête des notes profilées « fa » (fa
,
faThin
, etc.) peut se gérer indépendamment de la direction des
hampes lorsque deux voix ayant la même hauteur et des directions de
hampes différentes sont fusionnées. Lorsque cette propriété n’est pas
activée sera utilisée la variante « descendante ».
{ \clef bass << { \aikenHeads f2 \override Staff.NoteCollision.fa-merge-direction = #UP f2 } \\ { \aikenHeads f2 f2 } >> }
[ << Pitches ] | [Racine][Table des matières] | [ Rhythms >> ] |
[ < ] | [Plus haut: Pitches ] | [ > ] |
Impression forcée d’un bécarre avant une accidentelle
L’exemple suivant indique comment forcer l’impression d’un bécarre avant un changement d’altération.
\relative c' { \key es \major bes c des \tweak Accidental.restore-first ##t eis }
[ << Pitches ] | [Racine][Table des matières] | [ Rhythms >> ] |
[ < ] | [Plus haut: Pitches ] | [ > ] |
Impression forcée de la clef
Lorsqu’une clef a déjà été imprimée et qu’aucun changement n’est
intervenu, LilyPond ignore toute répétition de la commande \clef
puisque le signe est le même. Il est cependant possible de rappeler la
clef à s’imprimer à l’aide de l’instruction
\set Staff.forceClef = ##t
.
\relative c' { \clef treble c1 \clef treble c1 \set Staff.forceClef = ##t c1 \clef treble c1 }
[ << Pitches ] | [Racine][Table des matières] | [ Rhythms >> ] |
[ < ] | [Plus haut: Pitches ] | [ > ] |
Génération de notes aléatoires
Le fragment de code Scheme ci-dessous génère aléatoirement 24 notes (ou autant que nécessaire), à partir de l’heure courante (ou un nombre quelconque donné en argument, afin d’obtenir toujours les mêmes notes aléatoires). Pour obtenir une autre série de notes, il suffit de changer ce nombre.
\score { { $(let ((random-state (seed->random-state (current-time)))) (make-sequential-music (map (lambda (x) (let ((idx (random 12 random-state))) (make-event-chord (list (make-music 'NoteEvent 'duration (ly:make-duration 2 0 1/1) 'pitch (ly:make-pitch (quotient idx 7) (remainder idx 7) 0)))))) (make-list 24)))) } }
[ << Pitches ] | [Racine][Table des matières] | [ Rhythms >> ] |
[ < ] | [Plus haut: Pitches ] | [ > ] |
Non répétition de l’altération après saut de ligne sur liaison de prolongation
Cet exemple illustre comment, lorsqu’une note affublée d’une altération accidentelle est prolongée, ne pas répéter cette altération après un saut de ligne.
\relative c'' { \override Accidental.hide-tied-accidental-after-break = ##t cis1~ cis~ \break cis }
[ << Pitches ] | [Racine][Table des matières] | [ Rhythms >> ] |
[ < ] | [Plus haut: Pitches ] | [ > ] |
Conservation de la taille lors d’un changement de clef
Lorsqu’un changement de clef intervient, le nouveau signe s’imprime dans
une taille inférieure. On peut y déroger avec full-size-change
.
\relative c' { \clef "treble" c1 \clef "bass" c1 \clef "treble" c1 \override Staff.Clef.full-size-change = ##t \clef "bass" c1 \clef "treble" c1 \revert Staff.Clef.full-size-change \clef "bass" c1 \clef "treble" c1 }
[ << Pitches ] | [Racine][Table des matières] | [ Rhythms >> ] |
[ < ] | [Plus haut: Pitches ] | [ > ] |
Exemple de musique « Makam »
Le « makam » est une forme de mélodie turque qui utilise des altérations d’un neuvième de ton.
Consultez le fichier d’initialisation ‘ly/makam.ly’ pour plus de détails sur les hauteurs et altérations utilisées (voir le chapitre 5.7.4 - Autres sources d’information du manuel d’initiation pour le localiser).
% Initialize makam settings \include "makam.ly" \relative c' { \set Staff.keyAlterations = #`((6 . ,(- KOMA)) (3 . ,BAKIYE)) c4 cc db fk gbm4 gfc gfb efk fk4 db cc c }
[ << Pitches ] | [Racine][Table des matières] | [ Rhythms >> ] |
[ < ] | [Plus haut: Pitches ] | [ > ] |
Modification de la pente de l’extension d’octaviation
Il est possible d’adapter la pente d’une indication d’octaviation.
\relative c'' { \override Staff.OttavaBracket.stencil = #ly:line-spanner::print \override Staff.OttavaBracket.bound-details = #`((left . ((Y . 0) (attach-dir . ,LEFT) (padding . 0) (stencil-align-dir-y . ,CENTER))) (right . ((Y . 5.0) ; Change the number here (padding . 0) (attach-dir . ,RIGHT) (text . ,(make-draw-dashed-line-markup (cons 0 -1.2)))))) \override Staff.OttavaBracket.left-bound-info = #ly:horizontal-line-spanner::calc-left-bound-info-and-text \override Staff.OttavaBracket.right-bound-info = #ly:horizontal-line-spanner::calc-right-bound-info \ottava #1 c1 c'''1 }
[ << Pitches ] | [Racine][Table des matières] | [ Rhythms >> ] |
[ < ] | [Plus haut: Pitches ] | [ > ] |
Armures inhabituelles
La commande \key
détermine la propriété keyAlterations
d’un
contexte Staff
.
Des armures inhabituelles peuvent être spécifiées en modifiant directement cette propriété. Il s’agit en l’occurrence de définir une liste :
\set Staff.keyAlterations = #`(((octave . pas) . altération) ((octave . pas) . altération) @dots{})
dans laquelle, et pour chaque élément, octave
spécifie l’octave
(0 pour celle allant du do médium au si supérieur), pas
la note
dans cette octave (0 pour do et 6 pour si), et altération
sera
,SHARP
ou ,FLAT
ou ,DOUBLE-SHARP
, etc. (attention à
la virgule en préfixe).
Une formulation abrégée – (pas . altération)
– signifie que
l’altération de l’élément en question sera valide quelle que soit
l’octave.
En ce qui concerne les gammes microtonales dans lesquelles un
« dièse » n’est pas d’un centième, altération
se réfère à un
deux-centième de ton entier.
\include "arabic.ly" \relative do' { \set Staff.keyAlterations = #`((0 . ,SEMI-FLAT) (1 . ,SEMI-FLAT) (2 . ,FLAT) (5 . ,FLAT) (6 . ,SEMI-FLAT)) %\set Staff.extraNatural = ##f re reb \dwn reb resd dod dob dosd \dwn dob | dobsb dodsd do do | }
[ << Pitches ] | [Racine][Table des matières] | [ Rhythms >> ] |
[ < ] | [Plus haut: Pitches ] | [ > ] |
Easy play – chiffres en lieu et place des lettres
En mode « easy play », les têtes de note utilisent la propriété
note-names
attachée à l’objet NoteHead
pour déterminer ce
qui apparaîtra dans la tête. Intervenir sur cette propriété permet
d’imprimer un chiffre correspondant au degré dans la gamme.
La création d’un graveur dédié permet de traiter toutes les notes.
#(define Ez_numbers_engraver (make-engraver (acknowledgers ((note-head-interface engraver grob source-engraver) (let* ((context (ly:translator-context engraver)) (tonic-pitch (ly:context-property context 'tonic)) (tonic-name (ly:pitch-notename tonic-pitch)) (grob-pitch (ly:event-property (event-cause grob) 'pitch)) (grob-name (ly:pitch-notename grob-pitch)) (delta (modulo (- grob-name tonic-name) 7)) (note-names (make-vector 7 (number->string (1+ delta))))) (ly:grob-set-property! grob 'note-names note-names)))))) #(set-global-staff-size 26) \layout { ragged-right = ##t \context { \Voice \consists \Ez_numbers_engraver } } \relative c' { \easyHeadsOn c4 d e f g4 a b c \break \key a \major a,4 b cis d e4 fis gis a \break \key d \dorian d,4 e f g a4 b c d }
[ << Pitches ] | [Racine][Table des matières] | [ Rhythms >> ] |
[ < ] | [Plus haut: Pitches ] | [ > ] |
Orchestre, chœur et piano
Ce canevas illustre l’utilisation de contextes StaffGroup
pour
regrouper les instruments selon leur famille, imbriqués dans un
GrandStaff
, ainsi que le recours à la fonction \transpose
pour les instruments transpositeurs. Dans tous les identificateurs, la
musique est stockée en ut. Les notes peuvent tout aussi bien être
saisies en ut ou dans la tonalité particulière de l’instrument avant
d’être transposées puis affectées à une variable.
#(set-global-staff-size 17) \paper { indent = 3.0\cm % add space for instrumentName short-indent = 1.5\cm % add less space for shortInstrumentName } fluteMusic = \relative c' { \key g \major g'1 b } % Pitches as written on a manuscript for Clarinet in A % are transposed to concert pitch. clarinetMusic = \transpose c' a \relative c'' { \key bes \major bes1 d } trumpetMusic = \relative c { \key g \major g''1 b } % Key signature is often omitted for horns hornMusic = \transpose c' f \relative c { d'1 fis } percussionMusic = \relative c { \key g \major g1 b } sopranoMusic = \relative c'' { \key g \major g'1 b } sopranoLyrics = \lyricmode { Lyr -- ics } altoIMusic = \relative c' { \key g \major g'1 b } altoIIMusic = \relative c' { \key g \major g'1 b } altoILyrics = \sopranoLyrics altoIILyrics = \lyricmode { Ah -- ah } tenorMusic = \relative c' { \clef "treble_8" \key g \major g1 b } tenorLyrics = \sopranoLyrics pianoRHMusic = \relative c { \key g \major g''1 b } pianoLHMusic = \relative c { \clef bass \key g \major g1 b } violinIMusic = \relative c' { \key g \major g'1 b } violinIIMusic = \relative c' { \key g \major g'1 b } violaMusic = \relative c { \clef alto \key g \major g'1 b } celloMusic = \relative c { \clef bass \key g \major g1 b } bassMusic = \relative c { \clef "bass_8" \key g \major g,1 b } \score { << \new StaffGroup = "StaffGroup_woodwinds" << \new Staff = "Staff_flute" \with { instrumentName = "Flute" } \fluteMusic \new Staff = "Staff_clarinet" \with { instrumentName = \markup { \concat { "Clarinet in B" \flat } } } % Declare that written Middle C in the music % to follow sounds a concert B flat, for % output using sounded pitches such as MIDI. %\transposition bes % Print music for a B-flat clarinet \transpose bes c' \clarinetMusic >> \new StaffGroup = "StaffGroup_brass" << \new Staff = "Staff_hornI" \with { instrumentName = "Horn in F" } % \transposition f \transpose f c' \hornMusic \new Staff = "Staff_trumpet" \with { instrumentName = "Trumpet in C" } \trumpetMusic >> \new RhythmicStaff = "RhythmicStaff_percussion" \with { instrumentName = "Percussion" } << \percussionMusic >> \new PianoStaff \with { instrumentName = "Piano" } << \new Staff { \pianoRHMusic } \new Staff { \pianoLHMusic } >> \new ChoirStaff = "ChoirStaff_choir" << \new Staff = "Staff_soprano" \with { instrumentName = "Soprano" } \new Voice = "soprano" \sopranoMusic \new Lyrics \lyricsto "soprano" { \sopranoLyrics } \new GrandStaff = "GrandStaff_altos" \with { \accepts Lyrics } << \new Staff = "Staff_altoI" \with { instrumentName = "Alto I" } \new Voice = "altoI" \altoIMusic \new Lyrics \lyricsto "altoI" { \altoILyrics } \new Staff = "Staff_altoII" \with { instrumentName = "Alto II" } \new Voice = "altoII" \altoIIMusic \new Lyrics \lyricsto "altoII" { \altoIILyrics } >> \new Staff = "Staff_tenor" \with { instrumentName = "Tenor" } \new Voice = "tenor" \tenorMusic \new Lyrics \lyricsto "tenor" { \tenorLyrics } >> \new StaffGroup = "StaffGroup_strings" << \new GrandStaff = "GrandStaff_violins" << \new Staff = "Staff_violinI" \with { instrumentName = "Violin I" } \violinIMusic \new Staff = "Staff_violinII" \with { instrumentName = "Violin II" } \violinIIMusic >> \new Staff = "Staff_viola" \with { instrumentName = "Viola" } \violaMusic \new Staff = "Staff_cello" \with { instrumentName = "Cello" } \celloMusic \new Staff = "Staff_bass" \with { instrumentName = "Double Bass" } \bassMusic >> >> \layout { } }
[ << Pitches ] | [Racine][Table des matières] | [ Rhythms >> ] |
[ < ] | [Plus haut: Pitches ] | [ > ] |
Suppression des bécarres superflus
En accord avec les règles traditionnelles de l’écriture musicale, on
grave un bécarre avant un dièse ou un bémol si la note était auparavant
affublée d’un double-dièse ou double-bémol. Pour adopter un
comportement plus contemporain, la propriété extraNatural
du
contexte Staff
doit se voir attribuer la valeur ##f
(faux).
\relative c'' { aeses4 aes ais a \set Staff.extraNatural = ##f aeses4 aes ais a }
[ << Pitches ] | [Racine][Table des matières] | [ Rhythms >> ] |
[ < ] | [Plus haut: Pitches ] | [ > ] |
Suppression des bécarres superflus lors d’un changement de tonalité
Après un changement de tonalité, un bécarre est imprimé pour annuler
toute altération précédente. Ce comportement s’annule en désactivant la
propriété printKeyCancellation
du contexte Staff
.
\relative c' { \key d \major a4 b cis d \key g \minor a4 bes c d \set Staff.printKeyCancellation = ##f \key d \major a4 b cis d \key g \minor a4 bes c d }
[ << Pitches ] | [Racine][Table des matières] | [ Rhythms >> ] |
[ < ] | [Plus haut: Pitches ] | [ > ] |
Citation d’une autre voix et transposition
Les citations tiennent compte de la transposition, aussi bien celle de
l’instrument d’origine que celle de la partie où elles interviennent.
Dans l’exemple suivant, tous les instruments sont en tonalité de concert
et seront repris par un instrument en fa. Le destinataire de la citation
peut à son tour transposer à l’aide de la commande \transpose
.
En pareil cas, toutes les hauteurs seront transposées, y compris celles
de la citation.
\addQuote clarinet { \transposition bes \repeat unfold 8 { d'16 d' d'8 } } \addQuote sax { \transposition es' \repeat unfold 16 { a8 } } quoteTest = { % french horn \transposition f g'4 << \quoteDuring "clarinet" { \skip 4 } s4^"clar." >> << \quoteDuring "sax" { \skip 4 } s4^"sax." >> g'4 } { \new Staff \with { instrumentName = \markup { \column { Horn "in F" } } } \quoteTest \transpose c' d' << \quoteTest s4_"up a tone" >> }
[ << Pitches ] | [Racine][Table des matières] | [ Rhythms >> ] |
[ < ] | [Plus haut: Pitches ] | [ > ] |
Séparation entre altérations annulées et nouvelle armure
Les altérations supprimées lors d’un changement de tonalité sont par
défaut accolées à la nouvelle armure. Ce comportement peut s’adapter
grâce à la propriété break-align-orders
de l’objet
BreakAlignment
.
La valeur de break-align-orders
est constituée d’un vecteur à
trois composantes listant l’ordre des éléments à l’occasion d’une
rupture. Seule la deuxième liste est ici modifiée,
key-cancellation
étant déplacé avant staff-bar
. En ne
modifiant que la deuxième liste, cette modification dans l’ordre
d’apparition des éléments sera effective seulement en cours de système,
et non en début ou fin de ligne.
\new Staff { \override Score.BreakAlignment.break-align-orders = ##((left-edge ambitus breathing-sign clef staff-bar key-cancellation key-signature time-signature custos) (left-edge ambitus breathing-sign clef key-cancellation staff-bar key-signature time-signature custos) (left-edge ambitus breathing-sign clef key-cancellation key-signature staff-bar time-signature custos)) \key des \major c'1 \bar "||" \key bes \major c'1 }
[ << Pitches ] | [Racine][Table des matières] | [ Rhythms >> ] |
[ < ] | [Plus haut: Pitches ] | [ > ] |
Transposition et réduction du nombre d’altérations accidentelles
Cet exemple, grâce à un peu de code Scheme, donne la priorité aux enharmoniques afin de limiter le nombre d’altérations supplémentaires. La règle applicable est :
- Les altérations doubles sont supprimées
- Si dièse -> Do
- Mi dièse -> Fa
- Do bémol -> Si
- Fa bémol -> Mi
Cette façon de procéder aboutit à plus d’enharmoniques naturelles.
#(define (naturalize-pitch p) (let ((o (ly:pitch-octave p)) (a (* 4 (ly:pitch-alteration p))) ;; alteration, a, in quarter tone steps, ;; for historical reasons (n (ly:pitch-notename p))) (cond ((and (> a 1) (or (eqv? n 6) (eqv? n 2))) (set! a (- a 2)) (set! n (+ n 1))) ((and (< a -1) (or (eqv? n 0) (eqv? n 3))) (set! a (+ a 2)) (set! n (- n 1)))) (cond ((> a 2) (set! a (- a 4)) (set! n (+ n 1))) ((< a -2) (set! a (+ a 4)) (set! n (- n 1)))) (if (< n 0) (begin (set! o (- o 1)) (set! n (+ n 7)))) (if (> n 6) (begin (set! o (+ o 1)) (set! n (- n 7)))) (ly:make-pitch o n (/ a 4)))) #(define (naturalize music) (let ((es (ly:music-property music 'elements)) (e (ly:music-property music 'element)) (p (ly:music-property music 'pitch))) (if (pair? es) (ly:music-set-property! music 'elements (map naturalize es))) (if (ly:music? e) (ly:music-set-property! music 'element (naturalize e))) (if (ly:pitch? p) (begin (set! p (naturalize-pitch p)) (ly:music-set-property! music 'pitch p))) music)) naturalizeMusic = #(define-music-function (m) (ly:music?) (naturalize m)) music = \relative c' { c4 d e g } \score { \new Staff { \transpose c ais { \music } \naturalizeMusic \transpose c ais { \music } \transpose c deses { \music } \naturalizeMusic \transpose c deses { \music } } \layout { } }
[ << Pitches ] | [Racine][Table des matières] | [ Rhythms >> ] |
[ < ] | [Plus haut: Pitches ] | [ > ] |
Exemple de makam turc
Ce canevas utilise le début d’un saz semai turc bien connu du répertoire aux fins d’illustrer certains éléments de la notation musicale turque.
\paper { tagline = ##f } % Initialize makam settings \include "turkish-makam.ly" \header { title = "Hüseyni Saz Semaisi" composer = "Lavtacı Andon" } \relative { \set Staff.extraNatural = ##f \set Staff.autoBeaming = ##f \key a \huseyni \time 10/8 a'4 g'16 [fb] e8. [d16] d [c d e] c [d c8] bfc | a16 [bfc a8] bfc c16 [d c8] d16 [e d8] e4 fb8 | d4 a'8 a16 [g fb e] fb8 [g] a8. [b16] a16 [g] | g4 g16 [fb] fb8. [e16] e [g fb e] e4 r8 | }
[ << Pitches ] | [Racine][Table des matières] | [ Rhythms >> ] |
[ < ] | [Plus haut: Pitches ] | [ > ] |
Affinage des propriétés d’une clef
Modifier le glyphe, la position de la clef ou son octaviation ne
changeront pas la position des notes ; il faut pour y parvenir modifier
aussi la position du do médium. La redéfinition préalable de
middleCClefPosition
permet de placer l’armure sur les bonnes
lignes. Le positionnement est relatif à la ligne médiane, un nombre
positif faisant monter, un nombre négatif abaissant.
Par exemple, la commande \clef "treble_8"
équivaut à définir
clefGlyph
, clefPosition
– qui contrôle la position
verticale de la clef – middleCPosition
et clefOctavation
.
Une nouvelle clef apparaîtra dès lors que l’une de ces propriétés, à
l’exception de middleCPosition
, aura été modifiée.
Les exemples qui suivent illustrent les différentes possibilités de définir ces propriétés manuellement. Sur la première ligne, la position relative des notes par rapport aux clefs est préservée, ce qui n’est pas le cas pour la deuxième ligne.
{ % The default treble clef \key f \major c'1 % The standard bass clef \set Staff.clefGlyph = #"clefs.F" \set Staff.clefPosition = #2 \set Staff.middleCPosition = #6 \set Staff.middleCClefPosition = #6 \key g \major c'1 % The baritone clef \set Staff.clefGlyph = #"clefs.C" \set Staff.clefPosition = #4 \set Staff.middleCPosition = #4 \set Staff.middleCClefPosition = #4 \key f \major c'1 % The standard choral tenor clef \set Staff.clefGlyph = #"clefs.G" \set Staff.clefPosition = #-2 \set Staff.clefTransposition = #-7 \set Staff.middleCPosition = #1 \set Staff.middleCClefPosition = #1 \key f \major c'1 % A non-standard clef \set Staff.clefPosition = #0 \set Staff.clefTransposition = #0 \set Staff.middleCPosition = #-4 \set Staff.middleCClefPosition = #-4 \key g \major c'1 \break % The following clef changes do not preserve % the normal relationship between notes, key signatures % and clefs: \set Staff.clefGlyph = #"clefs.F" \set Staff.clefPosition = #2 c'1 \set Staff.clefGlyph = #"clefs.G" c'1 \set Staff.clefGlyph = #"clefs.C" c'1 \set Staff.clefTransposition = #7 c'1 \set Staff.clefTransposition = #0 \set Staff.clefPosition = #0 c'1 % Return to the normal clef: \set Staff.middleCPosition = #0 c'1 }
[ << Pitches ] | [Racine][Table des matières] | [ Rhythms >> ] |
[ < ] | [Plus haut: Pitches ] | [ Rhythms > ] |
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 } >> }
[ << Pitches ] | [Racine][Table des matières] | [ Rhythms >> ] |
[ < ] | [Plus haut: Pitches ] | [ Rhythms > ] |