[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


reply via email to

[Prev in Thread] Current Thread [Next in Thread]