Hello Carl,
I have a modified version of the file fret-diagrams.scm, which implements
the possibiltiy to set both "string-overhang" (in units of fret-distance)
and barre-thickness (in units of dot-radius).
I also included an example in the customizing-fretboard-fret-diagrams.ly
snippet file (and succesfully managed to run the makelsr.pl on it).
What else needs to be done? How does one update the Lilypond Internals
Reference (Sec. 3.2.53 should contain the new properties of
fret-diagram-details)?
Once I have all the changes in place, how do they eventually end up in a
review or a new version of Lilypond? I probably can't create a branch in
the repository, as only Members are able to do this. Should I send the
modified files to the list, or to a developer?
Stefan
--
Stefan E. Mueller
[email protected]
On Sat, 23 Nov 2024, Carl Sorensen wrote:
(I've added in the devel list, because this is turning into a development
question. If you're going to do development, it would be a good idea to
subscribe to lilypond-devel.)
On Sat, Nov 23, 2024 at 6:06 PM Stefan E. Mueller <[email protected]>
wrote:
Hi Carl,
I found the lilypond development repository on gitlab and the
fret-diagram.scm-file. My current installation is based on
lilypond-2.25.1-linux-x86_64.tar.gz, so I think I only have
libraries and
executables.
Every lilypond installation has a scm/ directory; you will have that in the
tree that comes out of the tar.gz file, although the files may be hidden.
So probably I need to find out how to build Lilypond from the
sources in
order to apply your changes.
If you want to make changes that are added to the upstream, you should find
out how to build LilyPond from source, because we add changes as merge
requests. But if you only want to change your installation, you can just
change the scm file in your installation (I promise you, it's there).
Anyway, let's see if I understand:
> (* size fret-distance ( (fret-count
fret-range)))) ;
this
> is the new line
> ;(* size fret-distance (1+ (fret-count
fret-range))))
;
> this was the previous line
So rather than adding a fifth fret-line, this line just stops
the string
lines at the fourth fret, right? That makes sense (and if I
really would
like to have a 5th fret line in the diagram, I could simply
enlarge the
fret-count).
Yes that is exactly right.
One could add a parameter to "fret-diagram-details" which is set
to "0" in
case the diagram should end at the 4th fret, or "1" if
string-overhang is
wanted.
I would think that the parameter would be something like string-overhang,
and it could have any value you wanted. 0 would be no overhang; 1 would be
a full fret-space overhang; 0.5 would be a half-space overhang.
Then the line would be
(* size fret-distance (string-overhang+ (fret-count
fret-range)))) ;
or something like this.
Exactly.
For what concerns the barre-thickness, the line
(* 2 scale-dot-radius))) ; New line -- change the 2 as desired
to adjust
the thickness
could be substituted by
(barre-thickness)))
where barre-thickness is a new parameter which defaults to
"scale-dot-radius". I'd probably have the "barre-thickness"
given in absolute
values rather than relative to the dot radius, but other people
might have
different needs (I hope I interpreted "scale-dot-radius"
correctly as the
radius of the dot, not sure what the "scale" means in this
context).
scale-dot-radius means it's scaled according to the size of the fret
diagram.
I think it would be fine to have barre-thickness given in units independent
of the dot size, but they should probably be either a fraction of the fret
space or a multiple of the fret line thickness, rather than an absolute line
thickness. That helps the diagrams scale properly.
For what concerns properties of individual dots, it seems
currently only
[finger-value] [color-modifier] [color] ['parenthesized
['default-paren-color]]
dot-size is configurable for all the dots in the diagram, IIRC, but not for
individual dots. Individual dot sizes could be configured just like dot
colors are (a default for the diagram, and specifics for individual dots).
It looks like all those individual configurations are found in
subtract-base-fret (it started there because you need to change the fret
location to account for shifted diagrams).
are configurable, not sure how feasible it would be to add
dot-size or
even dot-shape to that.
Shouldn't be super hard; you just have to add additional optional
parameters;,
Looks to me like you have a perfect handle on the project!
I'll help all I can.
Carl