lilypond-user
[Top][All Lists]
Advanced

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

Re: define-music-function -> unexpected EVENT_FUNCTION


From: address@hidden
Subject: Re: define-music-function -> unexpected EVENT_FUNCTION
Date: Mon, 26 Jan 2015 23:55:27 +0100
User-agent: Mozilla/5.0 (Windows NT 6.1; rv:31.0) Gecko/20100101 Thunderbird/31.4.0

Hello Klaus,

On 2015-01-26 22:08, Klaus Blum wrote:
Hi Anders,

the "\rightHandFinger" command can only be used for a single note, not for a
whole "music" expression that could also be a chord or a sequence of notes
and rests.
Replacing "ly:music?" by "ly:pitch?" should do the trick:

Aha! I thought about this but I never tried it...

Can you please direct me to where in the documentation this is specified!

%
---------------------------------------------------------------------------------
\version "2.19.15"

meTrans =
#(define-music-function (parser location mus txt) (ly:pitch? string?)
    #{
      \transpose c cis $mus \rightHandFinger
\markup\normal-text\bold\fontsize #0 $txt
    #}
    )


   {
   \transpose c cis c' \rightHandFinger \markup\normal-text\bold\fontsize #0
"A"
   \meTrans c' "a"
   }
%
---------------------------------------------------------------------------------
This function is almost what I need. I would need to be able to write
{
        < e' \meTrans a'\5 "A" \meTrans cis'\6 "F" >2. e'4
}

Which doesn't work. Since \5 isn't a pitch it's a string-number (Yes I'm doing Tab)

It doesn't seems like a'\5 counts as a ly:music. Just the a' is the music and \5 is a string-number.


If you want to transpose more than just one note, you should split things
up:
One function to apply the fingering markup on single notes, another function
to transpose the whole music expression:


If it's possible I would like to have one function only.
I have already made some shortcuts that has the txt param as a constant.
So I can call
\pedA c'

Where pedA =
#(define-music-function (parser location mm)(ly:pitch?)
          #{ \pedalAction "A" $mm #})

In the real code I have switched the params and meTrans is called pedalAction

so the music above will be written
< e' \pedA a'\5  \pedF cis'\6  >2. e'4

(Yes, I'm still fiddling with my Pedal Steel Guitar Tab mode)



--
English isn't my first language.
So any error or strangeness is due to the translation.
Please correct my English so that I may become better.



reply via email to

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