Subject: Notation polymétrique

From: Philhar <[email-masked]>
Date: Sun, 23 May 2021 22:51:03 -0700 (MST)

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

--
Sent from: http://lilypond-french-users.1298960.n2.nabble.com/

---

From: Jean Abou Samra <[email-masked]>
Date: Mon, 24 May 2021 10:03:16 +0200

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

---

From: Philhar <[email-masked]>
Date: Mon, 24 May 2021 02:08:38 -0700 (MST)

Merci pour la clarification. La nécessité des {} n'apparait pas au premier
abord.

Quand je cherche une solution à un problème peu courant, ma démarche
habituelle est:
- 1. chercher dans le manuel la bonne rubrique
- 2. lire et comprendre comment mettre en application en s'aidant de
l'exemple
- 3. adapter à mon cas particulier
- 4. youpi ! ça marche ! sinon, passer au 5.
- 5. chercher dans la liste si quelqu'un a été confronté au même problème,
ce qui apporte souvent des clarifications
- 6. en dernier recours, poser la question sur la liste, ce qui apporte
toujours une réponse
- 7. reprendre au 1. pour comprendre ce qui m'a échappé

Et donc, arrivé au 7. j'ai pensé qu'une précision sur l'utilisation des {}
m'aurait fait gagner du temps.

Ceci dit, le manuel est tout de même sacrément bien fait. Merci à tous ceux
qui le maintiennent.

Michel

---

From: Olivier Miakinen <[email-masked]>
Date: Mon, 24 May 2021 21:56:51 +0200

Bonjour Michel,

Le 24/05/2021 11:08, Philhar a écrit :
> [...]

Je me permets d'intervenir pour dire que je ne suis pas d'accord.

S'il fallait répéter à *chaque* fonction que les accolades permettent de
regrouper plusieurs expressions musicales en une seule, je considère que
cela alourdirait la doc, et que du coup ça ferait perdre du temps à tout
le monde au lieu d'en faire gagner.

En effet, pour ne prendre que les exemples de ton message, ça veut dire
qu'il aurait fallu le signaler :
- pour \new Staff ...
- pour \repeat unfold 6 ...
- pour \tuplet 3/2 ...

Or tu n'as apparemment pas cherché à écrire :
- \new Staff \time 3/4 c'4 c c | c4 c c |
- \repeat unfold 6 c8 c c
- \tuplet 3/2 c8[ c c]

Il se trouve que c'est exactement la même chose avec \scaleDurations

Cordialement,
-- 
Olivier Miakinen