スタッカートのついたトレモロ

 スタッカートのついた同音の繰り返しをトレモロの記法で書きたいことがあります。

 アーティキュレーションの一種として実装する。たぶんどこかにあったコードを参照したのだけど、元ネタを忘れてしまった。

tongue = #(define-music-function (parser location dots) (integer?) (let ((script (make-music 'ArticulationEvent 'articulation-type "staccato"))) (set! (ly:music-property script 'tweaks) (acons 'stencil (lambda (grob) (let ((stil (ly:script-interface::print grob))) (let loop ((count (1- dots)) (new-stil stil)) (if (> count 0) (loop (1- count) (ly:stencil-combine-at-edge new-stil X RIGHT stil 0.2)) (ly:stencil-aligned-to new-stil X CENTER))))) (ly:music-property script 'tweaks))) script))

 こんな風に使います。#2 と書いているのが点の数。

\relative c'' { \repeat tremolo 2 a8-\tongue #2 \repeat tremolo 2 b8-\tongue #2 \repeat tremolo 2 c8-\tongue #2 \repeat tremolo 2 d8-\tongue #2 }

(2022/08/08 作成)