Subject: Polymetrie : alignement sur la pulsation

From: Yoann LE BARS <[email-masked]>
Date: Thu, 7 Nov 2019 04:25:02 +0100

Salut à tous !

	Je dois écrire une partition polymétrique, sur laquelle les différentes
portées doivent s’aligner sur la pulsation les unes des autres. Ainsi,
en superposant un 9/8 avec un 4/4, chaque triolet dans le 9/8 doit
s’aligner sur les duolets dans le 4/4. Autrement dit, la durée des
mesures ainsi que la composition temps ne sont pas les mêmes, mais la
pulsation est la même et cela doit apparaître dans la partition.

	J’espère être suffisamment clair…

	J’ai fait l’exemple suivant (voir http://lilybin.com/8rqj5j/1) :

\version "2.18.2"

#(define ((signature-composee) grob)
   (grob-interpret-markup grob
      (markup #:override '(baseline-skip . 0)
        (#:line ((#:center-column (#:number "14" #:number "8"))
                 (#:bold (make-vcenter-markup "="))
                 (#:center-column (#:number "6" #:number "8"))
                 (#:bold (make-vcenter-markup "+"))
                 (#:center-column (#:number "4" #:number "4")))))))

\layout {
  \context {
    \Score
    \remove "Timing_translator"
    \remove "Default_bar_line_engraver"
  }
  \context {
    \Staff
    \consists "Timing_translator"
    \consists "Default_bar_line_engraver"
  }
}

\relative c' <<
  \new Staff {
    \time 9/8
    \repeat unfold 4 {c8 d e c d e c d e}
  }
  \new Staff {
    \time 4/4
    \repeat unfold 3 {c8[d] e[f] c[d] e[f]}
  }
  \new Staff {
    \once \override Staff.TimeSignature.stencil = #(signature-composee)
    \time #'(3 3 2 2 2 2) 14/8
    \repeat unfold 2 {c8 d e c d e c d e f c d e f}
  }

	J’y ai rassemblé les croches de manière à faire apparaître la
pulsation. Il y a donc 12 temps sur chaque portée, elles devraient donc
avoir la même taille : les triolets du 9/8 devraient s’aligner aux
duolets du 4/4. Le 14/8 est composé de deux triolets, puis quatre
duolets, mais là encore il faudrait que les pulsations s’alignent. Or,
dans mon exemple, ce n’est pas le cas : le croches d’une portée
s’alignent sur les croches des autres portées, ce qui rend la lecture
plus compliquée.

	Est-ce que quelqu’un a une idée pour me permettre d’aligner les
pulsations ?

	À bientôt.

-- 
Yoann LE BARS
http://le-bars.net/yoann/
Diaspora* : [email-masked]

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Thu, 7 Nov 2019 07:19:07 +0100

Bonjour Yoyann,
Les pulsations ne sont pas alignées car les triolets n'en sont pas vraiment.
On peut tricher, quelque chose comme :

\version "2.18.2"

#(define (signature-composee grob)

#(define (chiffr-triche grob)
   (grob-interpret-markup grob
      (markup #:override '(baseline-skip . 0)
        (#:line ((#:center-column (#:number "9" #:number "8")))))))

\layout {
  \context {
    \Score

\relative c' <<
  \new Staff {
    \override Staff.TimeSignature.stencil = #chiffr-triche
    \time 3/4
    \repeat unfold 4 {c8*2/3 d e c d e c d e}
  }
  \new Staff {
    \time 4/4
    \repeat unfold 3 {c8[d] e[f] c[d] e[f]}
  }
  \new Staff {
    \once \override Staff.TimeSignature.stencil = #signature-composee
    \time #'(2 2 2 2 2 2) 6/8
    \repeat unfold 2 {c8*2/3 d e c d e c8 d e f c d e f}
  }

Cordialement,
Pierre

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Thu, 7 Nov 2019 07:25:56 +0100

J'ai oublié d'enlever la barre :
...
\time #'(2 2 2 2 2 2) 6/8
\repeat unfold 2 { c8*2/3 d e c d e c8 d \bar "" e f c d e f}
...
Cdt, Pierre

---

From: Olivier Miakinen <[email-masked]>
Date: Fri, 8 Nov 2019 08:16:52 +0100

Bonjour,

Le 07/11/2019 04:25, Yoann LE BARS a écrit :
> 
> 	Je dois écrire une partition polymétrique [...]

Avant toute chose, as-tu lu la doc de LilyPond à propos de la notation
polymétrique ?

http://lilypond.org/doc/v2.18/Documentation/notation/displaying-rhythms#polymetric-notation

---

From: Yoann LE BARS <[email-masked]>
Date: Mon, 11 Nov 2019 03:14:04 +0100

Salut à tous !

> Avant toute chose, as-tu lu la doc de LilyPond à propos de la notation

	Oui.

	À bientôt.

---

From: Yoann LE BARS <[email-masked]>
Date: Tue, 12 Nov 2019 02:15:27 +0100

Salut à tous !

	Merci Pierre pour ta proposition, ça donnait exactement le résultat
attendu sur l’exemple court que j’avais donné. En revanche, sur un
exemple plus long, les lignes dépassent la taille de la page. J’ai fait
un exemple (voir http://lilybin.com/zshwpl/2) :

\version "2.18.2"

\layout {
  \context {
    \Score
    \Staff \RemoveEmptyStaves

fluteA = {
  \time 4/4
  \relative c' {
    \repeat unfold 12 {c8 d e f}
  }
}

fluteBa = {
  \bar "||"
  \once \override Staff.TimeSignature.stencil = #chiffr-triche
  \time 3/4
  \relative c' {
    \repeat unfold 12 {c8*2/3[d e]}
  }
}

fluteCb = {
  \bar "||"
  \time 4/4
  \relative c' {
    \repeat unfold 12 {f8 e d c}
  }
}

fluteD = {
  \time 4/4
  \relative c' {
    c8 d e f e d c4~ c1
  }
}

clarinetteA = {
  \time 4/4
  \relative c' {
    \repeat unfold 16 {e8 f g a}
  }
}

clarinetteB = {
  \bar "||"
  \once \override Staff.TimeSignature.stencil = #chiffr-triche
  \time 3/4
  \relative c' {
    \repeat unfold 18 {e8*2/3[d c]}
  }
}

\score {
  <<
    \accidentalStyle Score.modern-cautionary
    \new Staff {
        \fluteA
        \fluteBa
        \fluteCb
        \fluteD
      }

    \new Staff {
      \clarinetteA
      \clarinetteB
    }
}

	J’ai essayé de corriger ça avec « line-width », mais ça n’a rien
changé. Est-ce qu’il y a un moyen de corriger ça ?

	À bientôt.

---

From: Yoann LE BARS <[email-masked]>
Date: Tue, 12 Nov 2019 04:44:59 +0100

Salut à tous !

	Je viens de percuter : le problème, c’est que pour couper la ligne,
Lilypond attend que les barres de mesures soient alignées, ce qui peut
occasionnellement intervenir après la fin de la page. Il faut donc qu’à
l’occasion je provoque la coupure en cours de mesure, ce qui donne
l’exemple suivant (voir http://lilybin.com/zshwpl/4) :

\version "2.18.2"

\layout {
  %line-width = #150
  \context {
    \Score

fluteA = {
  \time 4/4
  \relative c' {

fluteBa = {
  \bar "||"

fluteCb = {
  \bar "||"
  \time 4/4
  \break
  \relative c' {

fluteD = {
  \relative c' {
    c8 d e f e d c4~ c1
  }
}

clarinetteA = {
  \time 4/4
  \relative c' {

clarinetteB = {
  \bar "||"
  \once \override Staff.TimeSignature.stencil = #chiffr-triche
  \time 3/4
  \relative c' {
    \repeat unfold 4 {e8*2/3[d c]} \bar "" \break
    e[d c] |
    \repeat unfold 13 {e[d c]}
  }
}

\score {
  <<

    \new Staff {
      \clarinetteA
      \clarinetteB
    }
}

	Voilà, problème résolu.

	À bientôt.