Subject: Ajouter un chiffrage entre parenthèses après un \compoundMeter

From: "F. Moinard" <[email-masked]>
Date: Wed, 1 Sep 2021 18:54:29 +0400

Bonjour,  !

Je cherche à préciser un chiffrage de mesure après une indication complexe.

Ainsi, l'original indique 5/4, et je souhaite plutôt afficher 
\compoundMeter #'((6 8) (2 4)) puis préciser que le 5/4 figure sur 
l'original. J'ai essayé une note de bas de page avec un \score minimal, 
mais je ne suis pas trop satisfait du résultat (plusieurs prennent trop 
de place en bas de certaines parties). En revanche, le rendu proposé par 
http://lsr.di.unimi.it/LSR/Item?id=782 
<http://lsr.di.unimi.it/LSR/Item?id=782> me conviendrait davantage, mais...

dans la fonction :

#(define ((time-parenthesized-time up down upp downp) grob)
    (grob-interpret-markup grob
      (markup #:override '(baseline-skip . 0) #:number
        (#:line (
            (#:center-column (up down))
            #:vcenter "("
            (#:center-column (upp downp))
            #:vcenter ")" )))))

je ne sais pas remplacer up down par \compoundMeter... pour obtenir, 
dans cet exemple, le chiffrage 6/8+2/4 suivi par (5/4) .

Quelqu'un pour m'aider ?

Cordialement,
Frédéric

---

From: Jean Abou Samra <[email-masked]>
Date: Wed, 1 Sep 2021 18:06:46 +0200

Le 01/09/2021 à 16:54, F. Moinard a écrit :
> l'original. J'ai essayé une note de bas de page avec un \score 
> minimal, mais je ne suis pas trop satisfait du résultat (plusieurs 
> prennent trop de place en bas de certaines parties). En revanche, le 
> rendu proposé par http://lsr.di.unimi.it/LSR/Item?id=782 

Voici une possibilité qui s'inspire du code de
\compoundMeter :

\version "2.22.1"

#(set-object-property! 'inter-time-signature-padding 'backend-type? number?)
#(set-object-property! 'angularity 'backend-type? number?)

twoCompoundMeters =
#(define-music-function (args args2) (pair? pair?)
   (let* ((mlen (calculate-compound-measure-length args))
          (beat (calculate-compound-base-beat args))
          (beatGrouping (calculate-compound-beat-grouping args))
          (timesig (cons (ly:moment-main-numerator mlen)
                         (ly:moment-main-denominator mlen))))
   #{
     \once \override Timing.TimeSignature.stencil =
       #(lambda (grob)
          (grob-interpret-markup grob
            (make-concat-markup
              (list
                (make-compound-meter-markup args)
                (make-hspace-markup
                  (ly:grob-property grob 'inter-time-signature-padding 0))
                (make-parenthesize-markup
                  (make-compound-meter-markup args2))))))
     \set Timing.timeSignatureFraction = #timesig
     \set Timing.baseMoment = #beat
     \set Timing.beatStructure = #beatGrouping
     \set Timing.beamExceptions = #'()
     \set Timing.measureLength = #mlen
   #}))

\layout {
   % Valeurs utiles à ajuster
   \override Staff.TimeSignature.inter-time-signature-padding = 1.3
   \override Staff.TimeSignature.thickness = 1
   \override Staff.TimeSignature.width = 0.25
   \override Staff.TimeSignature.angularity = 0
}

{
   \twoCompoundMeters #'((6 8) (2 4)) #'(5 4)
   c
}

Cordialement,
Jean

---

From: "F. Moinard" <[email-masked]>
Date: Wed, 1 Sep 2021 22:25:27 +0400

Bonsoir,

Le 01/09/2021 à 20:06, Jean Abou Samra a écrit :
> (...)

(...)

Et c'est spectaculairement impressionnant et parfait !

Merci beaucoup :)

Bonne soirée,
Frédéric