|
From: | Jean Abou Samra |
Subject: | Re: Modification d'armure et/ou de métrique dans toutes les portées |
Date: | Sun, 31 Jul 2022 17:42:10 +0200 |
Le 31 juil. 2022 à 14:04, Vincent Gay <vgay@vintherine.org> a écrit :
<< \new Staff { \time 2/2 \numericTimeSignature c' } \new Staff { c' } >> Tu constateras que le \time s’applique aux deux portées. Tu utilises une variable \global, mais si je ne m’abuse tu as aussi une variable pour les sauts de ligne, que tu mets dans un DevNull. Grâce au fait que \time s’applique à toutes les portées, tu pourrais tout aussi bien mettre les \time là-dedans (contrairement aux \key qui ne s’appliquent qu’à leur portée, logique puisqu’il est fréquent d’avoir des instruments transpositeurs avec leur propre armure, alors qu’il est beaucoup moins fréquent d’avoir des portées avec des chiffrages différents, mais j’y reviens). Par contre, en 2.22, le \numericTimeSignature ne s’applique qu’à sa propre portée, donc dans l’exemple ci-dessus, on se retrouve avec une portée du haut en 2/2 et une portée du bas en C barré. Ceci n’étant pas très logique, cela a été changé en 2.23. De même que \time, \numericTimeSignature s’applique désormais par défaut à toutes les portées. Pourquoi « par défaut », me demandes-tu. Parce que LilyPond prend aussi en charge la notation polymétrique, avec des chiffrages différents selon la portée. Dans ce cas assez particulier, il faut évidemment éviter qu’un \time ne s’applique à toutes les portées. LilyPond l’évite si on le lui demande gentiment, en plaçant dans le layout un \enablePolymeter (commande que j’ai ajoutée en 2.23, en 2.22 il faut déplacer le Timing_translator et le Default_bar_line_engraver à la main). Dans ce cas, \time et \numericTimeSignature s’appliquent seulement dans leur portée. Et c’est là qu’intervient le fameux Timing. C’est en fait un alias de contexte ajouté soit à Score, dans le cas normal, soit à Staff et assimilés (RhythmicStaff, MensuralStaff, …), dans le cas polymétrique. En fait, la définition de \numericTimeSignature dans le code source est aussi simple que ceci : numericTimeSignature = \override Timing.TimeSignature.style = #'numbered Et en fonction du cas, polymétrique ou non, cela s’applique au niveau Score ou Staff. Toi aussi, tu peux définir une commande porteeRouge = \override Staff.StaffSymbol.color = "red" et l’appliquer non seulement dans un Staff, mais aussi dans un RhythmicStaff par exemple, puisque RhythmicStaff possède l’alias Staff. Et si tu veux le faire dans un contexte qui n’a pas l’alias, rien ne t’empêche de l’ajouter avec la syntaxe \layout { \context { \LeContexte \alias Staff } } Voilà, j’espère que c’est plus clair pour toi. Cordialement, Jean
|
[Prev in Thread] | Current Thread | [Next in Thread] |