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

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

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


From: Jean Abou Samra
Subject: Re: Ajouter un chiffrage entre parenthèses après un \compoundMeter
Date: Wed, 1 Sep 2021 18:06:46 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0

Le 01/09/2021 à 16:54, F. Moinard a écrit :
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


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




reply via email to

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