Time signature with alternate in parentheses: Difference between revisions
Appearance
Improve more. |
Aaand another improvement. |
||
| Line 1: | Line 1: | ||
In polymetric music, a composer may indicate beat structure by following one time signature with another in parenthesis, for example, ‘3/4 (6/8)’ indicating a 6/8 beat in a 3/4 measure, or ‘6/4 (6/8)’ indicating a 6/8 beat in a 6/4 measure. | In polymetric music, a composer may indicate beat structure by following one time signature with another in parenthesis, for example, ‘3/4 (6/8)’ indicating a 6/8 beat in a 3/4 measure, or ‘6/4 (6/8)’ indicating a 6/8 beat in a 6/4 measure. | ||
This snippet provides a small Scheme wrapper around the <code>\compound-meter</code> markup function | This snippet provides a music function <code>\timeP</code> that is a small Scheme wrapper around the <code>\compound-meter</code> markup function. It overrides the <code>TimeSignature</code> stencil once to display both a regular and an alternate time signature. | ||
<lilypond version="2.24"> | <lilypond version="2.24"> | ||
#(define ((time-parenthesized-time t tp) grob) | timeP = | ||
#(define-music-function (t tp) (list? list?) | |||
(define ((time-parenthesized-time t tp) grob) | |||
(let ((m1 (grob-interpret-markup | |||
grob (markup #:compound-meter t))) | |||
(m2 (grob-interpret-markup | |||
grob (markup #:compound-meter tp)))) | |||
(ly:stencil-combine-at-edge | |||
m1 X RIGHT | |||
(parenthesize-stencil m2 0.1 0.4 0.4 0.1) | |||
0.3))) | |||
#{ | |||
\once \override Timing.TimeSignature.stencil = | |||
#(time-parenthesized-time t tp) | |||
#}) | |||
\relative c' { | \relative c' { | ||
\ | \timeP #'(3 4) #'(6 8) \time 3/4 | ||
b8 b8 gis8 gis4 gis8 | | |||
\timeP #'(4 4) #'(3 2 3 8) \time 4/4 | |||
\ | b4. b4 b4. | ||
} | } | ||
</lilypond> | </lilypond> | ||
Latest revision as of 04:35, 15 April 2026
In polymetric music, a composer may indicate beat structure by following one time signature with another in parenthesis, for example, ‘3/4 (6/8)’ indicating a 6/8 beat in a 3/4 measure, or ‘6/4 (6/8)’ indicating a 6/8 beat in a 6/4 measure.
This snippet provides a music function \timeP that is a small Scheme wrapper around the \compound-meter markup function. It overrides the TimeSignature stencil once to display both a regular and an alternate time signature.
\version "2.24"
timeP =
#(define-music-function (t tp) (list? list?)
(define ((time-parenthesized-time t tp) grob)
(let ((m1 (grob-interpret-markup
grob (markup #:compound-meter t)))
(m2 (grob-interpret-markup
grob (markup #:compound-meter tp))))
(ly:stencil-combine-at-edge
m1 X RIGHT
(parenthesize-stencil m2 0.1 0.4 0.4 0.1)
0.3)))
#{
\once \override Timing.TimeSignature.stencil =
#(time-parenthesized-time t tp)
#})
\relative c' {
\timeP #'(3 4) #'(6 8) \time 3/4
b8 b8 gis8 gis4 gis8 |
\timeP #'(4 4) #'(3 2 3 8) \time 4/4
b4. b4 b4.
}