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

stefan.e.muel...@gmx.de

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 <stefan.e.muel...@gmx.de>
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




Reply via email to