2015-01-26 23:55 GMT+01:00 and...@andis59.se <and...@andis59.se>: > 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) > >
How about: \version "2.19.15" meTrans = #(define-music-function (parser location mus txt) (ly:music? string?) (if (music-is-of-type? mus 'note-event) (ly:music-set-property! mus 'articulations (cons #{ \rightHandFinger \markup\normal-text\bold\fontsize #0 $txt #} (ly:music-property mus 'articulations))) (ly:warning "mus is not a note-event, ignoring")) ;(display-scheme-music mus) #{ \transpose c cis $mus #}) { \transpose c cis c'\5 \rightHandFinger \markup\normal-text\bold \fontsize #0 "A" \meTrans c'\5 "a" } Needs further testing, though. Cheers, Harm _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user