[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: guide finger
From: |
David Nalesnik |
Subject: |
Re: guide finger |
Date: |
Sun, 19 Aug 2012 16:44:08 -0500 |
Hello,
On Sun, Aug 19, 2012 at 2:04 PM, pabuhr <address@hidden> wrote:
> In *classical* guitar-music, there is a finger augmentation called a "guide
> finger" indicating left-hand shifting. Nick Payne uses a mechanism based on
> the
> glissando.
>
> I found this code written for a finger shift on a violin, which I like because
> it handles finger location and color, etc. However, for guitar, there are 3
> kinds of finger shift: up, neutral and down, corresponding to about 30 degrees
> up, flat and 30 degrees down for the "-" character.
>
> So I can't make the changes to do what I want. 8-( I have sketched out what I
> would like, which is 2 default parameters, the guide character and the
> rotation
> amount, and to rotate this character before concatenating it with the string
> number.
>
> Any help would be greatly appreciated.
With 2.14.2, I come up with the code below. I've added a function
which lets you specify the angle.
You might consider upgrading to one of the current development
versions if you're interested in writing functions like this. There
is now quite a bit more flexibility and power to music functions
(thanks to David Kastrup).
HTH,
David
%%%%%%%%%%%%%%%%%%
\version "2.14.2"
#(define (gx rotate-guide fingering)
(let ((music (make-music 'FingeringEvent))
(finger (ly:music-property fingering 'digit))
(guide-char #x2013))
(set! (ly:music-property music 'tweaks)
(acons 'stencil
(lambda (grob)
(grob-interpret-markup grob
(make-concat-markup
(list
(make-rotate-markup rotate-guide
(make-char-markup guide-char))
(number->string finger)))))
(ly:music-property music 'tweaks)))
music))
gn = #(define-music-function (parser location fingering) (ly:music?)
(gx 0 fingering))
gu = #(define-music-function (parser location fingering) (ly:music?)
(gx 30 fingering))
gd = #(define-music-function (parser location fingering) (ly:music?)
(gx -30 fingering))
% BONUS!
ggg = #(define-music-function (parser location slope fingering)
(number? ly:music?) (gx slope fingering))
\relative c' {
\override Fingering #'color = #red
\set fingeringOrientations = #'(left)
<c-\gn-3 >4
c4^\gn^3
c4-\gn-3
c4_\gn_3
\set fingeringOrientations = #'(right)
<c-\gn-3>4
<c-\gu-3>4
c4^\gu^3
c4-\gd-3
c4_\gd_3
<c-\ggg #-15 -3>4
c4^\ggg #15 ^3
c4-\ggg #45 -3
c4_\ggg #-45 _3
}
- guide finger, pabuhr, 2012/08/19
- Re: guide finger,
David Nalesnik <=