bug-lilypond
[Top][All Lists]
Advanced

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

Wrong fret label values in predefined custom fretboards containing text


From: pls
Subject: Wrong fret label values in predefined custom fretboards containing text strings
Date: Fri, 06 Nov 2015 14:17:43 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux)

Hi Harm,

looks like fret label values are not computed correctly when
predefined fretboards contain text strings instead of fingering indications.
This small issue only shows when alternate fretboards are defined and
used.  That's why my minimal example is not really tiny!

\version "2.19.31"
% Make a blank new fretboard table "e-shape-with-fingering"
#(define e-shape-with-fingering (make-fretboard-table))
% Make a blank new fretboard table "e-shape-with-movable-do"
#(define e-shape-with-movable-do (make-fretboard-table))
% Make a blank new fretboard table "countercheck"
#(define countercheck (make-fretboard-table))

% Add a new chord shape with fingering indications
\addChordShape #'f,:1.8.10.12_fingering
               #guitar-tuning
               #"1-1-(;x;3-3;2-2;1-1-);x;"

% Add a new chord shape with movable do solfège names
\addChordShape #'f,:1.8.10.12_movable-do
               #guitar-tuning
               #'((mute 1)
                 (place-fret 2 1 "So")
                 (place-fret 3 2 "Mi")
                 (place-fret 4 3 "Do")
                 (mute 5)
                 (place-fret 6 1 "Do,")
                 (barre 6 2 1))

% Add a new chord shape to countercheck whether the fret-label-value bug only 
appears in fret diagrams including text strings:
\addChordShape #'f,:1.8.10.12_countercheck
               #guitar-tuning
               #"1-1;x;3-3;2-2;1-1;x;"

% Add chords to custom-fretboard "e-shape-with-fingering"
\storePredefinedDiagram #e-shape-with-fingering
                       \chordmode { f,,:1.8.10.12 }
                       #guitar-tuning
                       #(chord-shape 'f,:1.8.10.12_fingering
                         guitar-tuning)
\storePredefinedDiagram #e-shape-with-fingering
                       \chordmode { g,,:1.8.10.12 }
                       #guitar-tuning
                       #(offset-fret 2 (
                         chord-shape 'f,:1.8.10.12_fingering
                         guitar-tuning))
\storePredefinedDiagram #e-shape-with-fingering
                       \chordmode { a,,:1.8.10.12 }
                       #guitar-tuning
                       #(offset-fret 4 (
                         chord-shape 'f,:1.8.10.12_fingering
                         guitar-tuning))

% Add chords to custom-fretboard "e-shape-with-movable-do"
\storePredefinedDiagram #e-shape-with-movable-do
                       \chordmode { f,,:1.8.10.12 }
                       #guitar-tuning
                       #(chord-shape 'f,:1.8.10.12_movable-do
                         guitar-tuning)
\storePredefinedDiagram #e-shape-with-movable-do
                       \chordmode { g,,:1.8.10.12 }
                       #guitar-tuning
                       #(offset-fret 2 (
                         chord-shape 'f,:1.8.10.12_movable-do
                         guitar-tuning))
\storePredefinedDiagram #e-shape-with-movable-do
                       \chordmode { a,,:1.8.10.12 }
                       #guitar-tuning
                       #(offset-fret 4 (
                         chord-shape 'f,:1.8.10.12_movable-do
                         guitar-tuning))

% Add chords to custom-fretboard "countercheck"
\storePredefinedDiagram #countercheck
                       \chordmode { f,,:1.8.10.12 }
                       #guitar-tuning
                       #(chord-shape 'f,:1.8.10.12_countercheck
                         guitar-tuning)
\storePredefinedDiagram #countercheck
                       \chordmode { g,,:1.8.10.12 }
                       #guitar-tuning
                       #(offset-fret 2 (
                         chord-shape 'f,:1.8.10.12_countercheck
                         guitar-tuning))
\storePredefinedDiagram #countercheck
                       \chordmode { a,,:1.8.10.12 }
                       #guitar-tuning
                       #(offset-fret 4 (
                         chord-shape 'f,:1.8.10.12_countercheck
                         guitar-tuning))

<<
  \chords {
    f1
    g1
    %a1
    f1
    g1
    %a1
    f1
    g1
    %a1
  }
  \new FretBoards {
    \chordmode {
      \set predefinedDiagramTable = #e-shape-with-fingering
      \override FretBoard.size = #'1.5
      \override FretBoard.fret-diagram-details.orientation = #'landscape
      f,,1:1.8.10.12
      g,,1:1.8.10.12
      %a,,1:1.8.10.12
      \break
      \set predefinedDiagramTable = #e-shape-with-movable-do
      f,,1:1.8.10.12
      g,,1:1.8.10.12
      %a,,1:1.8.10.12
      \break
      \set predefinedDiagramTable = #countercheck
      f,,1:1.8.10.12
      g,,1:1.8.10.12
      %a,,1:1.8.10.12
    }
  }
>>
The fret label value of the custom fretboard "e-shape-with-movable-do" is "vii" 
for both the F and the G diagram instead
of "i" and "iii" repectively.  If I'm not mistaken this is because
LilyPond adds up the offset-fret values in the \storePredefinedDiagram
commands of this custom fretboard (offset-fret (1) + 2 + 4
= 7).  The fret label value is "iii" (offset-fret (1) + 2 = 3) if you comment 
out the definitions
for the A diagram for this custom fretboard.

I couldn't produce the effect with custom fretboards containing only
fingering indications.

I hope this helps and does not sound like incomprehensible gibberish to
you!

Patrick

P.S.: I found another tiny issue with the alignment of muted string indications 
in
combination with something like ((mute 1)(place-fret 3 0 "bla")). I will
write another bug report as soon as I can.

reply via email to

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