[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