[ << Notation musicale générale ] | [Racine][Table des matières][Index][ ? ] | [ Notation spécialisée >> ] | ||
[ < Gravure de lignes rythmiques ] | [ Plus haut: Rythme ] | [ Barres de ligature automatiques > ] |
1.2.4 Barres de ligature
Barres de ligature automatiques | ||
Définition des règles de ligature automatique | ||
Barres de ligature manuelles | ||
Liens de croches en soufflet |
Barres de ligature automatiques
LilyPond décide automatiquement de la manière de grouper les notes et d’imprimer les ligatures.
\time 2/4 c8 c c c \time 6/8 c c c c8. c16 c8
Lorsque ce comportement automatisé n’est pas satisfaisant, on peut définir des groupements manuellement – voir Barres de ligature manuelles. Dans le cas où le groupe de notes en question contient un silence, il est impératif d’indiquer explicitement les début et fin de la ligature.
Lorsque les ligatures automatiques ne sont pas nécessaires, il suffit de
désactiver la fonctionnalité par un \autoBeamOff
– réactivation
par \autoBeamOn
:
c4 c8 c8. c16 c8. c16 c8 \autoBeamOff c4 c8 c8. c16 c8. \autoBeamOn c16 c8
Note : Si des ligatures sont utilisées dans les paroles d’une chanson
(pour indiquer des mélismes), les ligatures automatiques doivent être
désactivées, avec autoBeamOff
, et indiquées manuellement.
Des règles de dérogation au comportement automatique par défaut sont possibles ; voir Définition des règles de ligature automatique.
Commandes prédéfinies
\autoBeamOff
,
\autoBeamOn
.
Morceaux choisis
Ligature au moment d’un saut de ligne
Il est normalement impensable qu’un saut de ligne tombe au milieu d’une ligature. LilyPond permet néanmoins de l’obtenir.
\relative c'' { \override Beam #'breakable = ##t c8 c[ c] c[ c] c[ c] c[ \break c8] c[ c] c[ c] c[ c] c }
Ligature et directions de hampe inversées
LilyPond insère automatiquement des ligatures coudées — certaines
hampes vers le haut, d’autres vers le bas — lorsqu’il détecte un
intervalle important entre des têtes de notes. Ce comportement peut être
changé par l’intermédiaire de l’objet auto-knee-gap
— défini
par défaut à ‘5,5’ espace, plus la largeur et la pente de la
ligature en question.
{ f8 f''8 f8 f''8 \override Beam #'auto-knee-gap = #6 f8 f''8 f8 f''8 }
Voir aussi
Manuel de notation : Barres de ligature manuelles, Définition des règles de ligature automatique.
Fichiers installés : ‘scm/auto-beam.scm’.
Morceaux choisis : Rhythms.
Références internes : Beam.
Problèmes connus et avertissements
Ligatures coudées à cheval sur deux portées et masquage de portée sont incompatibles ; voir Masquage de portées.
Les ligatures peuvent générer des collisions avec des têtes de notes ou altérations appartenant à d’autres voix.
Définition des règles de ligature automatique
La gestion automatisée des ligatures est directement liée à la métrique.
La terminaison d’une ligature automatique peut se définir selon trois
différents types de règles : des règles par défaut relatives à la
métrique, des règles explicites pour la métrique en question, et
des règles basées sur la pulsation (beatLength
).
Les règles déterminant le positionnement des ligatures automatiques s’appliquent dans l’ordre suivant de priorité :
- Une ligature explicite – indiquée par
[…]
– sera toujours respectée ; sinon - si
\autoBeamOff
a été activé, il n’y aura pas de ligature ; sinon - si une règle explicite de terminaison a été définie pour un type de ligature dans la métrique en cours, c’est elle qui s’appliquera ; sinon
- if a default beam-ending rule is defined in the time signature, use it to group notes with beams, otherwise
- utiliser la valeur de
beatLength
pour regrouper les notes par des ligatures.
Modification des ligatures selon la pulsation
La pulsation – beatlength en anglais – découle directement de
la métrique telle que définie par la commande \time
. Elle est
par défaut égale à un sur le dénominateur de la métrique.
beatLength
constitue un moment, autrement dit une unité
de durée musicale. La fonction Scheme ly:make-moment
est tout
particulièrement chargée de créer cette quantité de type moment –
pour plus d’information, consultez Gestion du temps.
Les règles de ligature et de subdivision sont enregistrées dans la
propriété beamSettings
. Ses valeurs par défaut, rangées par
métrique et type de règle, sont contenues dans le fichier
scm/beam-settings.scm
.
La métrique est constituée d’une paire en langage Scheme – p.ex.
#'(4 . 4)
.
Le type de règle est soit #'end
pour ce qui concerne les
terminaisons, soit #'subdivide
pour les subdivisions.
Chaque règle, qu’il s’agisse de terminaison ou de subdivision, est constituée d’une liste de paires en langage Scheme (un alist pour les puristes), qui indique le durée de base et sa règle de regroupement.
#'((durée-type1 . groupement-1) (durée-type2 . groupement-2) (durée-type3 . groupement-3))
durée-type est soit constitué d’une paire indiquant la durée de
base – par exemple (1 . 16)
, soit du caractère *
pour
indiquer une règle par défaut qui s’appliquera à toutes les ligatures en
l’absence de règle explicite.
groupement est constitué d’une liste Scheme qui indique le
regroupement à effectuer. En ce qui concerne les règles par défaut –
celles où la durée type est *
– le regroupement s’indique
en terme de beatLength
; pour les règles explicites, en durée
type.
Les règles de ligature automatique se modifient à l’aide des commandes
\overrideBeamSettings
et \revertBeamSettings
.
\time 5/16 c8^"beats" c16 c8 | \overrideBeamSettings #'Score #'(5 . 16) #'end #'((* . (2 3))) c8^"(2+3)" c16 c8 \overrideBeamSettings #'Score #'(5 . 16) #'end #'((* . (3 2))) c8^"(3+2)" c16 c8
Les effets de règles de ligature peuvent être restreints à un contexte particulier. En l’absence de régles particulières déterminées dans un contexte de niveau inférieur, les règles définies au niveau directement supérieur s’appliqueront.
\new Staff << \time 7/8 \new Voice = one { \relative c'' { \overrideBeamSettings #'Staff #'(7 . 8) #'end #'((* . (2 3 2))) a8 a a a a a a } } \new Voice = two { \relative c' { \voiceTwo \overrideBeamSettings #'Voice #'(7 . 8) #'end #'((* . (1 3 3))) f8 f f f f f f } } >>
Lorsque plusieurs voix cohabitent sur une même portée et que les règles
de ligature doivent s’appliquer sans distinction, il faut spécifier que
ces règles affectent le contexte Staff
:
\time 7/8 % rhythm 3-1-1-2 % Context Voice specified - does not work correctly % Because of autogenerated voices, all beating will % be at beatLength (1 . 8) \overrideBeamSettings #'Voice #'(7 . 8) #'end #'((* . (3 1 1 2))) << {a8 a a a16 a a a a8 a} \\ {f4. f8 f f f} >> % Works correctly with context Staff specified \overrideBeamSettings #'Staff #'(7 . 8) #'end #'((* . (3 1 1 2))) << {a8 a a a16 a a a a8 a} \\ {f4. f8 f f f} >>
Pour revenir aux règles de ligature par défaut, il suffit d’utiliser la
commande \revertBeamSettings
. Ses argument sont identiques à ceux
fournis à \overrideBeamSettings
, sans toutefois mentionner les
règles de regroupement.
\revertBeamSettings contexte métrique type-de-règle
\time 4/4 \repeat unfold 16 {a16} % set default rule for (1 1 1 1) grouping \overrideBeamSettings #'Score #'(4 . 4) #'end #'((* . (1 1 1 1))) \repeat unfold 16 {a16} % revert the new rule \revertBeamSettings #'Score #'(4 . 4) #'end \repeat unfold 16 {a16}
Morceaux choisis
Subdivision des ligatures
Les ligatures d’une succession de notes de durée inférieure à la croche
ne sont pas subdivisées par défaut. Autrement dit, tous les traits de
ligature seront continus. Ce comportement peut être modifié afin de
diviser la ligature en sous-groupes grâce à la propriété
subdivideBeams
. Lorsqu’elle est activée, les ligatures seront
subdivisées selon un intervalle défini par beatLength
; il n’y
aura alors plus qu’un seul trait de ligature entre chaque sous-groupe.
Par défaut, beatLength
fixe la valeur de référence à une noire.
Il faudra donc lui fournir, à l’aide de la fonction make-moment
,
une fraction correspondant au sous-groupe désiré, comme dans l’exemple
suivant.
\relative c'' { c32[ c c c c c c c] \set subdivideBeams = ##t c32[ c c c c c c c] % Set beam sub-group length to an eighth note \set beatLength = #(ly:make-moment 1 8) c32[ c c c c c c c] % Set beam sub-group length to a sixteenth note \set beatLength = #(ly:make-moment 1 16) c32[ c c c c c c c] }
Signes de direction signes de sous-groupe
Les règles de ligature par mesure sont gérées par la propriété
beamSettings
. Elles peuvent être modifiées par la commande
\overrideBeamSettings
.
Il existe des options qui permettent de grouper les ligatures au sein
d’une mesure, grâce à la fonction Scheme set-time-signature
.
Celle-ci prend trois arguments : le nombre de pulsations, la durée de la
pulsation et le regroupement des pulsations dans la mesure. Si l’on
fait appel au Measure_grouping_engraver
, la fonction
set-time-signature
créera aussi des symboles
MeasureGrouping
. Ces symboles aident à la lecture des œuvres
modernes à la rythmique complexe. Dans l’exemple qui suit, la mesure à
9/8 est divisée en 2, 2, 2 et 3, alors que la mesure à 5/8 répond aux
règles par défaut contenues dans le fichier scm/beam-settings.scm
.
\score { \relative c'' { \time 9/8 \overrideBeamSettings #'Score #'(9 . 8) #'end #'((* . (2 2 2 3))) g8 g d d g g a( bes g) | #(set-time-signature 9 8 '(4 5)) g8 g d d g g a( bes g) | \time 5/8 a4. g4 | } \layout { \context { \Staff \consists "Measure_grouping_engraver" } } }
Définition de règles de ligature pour la partition
Les règles de ligatures définies au niveau du contexte Score
s’appliqueront à toutes les portées. Il est toutefois possible de
moduler au niveau Staff
ou Voice
:
\relative c'' { \time 5/4 % Set default beaming for all staves \overrideBeamSettings #'Score #'(5 . 4) #'end #'(((1 . 8) . (3 4 3)) ((1 . 16) . (6 8 6)) ((1 . 32) . (12 16 12))) << \new Staff { c8 c c c c c c c c c } \new Staff { % Modify beaming for just this staff \overrideBeamSettings #'Staff #'(5 . 4) #'end #'((* . (3 2))) c8 c c c c c c c c c } \new Staff { % Inherit beaming from Score context << { \voiceOne c8 c c c c c c c c c } % Modify beaming for this voice only \new Voice { \voiceTwo \overrideBeamSettings #'Voice #'(5 . 4) #'end #'((* . (3 2))) a8 a a a a a a a a a } >> } >> }
Problèmes connus et avertissements
Si une partition se termine alors qu’une ligature automatique est restée
inachevée, cette dernière ligature ne sera pas imprimée du tout. C’est
également valable dans le cas d’une musique polyphonique, saisie avec la
syntaxe << … \\ … >>
, où une voix se terminerait sans
que la dernière ligature soit achevée.
Voir aussi
Morceaux choisis : Rhythms.
Barres de ligature manuelles
Dans certaines situations, il peut s’avérer nécessaire de
supplanter l’algorithme de groupement automatique des notes, par
exemple pour prolonger une ligature par-dessus un silence ou une barre
de mesure. Le début et la fin de la ligature sont alors indiqués par
[
et ]
.
{ r4 r8[ g' a r8] r8 g[ | a] r8 }
Le fait d’affubler une note particulière d’un \noBeam
aura pour
effet de l’empêcher d’être ligaturée :
\time 2/4 c8 c\noBeam c c
Propriétés couramment modifiées
LilyPond peut déterminer automatiquement les sous-groupes à
l’intérieur d’un groupement de notes, bien que le résultat ne soit pas
toujours optimal. Les propriétés stemLeftBeamCount
et
stemRightBeamCount
permettent alors d’ajuster ce comportement.
Lorsque l’une ou l’autre de ces propriétés est définie, elle ne
s’applique qu’une seule fois, après quoi sa définition est effacée.
Dans l’exemple qui suit, le dernier fa
n’a de ligature
supplémentaire que sur sa gauche ; autrement dit, c’est la ligature à la
croche qui est importante.
a8[ r16 f g a] a8[ r16 \set stemLeftBeamCount = #2 \set stemRightBeamCount = #1 f \set stemLeftBeamCount = #1 g a]
Morceaux choisis
Crochet rectiligne et débordement de ligature
En combinant stemLeftBeamCount
, stemRightBeamCount
et des
paires de []
, vous pourrez obtenir des crochets rectilignes et
des ligatures qui débordent à leurs extrémités.
Pour des crochets rectilignes à droite sur des notes isolées, il suffit
d’ajouter une paire d’indicateurs de ligature []
et de déterminer
stemLeftBeamCount
à zéro, comme dans l’exemple 1.
Pour des crochets rectiligne à gauche, c’est stemRightBeamCount
qu’il faudra déterminer (exemple 2).
Pour que les barres de ligature débordent sur la droite,
stemRightBeamCount
doit avoir une valeur positive ; pour un
débrodement à gauche, c’est sur stemLeftBeamCount
qu’il faut
jouer. Tout ceci est illustré par l’exemple 3.
Il est parfois judicieux, lorsqu’une note est encadrée de silences, de
l’affubler de crochets rectilignes de part et d’autre. L’exemple 4
montre qu’il suffit d’adjoindre à cette note un []
.
(Notez bien que \set stemLeftBeamCount
sera toujours synonyme de
\once \set
. Autrement dit, la détermination des ligatures
n’est pas « permanente » ; c’est la raison pour laquelle les crochets
du c'16[]
isolé du dernier exemple n’ont rien à voir avec le
\set
indiqué deux notes auparavant.)
\score { << % Example 1 \new RhythmicStaff { \set stemLeftBeamCount = #0 c16[] r8. } % Example 2 \new RhythmicStaff { r8. \set stemRightBeamCount = #0 c16[] } % Example 3 \new RhythmicStaff { c16 c \set stemRightBeamCount = #2 c16 r r \set stemLeftBeamCount = #2 c16 c c } % Example 4 \new RhythmicStaff { c16 c \set stemRightBeamCount = #2 c16 r c16[] r16 \set stemLeftBeamCount = #2 c16 c } >> }
[ << Notation musicale générale ] | [Racine][Table des matières][Index][ ? ] | [ Notation spécialisée >> ] | ||
[ < Barres de ligature manuelles ] | [ Plus haut: Barres de ligature ] | [ Mesures > ] |
Liens de croches en soufflet
Les ligatures en soufflet permettent d’indiquer qu’un petit groupe de
notes se joue en accélérant ou en ralentissant sans pour autant
modifier le tempo du morceau. L’étendue du soufflet s’indique par
[
et ]
, et son orientation est déterminée par la proriété
grow-direction
de l’objet Beam
.
Lorsque la sortie MIDI doit refléter les ritardando ou
accelerando indiqués par une ligature en soufflet, les notes
qui la composent doivent être regroupées dans une expression musicale
délimitée par des accolades, précédée de la commande
featherDurations
. Cette commande détermine le ratio entre les
durées des première et dernière notes du groupe en question.
Les crochets indiquent l’étendue de la ligature et les accolades les notes concernées par une modification de leur durée. Il s’agit en général du même groupe de notes, mais les deux commandes sont indépendantes l’une de l’autre.
Dans l’exemple ci-après, les huit doubles-croches occupent exactement le même espace qu’une blanche, mais la première est moitié moins longue que la dernière et celles qui les séparent s’allongent peu à peu. Les quatre triples-croches qui suivent vont s’accélérant, alors que les quatre dernières gardent un tempo régulier.
\override Beam #'grow-direction = #LEFT \featherDurations #(ly:make-moment 2 1) { c16[ c c c c c c c] } \override Beam #'grow-direction = #RIGHT \featherDurations #(ly:make-moment 2 3) { c32[ d e f] } % revert to non-feathered beams \override Beam #'grow-direction = #'() { g32[ a b c] }
Si le résultat imprimable ne reflète les durées que de manière approximative, la sortie MIDI sera quant à elle parfaitement « ponctuelle ».
Problèmes connus et avertissements
La commande \featherDurations
ne permet de traiter que de très
courts extraits, avec une faible amplitude.
Voir aussi
Morceaux choisis : Rhythms.
[ << Notation musicale générale ] | [Racine][Table des matières][Index][ ? ] | [ Notation spécialisée >> ] | ||
[ < Barres de ligature manuelles ] | [ Plus haut: Barres de ligature ] | [ Mesures > ] |