全音符のトレモロ

 2つの音の交代を \repeat tremolo で書くとき、音符が全音符だと見苦しい結果になることがある。

\relative c'' { \repeat tremolo 8 { c16 d } \repeat tremolo 8 { a'16 gis } \repeat tremolo 8 { c16 c, } }

 トレモロを表す線が常に水平なのがおかしい。始点・終点のy座標にオフセットをつけられるようにした。

tweakWholeNoteTremolo = #(define-music-function (parser location yoff)(pair?) #{ \once \override Beam #'gap = #0.3 \once \override Beam #'extra-offset = #(cons 0 (car $yoff)) \once \override Beam #'stencil = #(lambda (grob) (let* ((pos (ly:grob-property grob 'positions))) (ly:grob-set-property! grob 'positions (cons (car pos) (+ (cdr pos) (cdr $yoff)))) (ly:beam::print grob))) #})

 オフセットなしの場合、「低い方の音符の位置」がy座標になるようだ。ここからどのぐらい上げるか(下げるか)を指定する。単位は譜線の間隔。

\relative c'' { \once \override Staff.TimeSignature #'stencil = ##f \tweakWholeNoteTremolo #'(-2 . 0.5) \repeat tremolo 8 { c16 d } \tweakWholeNoteTremolo #'(-2 . -0.5) \repeat tremolo 8 { a'16 gis } \tweakWholeNoteTremolo #'(0 . -2.5) \repeat tremolo 8 { c16 c, } }

(2022/08/08 作成)