lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Letters as Left hand fingering


From: Nick Payne
Subject: Re: Letters as Left hand fingering
Date: Wed, 16 May 2012 16:29:32 +1000
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20120430 Thunderbird/12.0.1

2012/5/15 Pierre Perol-Schneider <address@hidden>:
Hi Group,

Sometimes I need to put a letter in front of a number as a fingering.
Is there any possibility to declare "m" (for ex;) as a number so that I
could code<a-m1>  as a fingering ?
Do you mean for right hand (stroke) fingering? The following enables you to use -\A etc for strokefingering. The additional my-stroke-finger function isn't needed for this but gives better alignment of the characters when you have a succession of them:

\version "2.15.32"

% shortcuts for stroke finger indications
% can't use a or p, so use upper case for all
P = #(define-music-function (parser location) ()
    (apply make-music
        (append
            (list
                'StrokeFingerEvent
                'origin location)
            (list 'digit 1))))

I = #(define-music-function (parser location) ()
    (apply make-music
        (append
            (list
                'StrokeFingerEvent
                'origin location)
            (list 'digit 2))))

M = #(define-music-function (parser location) ()
    (apply make-music
        (append
            (list
                'StrokeFingerEvent
                'origin location)
            (list 'digit 3))))

A = #(define-music-function (parser location) ()
    (apply make-music
        (append
            (list
                'StrokeFingerEvent
                'origin location)
            (list 'digit 4))))

% better alignment of stroke fingering in a succession of fingering indications
#(define (my-stroke-finger::calc-text grob)
    (let* ((digit (ly:event-property (event-cause grob) 'digit))
        (text (ly:event-property (event-cause grob) 'text))
        (finger (vector-ref (ly:grob-property grob 'digit-names)
        (1- (max (min 5 digit) 1))))
        (direction (ly:grob-property grob 'direction)))

    (if (string? text)
        text
        (if (= direction 0)
            finger
                (make-combine-markup (cond
                    ((= direction UP) (make-transparent-markup "p"))
                    ((= direction DOWN) (make-transparent-markup "i")))
                    finger)))))

\relative c'' {
    \set fingeringOrientations = #'(left)
    \set strokeFingerOrientations = #'(up)
<c-1-\A > <c-\M > <c-\I > <c-\P >
    \override StrokeFinger #'text = #my-stroke-finger::calc-text
<c-1-\A > <c-\M > <c-\I > <c-\P >
}




Attachment: test.png
Description: PNG image


reply via email to

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