Re: In TabVoice - how to avoid: "programming error: side-axis not set for grob StrokeFinger"

2020-03-11 Thread Werner LEMBERG


>> Or maybe there is a bug somewhere?  I think not having to think
>> about the order would be quite beneficial.
> 
> I totally agree there, but the New_fingering_engraver has been
> designed that way and it's complicated enough.  It'd be great of
> course if someone had a good idea how to get rid of these
> dependencies.

Please file a bug report :-)


Werner



Re: In TabVoice - how to avoid: "programming error: side-axis not set for grob StrokeFinger"

2020-03-10 Thread Thomas Morley
Am Di., 10. März 2020 um 00:07 Uhr schrieb Torsten Hämmerle
:
>
> Thomas Morley-2 wrote
> > Any hints why this error is generated and how to avoid?
>
>
> Hi Harm,
>
> Unfortunately, applying \consists "New_fingering_engraver" does not quite do
> the trick yet, because there's a problem of sequence: it needs to come
> *before* Script_column_engraver, that's why just appending it at the end
> will not work.
>
> In order to avoid this problem of sequence, I've first removed
> Script_column_engraver and appended it again /after/ New_fingering_engraver.
> Looks funny but actually solves the problem.
>
> Alternatively, you could just completely \remove the Script_column_engraver
> if you don't need it.
>
> %
> \version "2.20.0"
>
> \layout {
>   \context {
> \TabVoice
> \remove "Script_column_engraver"
> \consists "New_fingering_engraver"  % *before* Script_column_engraver!
> \consists "Script_column_engraver"
>   }
> }
>
> \new TabVoice
>   { b-\rightHandFinger 1 -"foo" }
> %
>
> That way, all the side-axis properties needed will have been set.
>
> HTH,
> Torsten

Hi Torsten,

many thanks!

Cheers,
  Harm



Re: In TabVoice - how to avoid: "programming error: side-axis not set for grob StrokeFinger"

2020-03-10 Thread Torsten Hämmerle
Werner LEMBERG wrote
> Interesting.  Is it documented somewhere that the order of `\consists`
> calls is relevant (sometimes)?

Hi Werner,

I couldn't find anything about that in the documentation.

When experimenting with Voice and TabVoice, I noticed that Voice worked
without a problem and, most notably, the fingering routines were called
before the script routines.


In *ly/engraver-init.ly*, the Voice context definition contains a comment:

[…]
  \consists "Auto_beam_engraver"
  \consists "Grace_auto_beam_engraver"

  %% must come before Script_column_engraver.
  \consists "New_fingering_engraver"

  \consists "Chord_tremolo_engraver"
  \consists "Double_percent_repeat_engraver"
[…]


TabVoice, finally, is based on Voice but with New_fingerning_engraver
removed (but Script_column_engraver still being there).
When appending it again by using "\consists…", the order is messed up.



Werner LEMBERG wrote
> Or maybe there is a bug somewhere?  I think not having to think about
> the order would be quite beneficial.

I totally agree there, but the New_fingering_engraver has been designed that
way and it's complicated enough.  It'd be great of course if someone had a
good idea how to get rid of these dependencies.

Regards,
Torsten 






--
Sent from: http://lilypond.1069038.n5.nabble.com/User-f3.html



Re: In TabVoice - how to avoid: "programming error: side-axis not set for grob StrokeFinger"

2020-03-10 Thread Werner LEMBERG


> In order to avoid this problem of sequence, I've first removed
> Script_column_engraver and appended it again /after/
> New_fingering_engraver.  Looks funny but actually solves the
> problem.
>
> [...]
>   \remove "Script_column_engraver"
>   \consists "New_fingering_engraver" % *before* Script_column_engraver!
>   \consists "Script_column_engraver"

Interesting.  Is it documented somewhere that the order of `\consists`
calls is relevant (sometimes)?  Or rather, is there an example in the
documentation or the regression test suite that demonstrates the
importance of the right order?

Or maybe there is a bug somewhere?  I think not having to think about
the order would be quite beneficial.  I think I would prefer setting a
property or the like to get the desired result.


Werner



Re: In TabVoice - how to avoid: "programming error: side-axis not set for grob StrokeFinger"

2020-03-09 Thread Torsten Hämmerle
Thomas Morley-2 wrote
> Any hints why this error is generated and how to avoid?


Hi Harm,

Unfortunately, applying \consists "New_fingering_engraver" does not quite do
the trick yet, because there's a problem of sequence: it needs to come
*before* Script_column_engraver, that's why just appending it at the end
will not work.

In order to avoid this problem of sequence, I've first removed
Script_column_engraver and appended it again /after/ New_fingering_engraver.
Looks funny but actually solves the problem.

Alternatively, you could just completely \remove the Script_column_engraver
if you don't need it.

%
\version "2.20.0"

\layout {
  \context {
\TabVoice
\remove "Script_column_engraver"
\consists "New_fingering_engraver"  % *before* Script_column_engraver!
\consists "Script_column_engraver"
  }
}

\new TabVoice 
  { b-\rightHandFinger 1 -"foo" } 
%

That way, all the side-axis properties needed will have been set.

HTH,
Torsten




--
Sent from: http://lilypond.1069038.n5.nabble.com/User-f3.html



In TabVoice - how to avoid: "programming error: side-axis not set for grob StrokeFinger"

2020-03-08 Thread Thomas Morley
Hi all,

if I want to print StrokeFinger in TabStaff I need to consist
"New_fingering_engraver". And it works fine, at first sight...
Alas, if there is an additional markup then I get a programming error
(even if the markup isn't printed at all).

\version "2.20.0"

\new TabVoice \with { \consists  "New_fingering_engraver" }
  { b-\rightHandFinger 1 -"foo" }

>From terminal:
[...]
atest-100.ly:269:6: programming error: side-axis not set for grob StrokeFinger.
  { b
 -\rightHandFinger 1 -"foo" }
atest-100.ly:269:6: continuing, cross fingers
[...]

Any hints why this error is generated and how to avoid?


Thanks,
  Harm