[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: LaissezVibrer tie on single note of chord
From: |
Robin Bannister |
Subject: |
Re: LaissezVibrer tie on single note of chord |
Date: |
Thu, 9 Apr 2009 15:00:23 +0200 |
Nick Payne wrote:
Is this possible without faking the chord by creating two voices?
Sometimes I like to show in my piano fingering that
one finger of a chord should temporarily act as a pivot
while the other fingers are moving to the the next chord.
Maybe there is a recognised symbol for that, I don't know.
Introducing a subsequent short note so that you can
tie to it is overkill, and distracts the (sight-)reader.
I had two problems with using laissezVibrer for this:
- it applies to the whole chord
- it affects the spacing.
So I recently cooked up the following stencil override.
The pseudo-tie is ignored by the spacing, which is what I wanted.
But that probably won't suit you.
And it's bigger; so it doesn't mix well with the real thing.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 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 0 ))))
flvUP = \once \override NoteHead #'stencil = #(flvSt UP)
flvDOWN = \once \override NoteHead #'stencil = #(flvSt DOWN)
% or \tweak #'stencil ___ditto____
flvUPtw =
#(define-music-function (parser location mus) (ly:music?)
(set! (ly:music-property mus 'tweaks) (acons 'stencil
(flvSt UP) (ly:music-property mus 'tweaks))) mus)
flvDOWNtw =
#(define-music-function (parser location mus) (ly:music?)
(set! (ly:music-property mus 'tweaks) (acons 'stencil
(flvSt DOWN) (ly:music-property mus 'tweaks))) mus)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\relative c' {
<a e'>\laissezVibrer s4
<\flvDOWNtw a \flvUPtw e'> s4
<a \flvUPtw e'> s4
<\flvDOWNtw a e'> s4
}
Cheers,
Robin