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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: polymétries et mise en page


From: Valentin Villenave
Subject: Re: polymétries et mise en page
Date: Tue, 21 Apr 2020 09:25:28 +0000

On 4/20/20, Christian Lalune <address@hidden> wrote:
> La métrique et la longueur des structures sont parfois différentes.

Certes, mais LilyPond est réglé pour attendre qu’une barre de mesure
coïncide entre les différentes portées pour passer au système suivant.
Et dans votre exemple cela ne se produit qu’au bout de 12 temps, comme
vous pouvez le voir si vous réduisez la taille des portées :

  #(set-global-staff-size 14)

Alors c’est sûr que pour faire tenir tout cela sur un seul système en
format a4 portrait, c’est un peu difficile. Si j’étais vous,
j’ajouterais des barres de mesure invisibles (\bar "") un peu partout
pour pouvoir permettre à LilyPond de casser ses systèmes quand ça lui
chante. Forcément c’est un peu pénible à taper à la main, heureusement
une music-function peut le faire pour vous :

(J’en profite pour vous proposer d’enlever un certain nombre
d’accolades non-nécessaires, ainsi que le \global qui franchement ne
sert pas à grand chose ici. J’ai également factorisé le \transpose.)

%%%%

\version "2.20.0"

fStructure =
#(define-music-function
  (parser location string) (string?)
  #{ ^\markup { \ellipse { \abs-fontsize #16 \bold #string } } #}
  )

allowBreaks =
#(define-music-function (music) (ly:music?)
   #{ << \repeat unfold $(ly:moment-main-numerator
                          (ly:moment-div
                           (ly:music-length music)
                           (ly:make-moment 1 4)))
         {s4\bar ""} $music >> #})

respiration = \markup { \bold \abs-fontsize #24 "◊" }

\paper {
  #(set-paper-size "a4")
  left-margin = 20\mm
  right-margin = 20\mm
  bottom-margin = 20\mm
}

structureDeuxVoice = {
  c4 ^\fStructure "2" r c r
  c4 r r2
  c4 r c r
  c4 r r2
}

structureTroisVoice = {
  c16 ^\fStructure "3" c c c c8 c16 c c4 r8 c16 c
  c4 r8 c16 c c8 c16 c c8 r
}

structureQuatreAVoice ={
  \tuplet 3/2 4 {
    c8 ^\fStructure "4a" c c c c c c c c c c c
    c8 c c c c c
  } \tuplet 3/2 { c4 c c }
}

structureQuatreBVoice = {
  \textLengthOn
  \tuplet 3/2 4 { c8 ^\fStructure "4b" c c c c c } r4 r ^\respiration
  \tuplet 3/2 4 { c8 c c c c c } r4 r ^\respiration
}

structureQuatreVoice = {
  \structureQuatreAVoice
  \structureQuatreBVoice
}

structureHuitVoice = {
  \time 3/4
  c8 ^\fStructure "8" \tuplet 3/2 { c16 c c } c8 \tuplet 3/2 { c16 c c } c8 c
  %\bar "" \break
  c8 \tuplet 3/2 { c16 c c } c8 \tuplet 3/2 8 { c16 c c c c c c c c }
  %\bar "" \break
  c8 \tuplet 3/2 { c16 c c } c8 \tuplet 3/2 { c16 c c } c8 c
  %\bar "" \break
  c8 \tuplet 3/2 { c16 c c } c8 \tuplet 3/2 8 { c16 c c c c c c c c }
  \time 4/4
  c4 r r c
}

voixUn = \allowBreaks \structureQuatreVoice

voixDeux = \allowBreaks \structureDeuxVoice

voixTrois = \allowBreaks \structureTroisVoice

voixQuatre = \allowBreaks \structureHuitVoice

\score {
  \new ChoirStaff \transpose c g' <<
    \new Staff \voixUn
    \new Staff \voixDeux
    \new Staff \voixTrois
    \new Staff \voixQuatre
  >>
  \layout {
    % pour obtenir des métriques différentes et mesures de longueur inégale
    \context {
      \Score
      \remove "Timing_translator"
      \remove "Default_bar_line_engraver"
    }
    \context {
      \Staff
      \consists "Timing_translator"
      \consists "Default_bar_line_engraver"
    }
  }
  \midi { }
}

%%%%

Cordialement,
V. V.



reply via email to

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