On 1/18/2026 4:42 AM, Tina Petzel wrote:
in theory you can redefine the internal list like this:
%% Redefine `fret-partials`
#(module-set!
(resolve-module '(lily))
'fret-partials
'(("0" . 0)
("12" . 1)
("7" . 2)
("19" . 2)
("5" . 3)
("24" . 3)
("4" . 4)
("9" . 4)
("16" . 4)
("3" . 5)
("3.2" . 5) ;; !!
("2.7" . 6)
("2.8" . 6) ;; !!
("2.3" . 7)
("2" . 8)))
Of course this is some kind of monkey-patching, but in such cases I
think monkey-patching should be reasonable.
Thanks, I monkey-patched node-position as follows:
%% refdefine node-position (from tablature.scm)
#(module-set!
(resolve-module '(lily))
'node-positions
(vector 12
7 19
5 12 24
3.9 8.8 16 28
3.2 7 12 19 31
2.7 5.8 9.7 14.7 21.7 33.7
2.3 5 8.1 12 17 24 36
2.05 4.4 7 10.2 14 19 26 38 ))
For higher harmonics we see more and more how rounding becomes an issue.
Now, of course an experienced player will know this. But an
experienced player won’t require Tabs in the first place. So really
this should be beginner friendly, and then giving a hint where to get
the harmonic properly would be good I think.
Thanks for all the detailed analysis that demonstrates these rounding
effects.
My intended use case is with beginning players, but showing my 16-bar
example of a pentatonic melody all in natural harmonics still challenges
experienced players. Few guitarists sightread even the lower harmonics
comfortably; it's so counterintuitive to normal reading. And staff
notation for the higher harmonics is high enough to be beyond the range
of fretted notes, so tab can help even experienced players read higher
versions of my 16-bar example.
Of course from a usefulness-perspective it makes sense that this
indications get more detailed the higher up the neck they are. E.g. if
we want to have at most 1.5% error in rounding position we approximate
these using
12, 7, 5, 3.9, 3.2, 2.7, 2.3, 2.05, 1.8, 1.65, 1.5, 1.4, 1.3, 1.2
Agreed. You'll notice that I used your 2.05 in my node-positions, just
because 2 or 2.0 could suggest an exact integer. For my purposes,
seeing the decimals reminds the student that it's an approximation.
A calculation like this can also be done directly in Lilypond:
Wow! I'll have to study that scheme. I was musing about doing the
math in \postscript where I compute my fretboard diagrams.
Thanks to you and Harm, my student instructions will be much more helpful!
Jeff
--
o_ Jeff Olson
(\___\/_____/) jjocanoe
~ ~ ~ / ~ ~ ~ ~ @gmail.com