[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Notation polymétrique
From: |
Jean Abou Samra |
Subject: |
Re: Notation polymétrique |
Date: |
Mon, 24 May 2021 10:03:16 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1 |
Le 24/05/2021 à 07:51, Philhar a écrit :
Bonjour,
La documentation concernant la notation polymétrique (ch. 1.2.3) est
incomplète (Métriques différentes et mesures d’égale longueur). Il est en
effet nécessaire de mettre entre accolades les mesures concernées par
\scaleDurations et d'utiliser le séparateur de mesures ( | ).
L'exemple donné fonctionne, mais, dans la portée en 9/8, si on remplace la
2ème mesure par 3 noires pointées, elle déborde. La mise entre accolades
et/ou le séparateur corrige le problème.
\relative <<
\new Staff {
\time 3/4
c'4 c c |
c4 c c |
}
\new Staff {
\time 3/4
\set Staff.timeSignatureFraction = 9/8
\scaleDurations 2/3 %% { accolade à ajouter
\repeat unfold 6 { c8 c c } %% \repeat unfold 3 { c8 c c } \repeat
unfold 3 c4.
%% }
}
\new Staff {
\time 3/4
\set Staff.timeSignatureFraction = 10/8
\scaleDurations 3/5 { %% l'accolade figure bien pour cette
portée
\repeat unfold 2 { c8[ c c] }
\repeat unfold 2 { c8[ c] } | %% et le séparateur de mesures aussi
c4. c \tuplet 3/2 { c8[ c c] } c4
}
}
... ou l'utilisation du séparateur de mesures:
\scaleDurations 2/3 %% sans accolade
\repeat unfold 6 { c8 c c } %% \repeat unfold 3 { c8 c c } |
mais avec séparateur
%% \repeat unfold 3 c4.
Cordialement,
Michel
Bonjour,
Je n'ai pas l'impression que la documentation soit incomplète ; en tous
cas, vous pouvez observer le même comportement avec d'autres fonctions
que \scaleDurations, par exemple \grace :
\relative c' {
\grace c8 c2
\grace { c8 d } e2
\grace \repeat unfold 4 c8 c2
\grace \repeat unfold 4 c8 \repeat unfold 4 d8 e2
\grace { \repeat unfold 4 c8 \repeat unfold 4 d8 } e2
}
En effet, \grace comme \scaleDurations sont des fonctions musicales qui
attendent des arguments. \grace en demande un seul, tandis que
\scaleDurations en requiert deux : le facteur de compression, et la
musique à laquelle il s'applique. L'analyseur syntaxique, pour
interpréter l'appel de la fonction \scaleDurations, lit ce qui se trouve
immédiatement après le premier argument « 3/5 », et le prend comme le
deuxième argument. Dans votre cas, seul le premier des \repeat unfold
est compris comme étant l'argument : il n'y a aucun moyen de savoir que
vous souhaitiez grouper les \repeat unfold. Pour le faire, il suffit de
les mettre entre { et }, pour en faire une unique expression musicale
séquentielle, qui peut alors être passée en argument.
Donc, pour résumer l'affaire, les accolades peuvent être omises dans le
cas où l'argument est une unique application de fonction musicale :
\compressMMRests \transpose c d \relative {
c d e f R1*4
}
En revanche, si l'argument s'étend davantage, il faut grouper les
éléments en une unique expression avec { … } ou encore << … >> :
\transpose c d {
c1
\compressMMRests R1*4
d1
}
Est-ce plus clair ainsi ?
Cordialement,
Jean