lilypond-devel
[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: Sat, 5 Mar 2022 17:05:22 +0100

I took a "brief" detour where I went and learned a bit about scheme
==== Interlude
FWIW, I don't recall seeing this reference in your resources about learning
Scheme, so I'll leave a comment here:

Paul Wilson (professor at UTexas, Austin) wrote some notes on Scheme approx
in 1996,
which I thought were extremely well conceived and clear. Certainly more to
the point that sicp
(which is a very interesting approach if you're learning Lisp and sw
engineering at the same time,
but I found did not make good use of my pre-acquired understanding of the
field, and just slowed me down).
I found the book very easy to follow and I loved that he teaches Scheme by
showing a series of gradually
more accurate implementations of scheme, partially in scheme. Also it
teaches Scheme in a way that is
very compatible with other programming languages, that makes it really easy
to keep it straight in one's head
what is new information or different vs what is just the same.
Unfortunately the several available copies online were never completed, so
there are several little bugs,
missing cross-references and other polish-grade features missing. But I
thought the juice of the book is certainly excellent.

It seems Prof Wilson has since retired, and various threads on the internet
indicate folks are unable to reach him.
He seems to have done work in the 90's about garbage collection in
languages.
====

Now that I can follow Scheme source with a certain level of confidence, I
went back to work on the fingering task,
and re-read Valentin's code. And thanks again kind sir.

I was thinking again about the idea of instead of pushing the fingering
"down" (say we're doing \stemsUp) because the beams are too low,
to push the beams "up" to leave space for the fingering. And I played for a
second with Stem.details.beamed-lengths
(using an override in the .ly file, inbetween the notes) which seems to
achieve what we need.
So in order to automate that, I'd like to understand better the execution
of before-line-break and after-line-break callbacks.
I'm thinking that I could set up the fingering position in
Fingering.before-line-break and alter the stem length
(details.beamed-lengths, being my current thinking) in
Stem.before-line-break.

Really the question is a meta-question: I can certainly hack at this and
see what happens, but also how I do help myself learn this better:
where is the code that handles this stuff and how do I trace the sequence
of events around this stuff?

I'm looking for a couple one-liner breadcrumbs such as "this section of the
docs" (which I tried to read without much success),
"grep <this> and <that> in the source", it's all in "scm/<couple
filenames>". Vague pointers like that are hopefully all I'll need.

Many thanks,
Luca



On Mon, Feb 21, 2022 at 6:49 PM Luca Fascione <l.fascione@gmail.com> wrote:

> Yes exactly, because of how our finger to note relation works, the
> enhancement in readability with the indication right at the head is
> enormous.
>
> L
>
> On Mon, 21 Feb 2022, 18:16 Valentin Petzel, <valentin@petzel.at> wrote:
>
>> Sure. I suppose for a guitar person having stacked fingerings on top
>> would be
>> rather confusing, as there is no monotonic relating between finger and
>> pitch.
>> As such I suppose guitar people would want to use fingerings with left or
>> right
>> orientations in chords anyway.
>>
>> Cheers,
>> Valentin
>>
>> Am Montag, 21. Februar 2022, 17:47:58 CET schrieb Luca Fascione:
>> > I suspect we might be saying the same thing, Valentin?
>> >
>> > I was saying infix can be a bit awkward if you want 'pianist' chord
>> > fingering (just a stack of numbers above or below), and that your
>> original
>> > <c d g>-1-2-3 reads quite nicely (as in: it's easy to see in your head
>> what
>> > you will get in the engraving just by looking at the source). So a
>> keyboard
>> > person wouldn't want to use infix, I don't think
>> >
>> > Whereas a guitar person might find it more attractive to use <c-1 d-2
>> g-3>
>> > because it's easier to keep it straight in your head what fingers you
>> use
>> > on what note that way
>> >
>> > L
>> >
>> > On Mon, Feb 21, 2022 at 5:42 PM Valentin Petzel <valentin@petzel.at>
>> wrote:
>> > > No, not nescessarily. If we want all Fingerings on top or below there
>> is
>> > > no real benefit of doing the chord thing. In fact doing that leads to
>> the
>> > > exact same issue of the fingering for d being next to the other ones.
>> > >
>> > > Cheers,
>> > > Valentin
>> > >
>> > > 21.02.2022 12:38:40 Luca Fascione <l.fascione@gmail.com>:
>> > >
>> > > But wouldn't you finger that as <c-1 d-2 g-3>? (Didn't check the
>> number,
>> > > I'm just meaning going infix vs postfix)
>> > >
>> > > I can see that this idea of mine does have issues for fingering your
>> way
>> > > around (which seems to me it's more of a fingering atop thing, like
>> you
>> > > would have in a keyboard score)
>> > >
>> > > L
>> > >
>> > > On Mon, 21 Feb 2022, 12:32 Valentin Petzel, <valentin@petzel.at>
>> wrote:
>> > >> Hello Luca,
>> > >>
>> > >> changing the X-parent to the NoteHead would mean that we are
>> aligning the
>> > >> Fingering horizontally wrt. the NoteHead instead of the whole
>> NoteColumn.
>> > >> This
>> > >> would then mean that if for example due to some chord some note
>> heads are
>> > >> on
>> > >> the other side of the Stem the alignment of something like <c d
>> g>-1-2-3
>> > >> would
>> > >> change (disregarding that it wouldn’t even be clear what note head to
>> > >> use).
>> > >>
>> > >> Cheers,
>> > >> Valentin
>> > >>
>> > >> Am Montag, 21. Februar 2022, 09:19:30 CET schrieb Luca Fascione:
>> > >> > Hi Thomas,
>> > >> > thanks for your comment, this helps me refine my understanding of
>> > >>
>> > >> what's
>> > >>
>> > >> > going on.
>> > >> >
>> > >> > At the same time, while I do see that for other articulations
>> (fermata,
>> > >> > appoggiato) this parenting scheme works very well,
>> > >> > I remain wondering whether for the style of layout of the fingering
>> > >> > indications that I am after, the appropriate thing to do could be
>> to
>> > >>
>> > >> change
>> > >>
>> > >> > the parenting altogether.
>> > >> >
>> > >> > If we look at chord for a second, I see the <one-note-chord> thing
>> as a
>> > >> > trick because to me even for proper chords the whole
>> FingeringColumn
>> > >>
>> > >> idea
>> > >>
>> > >> > is also a weird concept: imagine you're in say C major, and you're
>> > >>
>> > >> laying
>> > >>
>> > >> > out fingering on the left of a chord like Fm <f aes c'>: I'm very
>> > >>
>> > >> unclear
>> > >>
>> > >> > whether the most readable solution is to have the fingerings
>> stacked
>> > >>
>> > >> one
>> > >>
>> > >> > atop each other in a column (thereby more distant from f and c
>> because
>> > >>
>> > >> of
>> > >>
>> > >> > the intervening flat on the aes) or if instead the fingerings on f
>> and
>> > >>
>> > >> c
>> > >>
>> > >> > should be set tighter to their corresponding note heads and just
>> the
>> > >>
>> > >> aes
>> > >>
>> > >> > fingering be displaced left horizontally, to allow for the flat. I
>> > >>
>> > >> would
>> > >>
>> > >> > like to experiment with various possibilities there, visually. I
>> > >>
>> > >> suppose
>> > >>
>> > >> > you could still displace horizontally inside the column, and then
>> push
>> > >>
>> > >> it
>> > >>
>> > >> > all inwards closer to the chord even if the bboxes will overlap a
>> > >>
>> > >> bit... I
>> > >>
>> > >> > anticipate issues such as making sure the fingering for c' doesn't
>> > >> > interfer with the ascender on the flat glyph, also.
>> > >> >
>> > >> > Which brings me to a question: what consequence would it have to
>> > >>
>> > >> replace
>> > >>
>> > >> > the X-parent and Y-parent of the fingering to be the NoteHead
>> instead?
>> > >> > (I guess there will be a need to deal with the accidentals at a
>> > >>
>> > >> minimum)
>> > >>
>> > >> > And also: how would I go at discovering these consequences without
>> > >>
>> > >> using
>> > >>
>> > >> > too much of you guys' time?
>> > >> >
>> > >> > Thanks again,
>> > >> > Luca
>> > >> >
>> > >> > On Mon, Feb 21, 2022 at 1:22 AM Thomas Morley
>> > >> > <thomasmorley65@gmail.com>
>> > >> >
>> > >> > wrote:
>> > >> > > Am So., 20. Feb. 2022 um 22:41 Uhr schrieb Luca Fascione <
>> > >> > >
>> > >> > > l.fascione@gmail.com>:
>> > >> > > >  a) I'm looking for a way to get the fingerings where I want
>> them
>> > >> > > >  without
>> > >> > > >
>> > >> > > > using one-note-chord tricks
>> > >> > >
>> > >> > > Well, for Fingerings not in chord, like b-1 or <b dis'>-2-1
>> X-parent
>> > >> > > is NoteColumn _not_ NoteHead, Y-parent  is VerticalAxisGroup.
>> > >> > > There is no direct way from NoteHead to Fingering and vice versa.
>> > >> > >
>> > >> > > Thus putting Fingering in-chord is unavoidable, imho, even for
>> single
>> > >> > > notes.
>> > >> > > It is _not_ a trick, but a requirement.
>> > >> > >
>> > >> > > Furthermore, you say you set music for classical guitar, then
>> chords
>> > >> > > will happen anyway, although not in your example.
>> > >> > > Please note, as soon as more than one in-chord Fingering is
>> present a
>> > >> > > FingeringColumn is created. Which will make things even more
>> > >> > > complicated.
>> > >> > > See
>> > >> > > https://gitlab.com/lilypond/lilypond/-/issues/6125
>> > >> > > https://gitlab.com/lilypond/lilypond/-/merge_requests/732
>> > >> > >
>> > >> > > Sorry to be of not more help,
>> > >> > >
>> > >> > >   Harm
>>
>>


reply via email to

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