So... would anybody be able to lend a hand here please? Many thanks Luca
On Sat, Feb 12, 2022 at 7:49 PM Luca Fascione <l.fasci...@gmail.com> wrote: > Hello, > sorry for the double-post, I'm unsure whether this should go to -user or > -devel. > > I'm looking for some guidance to set up fingering on classical guitar > sheets. > > I am attaching a simple piece of music, with two engraving sets (measures > 1-5 and 6-10), one "as-is" from lilypond, the other using some trickery > involving one-note chords, purely to show a sample of what the result I'm > after (and it's an approximation), vs what I get at the moment. > > Measures 1-5 in the source look like what I am intending to type, but it > has a number of engraving defects I don't understand (you can see the beams > don't avoid the fingerings, nor they are located correctly wrt the > accidentals, the second beat of measure 5 illustrates this well. I'm not > super in love with measure 10 either, but if I understand the docs > correctly, the issue there is that the 'offset' correction is applied > post-layout, and so naturally it won't back-affect the placement of the > beams. > > I have made several other experiments, I'm just not wanting to waste > people's time. But setting Fingering.side-axis = #X seems somewhat > promising, but it seems unable to find any usable Y data about the parents, > and smashes all numbers on the B line, as well as not dealing with > accidentals. > > I have an engraving project in front of me, for which I'm more than happy > to put in the time to contribute the code to a proper solution myself, and > I really don't want to make poor use of time from folks busy with other > work, but I feel I'll need some level of guidance as to what to do. For > context I can do C++ and I can manage guile ok (I'm a software engineer for > work, I'm mostly working in the field of computer graphics). > > I was looking into this problem several years ago also, and Han-Wen > Nienhuys at the time suggested I should use a positioning callback attached > to the Fingering grobs, but I couldn't find a way to do such a thing (in > particular I can't find what property to use for this). So far I've traced > the Fingering system to be an instance of the Articulations/Scripts system, > but that's as far as I got. > > It seems to me what's needed would be to decide where the heads go, then > the accidentals, at this stage deal with the fingering and only then there > would be enough bboxes to reason about the beaming (this is the skyline > concept I think). In reasoning about how Articulations are engraved, it's > possible the order of events for fingering would be different from the > order of events in other articulations (which I think are laid out after > beams are in place, if I am not mistaken), warranting a bigger change, but > I have no idea where that is located/managed. > > Many thanks for your time, > Luca >