lilypond-user
[Top][All Lists]
Advanced

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

Re: Setting up classical guitar fingerings


From: Luca Fascione
Subject: Re: Setting up classical guitar fingerings
Date: Sun, 20 Feb 2022 21:17:31 +0100

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.fascione@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

reply via email to

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