lilypond-user-fr
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]