lilypond-devel
[Top][All Lists]
Advanced

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

Re: Issue 1029 in lilypond: \thumb should behave like other fingerings


From: Carl Sorensen
Subject: Re: Issue 1029 in lilypond: \thumb should behave like other fingerings
Date: Wed, 2 Jun 2010 17:11:46 -0600

On 6/2/10 4:57 PM, "Xavier Scheuer" <address@hidden> wrote:

> Thank you Frédéric for the time you spend on this.
> 
> 
> 2010/6/3 Carl Sorensen <address@hidden> :
> 
>> I think the answer to the other items is no.
>> 
>> thumb is a Script grob, not its own grob.  Fingering is its own grob.
>>  So I think you can't add all of the grob properties to the script
>> alist.  All those other properties are set in the definition of the
>> Script grob, in scm/define-grobs.scm.
>> 
>> If we want to have \thumb become a Fingering instead of a Script,
>> then we should change it in the parser to be handled by the
>> New_fingering_engraver.
> 
> Hi Carl!
> 
> Actually that was part of the discussion that followed my initial
> request.  This thread can be found on Frogs' archives:
> http://lilypond-frogs.2124236.n2.nabble.com/Could-a-frog-spend-20-min-to-help-
> cellist-s-thumb-tp4918234p4954272.html
> 
> I suggested/asked (later) if it was possible to make \thumb engraved
> by the (New_)Fingering_engraver , since I found it more logical from a
> user/musician point of view.
> 
> I don't have a clue how to do this since I have no development skills
> at all, but I think that the answer Neil gave me could/should be
> somewhat useful.
> 
>> 
>> That's a nice idea (and easily implemented without touching the engraver):
>> 
>> 
>> \relative c' {
>>  \override Fingering #'text =
>>  #(lambda (grob)
>>     (let ((finger-text (ly:event-property (event-cause grob) 'text)))
>>          (if (markup? finger-text)
>>                            finger-text
>>                            (fingering::calc-text grob))))
>>  c4\thumb
>> }

So this looks like a workaround that can easily go in a snippet, but it
seems to me to be too much of a hack to actually add to the source code.

So I'd guess this snippet should go in the LSR and be listed on issue 1029
as a workaround, and we should still be looking at having \thumb become a
fingering.

Perhaps the snippet would look something like this:

thumb =
#(make-music 'FingeringEvent
                     'text (markup #:fontsize 5 #:musicglyph
"scripts.thumb"))

addThumbAsFingering =
#(define-music-function (parser location) '()
    #{
      \override Fingering #'text =
        #(lambda (grob)
          (let ((finger-text (ly:event-property (event-cause grob) 'text)))
             (if (markup? finger-text)
                 finger-text
                 (fingering::calc-text grob))))
    #})

\relative c' {
  \addThumbAsFingering
   c4\thumb
}

Thanks,

Carl




reply via email to

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