Améliorations en matière de rythme (LilyPond Changes)

### Améliorations en matière de rythme

- La commande `\time` prend désormais en charge les métriques complexes qui auparavant nécessitaient `\compoundMeter`, même si la syntaxe est quelque peu différente. La commande `\compoundMeter` a été renommée en `\timeAbbrev`.

  >     {
  >       \time #'((2 2 2 3) . 8)
  >       \repeat unfold 9 c'8
  >     }

- La nouvelle commande `\submeasureBarsOn` permet d’afficher automatiquement des barres de mesure entre les composants d’une métrique alternative stricte (non montré ici), ou lorsque spécifié par les réglages de la nouvelle propriété de contexte `submeasureStructure` ou par les pulsations de l’argument optionnel de la commande `\time`.

  >     {
  >       \submeasureBarsOn
  >       \time #'((3 4) (3 4) (4 3 4)) 25/16
  >       \repeat unfold 25 c'16
  >     }

- La nouvelle commande `\polymetric` simplifie la notation d’une polymétrie dont la longueur des mesures est alignée lorsque sont réglées les propriétés d’échelonnement de la métrique dans des contextes différents de `Timing`.

  >     <<
  >       \new Staff {
  >         \scaleDurations 4/6 {
  >           \context Staff \polymetric \time 6,6,6 18/16
  >           \repeat unfold 18 c'16
  >         }
  >       }
  >       \new Staff {
  >         \time 3/4
  >         c'4 4 4
  >       }
  >     >>

- Les ligatures automatiques pour une métrique à 2/8 ont été modifiées de sorte à autoriser une ligature sur l’entièreté de la mesure.
- `\enablePolymeter` a été renommé en `\enablePerStaffTiming` afin d’éviter toute confusion puisqu’elle n’est recommandée que dans certains cas particuliers de polymétrie.
- La propriété `TimeSignature.time-signature` remplace l’ancienne propriété `fraction`. Cette nouvelle propriété est plus généraliste et autorise des dérogations, ce qui permet certaines adaptations sans devoir toucher la propriété `stencil`.

  >     {
  >       \once \override Timing.TimeSignature.time-signature = #'(-1 . 12)
  >       R1
  >     }

- La commande `\time` accepte désormais un nombre rationnel au numérateur. L’objet graphique `TimeSignature` et la fonction markup `\compound-meter` disposent de nouvelles propriétés permettant de contrôler le style de la partie fractionnelle.

- La commande `\time` accepte désormais un nombre rationnel en dénominateur afin de prendre en charge des métriques dont le temps est supérieur à la ronde.

  >     {
  >       \override Timing.TimeSignature.denominator-style = #'note
  >       \time #'(4 . 1/2)
  >       e'\breve f' g' a'
  >     }

- L’objet graphique `TimeSignature` et la fonction markup `\compound-meter` acceptent désormais des métriques de style nombre sur note à l’aide de `denominator-style` et propriétés relatives.

  >     {
  >       \override Timing.TimeSignature.style = #'numbered
  >       \override Timing.TimeSignature.denominator-style = #'note
  >       \once \override Timing.TimeSignature.time-signature = #'(2 . 8/3)
  >       \time 6/8
  >       r4. g'8 8 8
  >     }

- `\slashedGrace` imprime désormais des ligatures barrées.

  >     {
  >       \slashedGrace { d'16 e' d' } c'1
  >       \slashedGrace { d16 e'' d' } c'1
  >     }

  L’utilisation de `beam::slashed-stencil` permet de barrer des ligatures de façon arbitraire. Définir `details.slash-side` à `RIGHT` placera la barre sur la droite de la ligature.

  >     {
  >       \override Beam.stencil = #beam::slashed-stencil
  >       \cadenzaOn
  >       c'16^[ a' c'']
  >       c''^[ a' c']
  >       c'_[ a' c'']
  >       c''_[ a' c']
  >       \override Beam.details.slash-side = #RIGHT
  >       c'16^[ a' c'']
  >       c''^[ a' c']
  >       c'_[ a' c'']
  >       c''_[ a' c']
  >     }

  L’apparence de la barre peut se personnaliser par dérogations aux sous-propriétés `details` `over-beam-height`, `slash-slope`, `slash-side`, `slash-stem-fraction`, `slash-thickness` et `slash-X-positions`.

- La commande `\autoBeamOff` interrompt désormais immédiatement la ligature automatique. Auparavant, ses effets étaient différés lorsque le graveur de ligature automatique était actif.
- Il est désormais possible d’aligner par la droite différents types de barre de mesure.

  >     \new StaffGroup
  >       <<
  >         \new Staff { \textMark "default" b1 }
  >         \new Staff { b1 \section }
  >       >>

  >     \new StaffGroup
  >       <<
  >         \new Staff
  >           { \textMark "right-aligned" b1 }
  >         \new Staff
  >           { b1
  >             \override StaffGroup.BarLine.right-justified = ##t
  >             \section }
  >       >>

- Désormais, les contrôles de mesure (`|`) créent implicitement des contextes. Les développeurs considèrent que cela n’aura aucun impact sur les partitions courantes. N’hésitez pas à signaler tout problème qui ne trouverait pas de solution de contournement évidente.
- La nouvelle option `span-all-note-heads` permet aux crochets de n-olets d’embrasser toutes les têtes de notes (pas seulement les hampes) comme recommandé par Gould et Ross.

- La subdivision des ligatures automatiques a été retravaillée. Jusqu’à présent, on pouvait constater de nombreuses imperfections dans la manière de subdiviser automatiquement des motifs de ligature complexes en raison de surestimations de la valeur de `beatBase`. LilyPond est désormais capable de subdiviser correctement la plupart des motifs de ligature sans utiliser la valeur de `beatBase` pour limiter la subdivision d’une ligature. La simple activation de `subdivideBeams` divise automatiquement tous les intervalles par défaut. Trois nouvelles propriétés ont été introduites pour permettre d’affiner la subdivision automatique des ligatures : `beamMinimumSubdivision`, `beamMaximumSubdivision` et `respectIncompleteBeams`. `beamMinimumSubdivision` limite les intervalles de subdivision de manière identique à ce que `beatBase` faisait auparavant (réduction de la fréquence des subdivisions de ligatures). `beamMaximumSubdivision` limite globalement le nombre de tronçons supprimés aux emplacements de subdivision. `respectIncompleteBeams` limite le nombre de moignons lorsque le temps restant ne compléterait pas la métrique de la subdivision. Régler `beamMinimumSubdivision` à la valeur de `beatBase` dans tous les cas, y compris lorsque `beatBase` varie implicitement, préserve le comportement antérieur.
- Sont désormais disponibles des glyphes de crochets « empilés ». Tous les éléments d’un glyphe de crochet ont la même largeur, mais sont verticalement plus compacts.

  Ces glyphes sont accessibles à l’aide de `\flagStyleStacked` ; un `\flagStyleDefault` permet de retrouver le style de crochet standard.

- Le style de `TimeSignature` `'single-digit` a été renommé en `'single-number`.

#### LilyPond Changes v2.26.0 (stable-branch).

- Modifications majeures de LilyPond
  - Notes à propos de la compilation des sources et à l’attention des empaqueteurs
- Nouveautés en matière de notation musicale
  - Améliorations de la représentation des hauteurs
  - Améliorations en matière de rythme
  - Améliorations en matière d’expressivité
  - Améliorations en matière de reprises
  - Améliorations en matière d’annotations éditoriales
  - Améliorations en matière de fontes et de mise en forme du texte
- Nouveautés en matière de notation spécialisée
  - Améliorations pour la musique vocale
  - Améliorations pour instruments à portées multiples
  - Améliorations pour les cordes non frettées
  - Améliorations pour les cordes frettées
  - Améliorations pour la notation des accords
  - Améliorations pour les notations anciennes
  - Améliorations pour les musiques du monde
- Autres améliorations diverses