[ << Notation musicale générale ] | [Top][Contents][Index] | [ Notation spécialisée >> ] |
[ < Barres de ligature automatiques ] | [ Up : Barres de ligature ] | [ Barres de ligature manuelles > ] |
Définition des règles de ligature automatique
Lorsque la fonction de ligature automatique est active, le
positionnement des ligatures dépend des trois propriétés
beatBase
, beatStructure
et beamExceptions
. Les
valeurs par défaut de ces variables peuvent s’adapter, comme indiqué
ci-après, ou bien carrément être modifiées –see Métrique.
Dès lors qu’une règle affectant beamExceptions
est définie pour
la métrique en vigueur, c’est cette règle qui servira à déterminer le
placement des ligatures, ignorant les valeurs de beatBase
et
beatStructure
.
En l’absence de règle affectant beamExceptions
pour la métrique
en vigueur, les ligatures seront déterminées par les réglages conjoints
de beatBase
et beatStructure
.
Ligature basée sur beatBase
et beatStructure
beamExceptions
dispose par défaut de règles pour les métriques
les plus courantes ; il est donc impératif de les invalider pour gérer
les ligatures automatiques à l’aide de beatBase
et
beatStructure
. Les règles de beamExceptions
se désactivent
par un
\set Timing.beamExceptions = #'()
Lorsque beamExceptions
est défini à #'()
, que ce soit
explicitement ou en raison de l’absence de règles par défaut de
beamExceptions
pour la métrique en vigueur, la terminaison des
ligatures est directement liée à la pulsation telle que spécifiée par
les propriétés beatBase
et beatStructure
. La propriété
beatStructure
est constituée d’une liste d’éléments Scheme qui
définit la longueur de chaque pulsation, prenant beatBase
comme
unité. L’unité de base (le beatBase
) correspond par défaut à
l’inverse du dénominateur de la métrique. D’autre part, chaque unité de
beatBase
constitue par défaut une seule pulsation.
Notez bien la présence de valeurs distinctes de beatStructure
et
beatBase
pour chaque métrique. Toute modification de ces
variables ne s’applique qu’à la métrique alors en vigueur, raison pour
laquelle elles doivent se placer à la suite de la commande \time
qui entame un fragment ayant une nouvelle métrique, non au préalable.
Les nouvelles valeurs affectées à une métrique particulière resteront en
vigueur et ré-instaurées si cette métrique réapparaît plus tard.
\relative c'' { \time 5/16 c16^"default" c c c c | % beamExceptions are unlikely to be defined for 5/16 time, % but let's disable them anyway to be sure \set Timing.beamExceptions = #'() \set Timing.beatStructure = 2,3 c16^"(2+3)" c c c c | \set Timing.beatStructure = 3,2 c16^"(3+2)" c c c c | }
\relative { \time 4/4 a'8^"default" a a a a a a a % Disable beamExceptions because they are definitely % defined for 4/4 time \set Timing.beamExceptions = #'() \set Timing.beatBase = #1/4 \set Timing.beatStructure = 1,1,1,1 a8^"changed" a a a a a a a }
Les effets de règles de ligature peuvent être restreints à un contexte particulier. En l’absence de règle particulière déterminée dans un contexte de niveau inférieur, les règles définies au niveau directement supérieur s’appliqueront.
\new Staff { \time 7/8 % No need to disable beamExceptions % as they are not defined for 7/8 time \set Staff.beatStructure = 2,3,2 << \new Voice = one { \relative { a'8 a a a a a a } } \new Voice = two { \relative { \voiceTwo \set Voice.beatStructure = 1,3,3 f'8 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 % Change applied to Voice by default -- does not work correctly % Because of auto-generated voices, all beating will % be at beatBase #1/8 \set beatStructure = 3,1,1,2 << \relative {a'8 a a a16 a a a a8 a} \\ \relative {f'4. f8 f f f} >> % Works correctly with context Staff specified \set Staff.beatStructure = 3,1,1,2 << \relative {a'8 a a a16 a a a a8 a} \\ \relative {f'4. f8 f f f} >>
Vous pouvez ajuster la valeur de beatBase
afin d’obtenir des
ligatures selon vos besoin. Notez cependant que la valeur de
beatStructure
devra être en corrélation avec cette nouvelle
valeur de beatBase
.
\time 5/8 % No need to disable beamExceptions % as they are not defined for 5/8 time \set Timing.beatBase = #1/16 \set Timing.beatStructure = 7,3 \repeat unfold 10 { a'16 }
La pulsation – beatBase 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. Les exceptions à
cette règle par défaut sont répertoriées dans le fichier
scm/time-signature-settings.scm. Pour savoir comment jouer avec
la valeur de beatBase
selon la métrique, reportez vous au
chapitre Métrique.
Les règles de ligature et de subdivision spécifiques sont enregistrées
dans la propriété beamExceptions
. Ses valeurs par défaut, rangées
par métrique et type de règle, sont répertoriées dans le fichier
scm/time-signature-settings.scm.
Ligature basée sur beamExceptions
Les règles spécifiques autres que celles concernant la terminaison des
ligatures sont gérées par la propriété beamExceptions
.
\relative c'' { \time 3/16 \set Timing.beatStructure = 2,1 \set Timing.beamExceptions = \beamExceptions { 32[ 32] 32[ 32] 32[ 32] } c16 c c | \repeat unfold 6 { c32 } | }
Note : La propriété beamExceptions
doit répertorier absolument
toutes les exceptions. Il n’est en effet pas possible d’en
ajouter, modifier ou supprimer a posteriori. Cela peut paraître
fastidieux, mais toutes les règles de ligature devraient être appréciées
avant de les spécifier.
Lorsqu’intervient un changement de métrique, les valeurs par défaut de
Timing.beatBase
, Timing.beatStructure
et
Timing.beamExceptions
sont réinitialisées. Il suffit donc, pour
revenir aux règles de ligature par défaut d’un contexte Timing
,
de spécifier à nouveau la métrique.
\relative a' { \time 6/8 \repeat unfold 6 { a8 } % group (4 + 2) \set Timing.beatStructure = 4,2 \repeat unfold 6 { a8 } % go back to default behavior \time 6/8 \repeat unfold 6 { a8 } }
Les règles de ligature automatique par défaut sont répertoriées, par métrique, dans le fichier scm/time-signature-settings.scm. Les manières de déroger à ce comportement sont abordées au chapitre Métrique.
De nombreuses règles de ligature automatique comportent une clé
beamExceptions
. Par exemple, s’il n’y a que des croches dans une
mesure à 4/4, celles-ci seront réparties en deux groupes. Le fait de ne
pas réinitialiser beamExceptions
lors d’un aménagement de la
pulsation – l’élément beatStructure
– empêchera l’application
de cette dérogation.
\time 4/4 \set Timing.beatBase = #1/8 \set Timing.beatStructure = 3,3,2 % This won't beam (3 3 2) because of beamExceptions \repeat unfold 8 {c''8} | % This will beam (3 3 2) because we clear beamExceptions \set Timing.beamExceptions = #'() \repeat unfold 8 {c''8}
De la même manière, les croches d’une mesure à 3/4 sont ligaturées sur
la mesure par défaut. Ligaturer sur le temps requiert un appel à
beamExceptions
.
\time 3/4 % by default we beam in (6) due to beamExceptions \repeat unfold 6 {a'8} | % This will beam (1 1 1) due to default beatBase and beatStructure \set Timing.beamExceptions = #'() \repeat unfold 6 {a'8}
Certaines partitions des périodes romantique ou classique font
apparaître des ligatures sur la moitié d’une mesure à 3/4 (ou à 3/8), ce
qui va à l’encontre de la règle établie – comme le fait remarquer Gould
à la page 153 de son ouvrage – puisque donne l’impression d’une mesure
à 6/8. Il en va de même pour une mesure à 3/8. La reproduction d’un tel
comportement se contrôle à l’aide de la propriété de contexte
beamHalfMeasure
, qui d’ailleurs ne sera effective que lorsque le
numérateur de la métrique est un 3.
\relative a' { \time 3/4 r4. a8 a a | \set Timing.beamHalfMeasure = ##f r4. a8 a a | }
Principes de la ligature automatique
Lorsqu’elle est activée, la gestion automatisée des ligatures est
directement liée aux propriétés beatBase
, beatStructure
et beamExceptions
.
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 une règle explicite de terminaison a été définie grâce à la propriété
beamExceptions
pour un type de ligature spécifique dans la métrique en cours, c’est elle qui s’appliquera ; sinon - si une règle explicite de terminaison a été définie grâce à la propriété
beamExceptions
pour un type de ligature plus large, c’est elle qui s’appliquera ; sinon - utilisation des valeurs de
beatBase
etbeatStructure
pour regrouper les notes par des ligatures.
Le type de ligature correspond à la durée la plus courte dans le groupe.
Les règles de ligature par défaut sont répertoriées dans le fichier scm/time-signature-settings.scm.
Morceaux choisis
Subdivision des ligatures
Les ligatures d’une succession de notes de durée inférieure à la double
croche ne sont pas subdivisées par défaut. Autrement dit, tous les
traits de ligature (deux ou plus) 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, un certain
nombre de traits de ligature entre deux hampes est supprimé à des
intervalles correspondant à la durée de sous-groupe souhaitée.
Les propriétés minimumBeamSubdivisionInterval
et
maximumBeamSubdivisionInterval
permettent de configurer les
limites de la subdivision automatique des ligatures : l’intervalle
rythmique minimum auquel subdiviser et le nombre de tronçons supprimés
selon cet intervalle. Lorsque le nombre fourni à
maximumBeamSubdivisionInterval
n’est pas une puissance de 2, la
plus petite durée pour subdiviser sera de
maximumBeamSubdivisionInterval
divisé par une puissance de 2 tout
en restant supérieur ou égal à minimumBeamSubdivisionInterval
.
Dès lors que maximumBeamSubdivisionInterval
est inférieur à
minimumBeamSubdivisionInterval
, la profondeur de subdivision se
limite à maximumBeamSubdivisionInterval
mais pas la fréquence ou
l’intervalle, ce qui peut dévier de la valeur métrique à laquelle on est
en droit de s’attendre.
Lorsque la propriété respectIncompletBeams
est activée, la
profondeur de la subdivision (le nombre de traits de ligature)
correspond à la durée la plus longue de sous-groupe possible à partir de
la hampe considérée. Les deux dernières hampes de la ligature sont
toutefois exclues de cette règle.
\relative c'' { c32[ c c c c c c c] \set subdivideBeams = ##t c32[ c c c c c c c] % Set minimum beam subdivision interval to 1/8 just for this beam \once \set minimumBeamSubdivisionInterval = \musicLength 8 c32[ c c c c c c c] % Set maximum beam subdivision interval to 1/16 just for this beam \once \set maximumBeamSubdivisionInterval = \musicLength 16 c32[ c c c c c c c] % Set maximum beam subdivision interval to 3/8 just for this beam \once \set maximumBeamSubdivisionInterval = \musicLength 8*3 [ \repeat unfold 16 c64 ] r2. % Set maximum beam subdivision interval to 1/64 to limit subdivision depth, % despite not being metrically correct \once \set minimumBeamSubdivisionInterval = \musicLength 32 \once \set maximumBeamSubdivisionInterval = \musicLength 64 [ \repeat unfold 32 c128 ] r2. % Shorten beam by 1/32 c32[ c c c c c c] r32 % Shorten beam by 3/32 c32[ c c c c] r16. % Respect the incomplete beams of the previous two examples \set respectIncompleteBeams = ##t c32[ c c c c c c] r32 % no visual change here as last two stems are exempt from this % special rule c32[ c c c c] r16. }
Ligature à la pulsation
Une sous-ligature tronquée peut pointer en direction de la pulsation à laquelle elle se rattache. Dans l’exemple suivant, la première ligature évite toute troncature (comportement par défaut), alors que la deuxième respecte rigoureusement la pulsation.
\relative c'' { \time 6/8 a8. a16 a a \set strictBeatBeaming = ##t a8. a16 a a }
Signes de direction, signes de sous-groupe
Les regroupement par temps au sein d’une mesure sont contrôlés par des
propriétés de contexte : beatStructure
liste la longueur de
chaque temps, en unités de beatBase
. Les valeurs par défaut sont
répertoriées dans le fichier scm/time-signature-settings.scm
.
Ces propriétés sont modifiables grâce à la commande \set
.
Par ailleurs, l’instruction \time
accepte des règles de
pulsation différentes des valeurs par défaut. Dans la mesure où
\time
s’applique au contexte Timing
, elle ne redéfinira
pas les valeurs de beatStructure
ou beatBase
lorsqu’elles
sont modifiées dans un contexte de niveau inférieur comme Voice
par exemple.
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/time-signature-settings.scm. Pour une mesure à 4/4, il faudra
explicitement définir beatBase
en croches afin que le motif
irrégulier de la mesure soit correctement rendu.
\score { \new Voice \relative c'' { \time 9/8 g8 g d d g g a( bes g) | \set Timing.beatStructure = 2,2,2,3 g8 g d d g g a( bes g) | \time 4,5 9/8 g8 g d d g g a( bes g) | \time 5/8 a4. g4 | \time 3,3,2 4/4 \set Timing.beatBase = #1/8 f4 d8 f4 d8 g4 } \layout { \context { \Staff \consists "Measure_grouping_engraver" } } }
Définition de règles de ligature pour la partition
Les règles de ligature 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 \set Score.beatBase = #1/8 \set Score.beatStructure = 3,4,3 << \new Staff { c8 c c c c c c c c c } \new Staff { % Modify beaming for just this staff \set Staff.beatStructure = 6,4 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 \set Voice.beatStructure = 6,4 a8 a a a a a a a a a } >> } >> }
Voir aussi
Manuel de notation : Métrique.
Fichiers d’initialisation : scm/time-signature-settings.scm.
Morceaux choisis : Rythme.
Référence des propriétés internes : Auto_beam_engraver, Beam, BeamForbidEvent, beam-interface.
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 ne soit achevée. Le plus simple, en pareil
cas, est de spécifier manuellement les dernières ligatures.
Le traducteur Timing
est par défaut affecté au contexte
Score
. Définir la métrique dans une portée aura donc des effets
sur les ligatures de toutes les autres. Par voie de conséquence, la
définition de la métrique apparaissant dans une autre portée annulera
les aménagements précédemment apportés aux règles de ligature. Il est
donc préférable, pour éviter tout désagrément, de ne spécifier la
métrique que dans une seule portée.
<< \new Staff { \time 3/4 \set Timing.beatBase = #1/8 \set Timing.beatStructure = 1,5 \set Timing.beamExceptions = #'() \repeat unfold 6 { a'8 } } \new Staff { \repeat unfold 6 { a'8 } } >>
Vous pouvez adapter les règles de ligature par défaut pour une métrique particulière de telle sorte que ces règles que vous aurez définies soient toujours prises en compte. La modification des règles de ligature automatiques est abordée au chapitre Métrique.
<< \new Staff { \overrideTimeSignatureSettings 3/4 % timeSignatureFraction #1/8 % beatBase 1,5 % beatStructure #'() % beamExceptions \time 3/4 \repeat unfold 6 { a'8 } } \new Staff { \time 3/4 \repeat unfold 6 { a'8 } } >>
[ << Notation musicale générale ] | [Top][Contents][Index] | [ Notation spécialisée >> ] |
[ < Barres de ligature automatiques ] | [ Up : Barres de ligature ] | [ Barres de ligature manuelles > ] |