% http://lsr.di.unimi.it/LSR/Item?id=714
%LSR after a mail from Robin Bannister http://lists.gnu.org/archive/html/lilypond-user/2009-04/msg00344.html
% laissezVibrer using feta char overlay: dir: UP or DOWN (or pad per magnitude)
#(define (flvSt dir)
(lambda (grob)
(define dirsign
(if (positive? dir) + -) )
(let* ((pos (ly:grob-property grob 'staff-position))
(height (if (odd? pos) +0.8 +0.55)) (angle +90))
(ly:stencil-combine-at-edge (ly:note-head::print grob) 0 1
(grob-interpret-markup grob (markup
#:with-dimensions '(0 . 0) '(0 . 0)
#:concat (#:hspace (abs dir)
#:raise (dirsign height)
#:rotate (dirsign angle)
#:musicglyph "accidentals.rightparen" ))) 0))))
flvUP =
\once \override NoteHead.stencil = #(flvSt UP)
flvDOWN =
\once \override NoteHead.stencil = #(flvSt DOWN) % or \tweak stencil ___ditto____
%% Remark:
%% change next two definitions to the commented ones during LSR 2.20-upgrade
flvUPtw =
#(define-music-function (mus) (ly:music?)
#{ \tweak stencil #(flvSt UP) $mus #})
flvDOWNtw =
#(define-music-function (mus) (ly:music?)
#{ \tweak stencil #(flvSt DOWN) $mus #})
%% flvUPtw = \tweak stencil #(flvSt UP) \etc
%% flvDOWNtw = \tweak stencil #(flvSt DOWN) \etc
\relative c' {
4\laissezVibrer s
<\flvDOWNtw a \flvUPtw e'>4 s
4 s
<\flvDOWNtw a e'>4 s
}