On Fri, 23 Feb 2018 at 08:43, Gianmaria Lari <gianmarial...@gmail.com>
wrote:

>
> On 23 February 2018 at 00:53, Thomas Morley <thomasmorle...@gmail.com>
> wrote:
>
>> 2018-02-22 11:03 GMT+01:00 Thomas Morley <thomasmorle...@gmail.com>:
>> > 2018-02-22 10:58 GMT+01:00 Gianmaria Lari <gianmarial...@gmail.com>:
>> >> Dear Harm,
>> >>
>> >> thank you for your really nice help. Your fix worked well and now your
>> >> example is perfect!
>> >>
>> >> I hope others will take advantage of it.
>> >>
>> >> I copy here the final working code with a screenshot.
>> >
>> > Glad you like it :)
>> >
>> > This morning I observed a certain weakness in the code, a missing
>> > safety net to be more precise.
>> > I'll have a deeper look this evening. Now I have to run for my regular
>> job ...
>> >
>> > Cheers,
>> >   Harm
>>
>> Likely safer to check whether a stencil is present before trying to
>> change it. At least it calms down my paranoia ...
>>
>> adjustFC =
>>   \override Staff.FingeringColumn.before-line-breaking =
>>     #(lambda (grob)
>>        "Sets @code{snap-radius} of @code{FingeringColumn} to @code{3} and
>>         applies @code{centered-stencil} to every fingering-stencil"
>>        (let*  ((fingerings (ly:grob-object grob 'fingerings))
>>                (fingering-ls
>>                  (if (ly:grob-array? fingerings)
>>                      (ly:grob-array->list fingerings)
>>                      '())))
>>          (ly:grob-set-property! grob 'snap-radius 3)
>>          (for-each
>>            (lambda (f)
>>              (let ((f-stil (ly:grob-property f 'stencil)))
>>                (if (ly:stencil? f-stil)
>>                    (ly:grob-set-property! f 'stencil
>>                      (centered-stencil f-stil)))))
>>            fingering-ls)))
>>
>> Cheers,
>>   Harm
>>
>
> Ciao Harm,
>
> tried your new safer code: it works perfectly like the previous :)
> I update my snippet database :))
>
> Thanks a lot, Gianmaria
>

Hi Tomas,
Using your old code to draw a circle around finger number on the left of
the note today I found a problem. When I use "\omit Fingering" the
compilation report me the error:

programming error: Infinity or NaN encountered

\omit Fingering <g'

-2 c''-\cFS-4>


Here it is a simple code showing the problem:

\version "2.19.82"
%% returns a stencil (created by `ly:text-interface::print') within a circle
circledFingerStil =
#(lambda (grob)
   (circle-stencil (ly:text-interface::print grob) 0.1 0.1))

%% tweak-short-cut
cFS =
\tweak stencil \circledFingerStil
\etc

adjustFC =
\override Staff.FingeringColumn.before-line-breaking =
#(lambda (grob)
   "Sets @code{snap-radius} of @code{FingeringColumn} to @code{3} and
        applies @code{centered-stencil} to every fingering-stencil"
   (let*  ((fingerings (ly:grob-object grob 'fingerings))
           (fingering-ls
            (if (ly:grob-array? fingerings)
                (ly:grob-array->list fingerings)
                '())))
     (ly:grob-set-property! grob 'snap-radius 3)
     (for-each
      (lambda (f)
        (let ((f-stil (ly:grob-property f 'stencil)))
          (if (ly:stencil? f-stil)
              (ly:grob-set-property! f 'stencil
                (centered-stencil f-stil)))))
      fingering-ls)))


\score
{
 { \set fingeringOrientations = #'(left) \adjustFC
  \omit Fingering <g'-2 c''-\cFS-4>
  \undo \omit Fingering
 }
  \layout {}
}

Do you know how to fix it?

Thank you, g.
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to