| [ << Rythme ] | [Top][Contents][Index] | [ Signes d’interprétation >> ] |
| [ < Barres de ligature automatiques ] | [ Up: Barres de ligature ] | [ Barres de ligature manuelles > ] |
2.4.2 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. Chacune
de ces propriétés peut être adaptée, jusqu’à la prochaine commande
\time, 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 applicable,
elle prendra le pas sur 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 commande \time réinitialise beatBase,
beatStructure et beamExceptions. C’est pour cette raison
que les adaptations doivent se placer à la suite de la commande
\time, non au préalable.
\relative c'' { \time 5/16 c16^"par défaut" c c c c | % beamExceptions n'est probablement pas définie pour 5/16, % mais désactivons les par sûreté \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^"par défaut" a a a a a a a % Désactivons beamExceptions parce sûrement % définie pour 4/4 \set Timing.beamExceptions = #'() \set Timing.beatBase = #1/4 \set Timing.beatStructure = 1,1,1,1 a8^"adapté" 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 % Pas besoin de désactiver beamExceptions % car il n'y en a pas de définie en 7/8 \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 % rythme 3-1-1-2 % Changement appliqué à Voice par défaut -- ne marche pas bien. % Parce que voix auto-générées, toutes les pulsations seront à % 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} >> % Fonctionne correctement après spécification du contexte Staff \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 % Pas besoin de désactiver beamExceptions % car pas définie pour 5/8 \set Timing.beatBase = #1/16 \set Timing.beatStructure = 7,3 \*10 a'16![]()
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.
La valeur de beamExceptions, structure de données Scheme plutôt
complexe, est plus facilement générée par la fonction
\beamExceptions. Cette fonction reçoit au moins un schéma de
ligature manuelle sur la durée d’une mesure (les mesures doivent être
séparées par un test de mesure | puisque cette fonction n’a
pas d’autre moyen de déterminer la longueur de la mesure). En voici un
simple exemple :
\relative c'' { \time 3/16 \set Timing.beatStructure = 2,1 \set Timing.beamExceptions = \beamExceptions { 32[ 32] 32[ 32] 32[ 32] } c16 c c | \*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 \*6 a8 % groupe (4 + 2) \set Timing.beatStructure = 4,2 \*6 a8 % retour au réglage par défaut \time 6/8 \*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 % Pas de ligature en (3 3 2) à cause de beamExceptions \*8 c''8 | % On ligature en (3 3 2) car beamExceptions vidée \set Timing.beamExceptions = #'() \*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 % Ligaturé en (6) à cause de beamExceptions \repeat unfold 6 {a'8} | % On ligature en (1 1 1) grâce à beatBase et beatStructure par défaut \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é
beamExceptionspour 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é
beamExceptionspour un type de ligature plus large, c’est elle qui s’appliquera aux emplacements valides ; sinon - utilisation des valeurs de
beatBaseetbeatStructurepour regrouper les notes par des ligatures, selon la pulsation interne de la mesure.
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 ou égale à
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 beamMinimumSubdivision et
beamMaximumSubdivision 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. Leur valeur par défaut est respectivement
de 0 et +inf.0, ce qui demandera à LilyPond de subdiviser
le plus possible.
Certains cas particulier doivent être pris en considération.
- Lorsque le nombre fourni en numérateur à
beamMaximumSubdivisionn’est pas une puissance de 2, la plus petite durée pour subdiviser sera debeamMaximumSubdivisiondivisé par une puissance de 2 tout en restant supérieur ou égal àbeamMinimumSubdivision. - Dès lors que
beamMaximumSubdivisionest inférieur àbeamMinimumSubdivision, la profondeur de subdivision se limite àbeamMaximumSubdivisionmais 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, les
subdivisions incomplètes à plus de deux hampes sont considérées comme
« extension » du sous-groupe précédent, autrement dit, le groupe de
subdivision précédente sera étendu pour couvrir aussi la subdivision
incomplète. Lorsqu’elle est désactivée, ce qui est le cas par défaut,
une nouvelle subdivision est alors entamée.
\relative c'' { \time 1/4 <>^"default" c32 c c c c c c c <>^"with subdivision" \set subdivideBeams = ##t c32 c c c c c c c <>^"min 1/8" \once \set beamMinimumSubdivision = #1/8 c32 c c c c c c c <>^"max 1/16" \once \set beamMaximumSubdivision = #1/16 c32 c c c c c c c <>^"max 3/8" \once \set beamMaximumSubdivision = #3/8 \*16 c64 <>^"min 1/32, max 1/64" % Set maximum beam subdivision interval to 1/64 to limit % subdivision depth, despite not being metrically correct. \once \set beamMinimumSubdivision = #1/32 \once \set beamMaximumSubdivision = #1/64 \*32 c128 \break <>^"beams with incomplete subdivisions" c32 c c c c c c r32 c32 c c c c r16. <>^\markup { "the same with" \typewriter { "respectIncomplete=#t" } } \set respectIncompleteBeams = ##t % The incomplete subgroup extends the completed subgroup. c32 c c c c c c r32 % No visual change since we have only two stems in the % incomplete subgroup. 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 { \*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 % timeSignature #1/8 % beatBase 1,5 % beatStructure #'() % beamExceptions \time 3/4 \repeat unfold 6 { a'8 } } \new Staff { \time 3/4 \*6 a'8 } >>![]()
| [ << Rythme ] | [Top][Contents][Index] | [ Signes d’interprétation >> ] |
| [ < Barres de ligature automatiques ] | [ Up: Barres de ligature ] | [ Barres de ligature manuelles > ] |
![[image of music]](../a8/lily-de6380c3.png)
![[image of music]](../79/lily-3e33e46d.png)
![[image of music]](../25/lily-6ffd227c.png)
![[image of music]](../e4/lily-2c0747fa.png)
![[image of music]](../a2/lily-fb7399f4.png)
![[image of music]](../ed/lily-b0304c3e.png)
![[image of music]](../f6/lily-36130ef9.png)
![[image of music]](../ec/lily-a0e6baa5.png)
![[image of music]](../05/lily-195a7550.png)
![[image of music]](../92/lily-a5294847.png)
![[image of music]](../c3/lily-e0c482d3.png)
![[image of music]](../f9/lily-7f407022.png)
![[image of music]](../99/lily-f26236ad.png)
![[image of music]](../47/lily-9408b678.png)
![[image of music]](../e5/lily-73082f0b.png)
![[image of music]](../bd/lily-42400394.png)