Re: In TabVoice - how to avoid: "programming error: side-axis not set for grob StrokeFinger"
>> 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"
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"
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"
> 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"
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"
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