2014-12-23 3:58 GMT+01:00 Stan Mulder <st4588...@earthlink.net>:
> Thomas Morley <thomasmorley65 <at> gmail.com> writes:
>
>> > I am using my own plectrum banjo fretboard definition. I wonder if that can
>> > be incorporated into your code? I will post an example of my file below.
>>
>> I'll have a look tomorrow. Right now it's in the middle of the night here ...
>> In any case I'd need to know how'plectrumTuning' is defined.
>
>
> In the file usr/share/lilypond/current/ly/string-tunings-init.ly I added the
> following lines:
>
> %% tunings for 4-string banjo
> \makeDefaultStringTuning #'plectrumTuning \stringTuning <c g b d'>
>
>
>
>> > The other question is, is it possible to output the images with more
>> > descriptive filenames, such as
>> >
>> > basefilename-C.png
>> > basefilename-C6.png
>> > basefilename-C7.png
>> > basefilename-Cm7.png
>> > basefilename-Cdim7.png
>>
>> Well, I have no good idea how to achieve it.
>> Would be great to read the names for the chords from 'somewhere'. Then
>> they could appended to the filenames.
>> Though I've no idea where to look for that 'somewhere'



Hi,

I now come up with the attached code/files.

Main problem was the naming.
We had no possibility to derive a chord-name from a list of pitches,
neither as a markup, nor as a string.
Therefore I wrote 'simple-chord-names.ly'. The definition
'simple-chord-names' in there will put out simple strings, which can
then ofcourse be added to the book-names.

No clue if it all work in any case. Needs wide testing. For sure there
is a large amount for improvements...


To get the output, compile chords-02.ly (after reading the Usage).
predefined-plectrum-banjo-fretboards.ly comes from your post here:
http://lilypond.1069038.n5.nabble.com/Trying-to-creating-a-plectrum-banjo-fretboard-td169329.html#a169339



HTH,
  Harm
\version "2.19.15"

#(define (remove-step x ps)
  "Copy PS, but leave out the Xth step."
  (if (null? ps)
      '()
      (let* ((t (remove-step x (cdr ps))))
        (if (= (- x 1) (ly:pitch-steps (car ps)))
            t
            (cons (car ps) t)))))

#(define (natural-chord-alteration p)
  "Return the natural alteration for step P."
  (if (= (ly:pitch-steps p) 6)
      FLAT
      0))

#(define (pitch-step p)
  "Musicological notation for an interval.  Eg. C to D is 2."
  (+ 1 (ly:pitch-steps p)))

#(define (split-at-predicate pred lst)
  "Split LST into two lists at the first element that returns #f for
  (PRED previous_element element).  Return the two parts as a pair.
  Example: (split-at-predicate < '(1 2 3 2 1)) ==> ((1 2 3) . (2 1))"
  (let ((i (and (pair? lst)
                (list-index (lambda (x y) (not (pred x y)))
                            lst
                            (cdr lst)))))
    (if i
        (call-with-values
            (lambda () (split-at lst (1+ i)))
          cons)
        (list lst))))

#(define (get-step x ps)
  "Does PS have the X step? Return that step if it does."
  (if (null? ps)
      #f
      (if (= (- x 1) (ly:pitch-steps (car ps)))
          (car ps)
          (get-step x (cdr ps)))))

#(define (conditional-string-downcase str condition)
  (if condition
      (string-downcase str)
      str))

#(define-public (accidental->string alteration)
   (cond ((= alteration FLAT) "♭")         ;; or "b"
         ((= alteration DOUBLE-FLAT) "𝄫")  ;; or "bb"
         ((= alteration SHARP) "♯")        ;; or "#"
         ((= alteration DOUBLE-SHARP) "𝄪") ;; or "##"
         (else "")))

#(define-public (note-name->string pitch lowercase?)
  "Return pitch as string for @var{pitch}."
    (string-append
       (conditional-string-downcase
        (vector-ref #("C" "D" "E" "F" "G" "A" "B") (ly:pitch-notename pitch))
        lowercase?)
        (accidental->string (ly:pitch-alteration pitch))))  
    
%% What a shit :((
%% Works, though
#(define (look-for-string lst strg)
   (if (null? (cdr lst))
       (let ((arg (if (list? (car lst)) 
                      (last (car lst)) 
                      (car lst))))
         (string-append 
           strg
           (if (string? arg)
               arg
               "")))
       (cond ((string? (car lst))
              (string-append (car lst) strg)
              (look-for-string (cdr lst) strg)
              )
             ((list? (car lst))
              (string-append
                (string-concatenate (filter! string? (car lst)))
                strg)
              (look-for-string (cdr lst) strg)
              )
             ((list? (cadr lst))
              (look-for-string (cadr lst) strg)
              )
             (else (string-append "?" strg))
       )))
       
%#(newline)
%#(display-scheme-music ignatzekExceptions)

#(define transformed-ignatzek-exceptions
  (map
    (lambda (e)
      (list (car e) (look-for-string (cdr e) "")))
    ignatzekExceptions))
    
  
chord-note-namer = #'()
minor-chord-modifier = #"m"
major-seven-symbol = #"7+"
chord-name-separator = #" "
slash-chord-separator = #"/"
additional-pitch-prefix = #""
chord-prefix-spacer = #0
chord-name-lowercase-minor = ##f
chord-name-exceptions = #transformed-ignatzek-exceptions

#(define-public (simple-chord-names in-pitches bass inversion)
                
  (define (remove-uptil-step x ps)
    "Copy PS, but leave out everything below the Xth step."
    (if (null? ps)
        '()
        (if (< (ly:pitch-steps (car ps)) (- x 1))
            (remove-uptil-step x (cdr ps))
            ps)))

  (define name-root note-name->string)
  (define name-note
      (if (null? chord-note-namer)
          note-name->string
          chord-note-namer))

  (define (is-natural-alteration? p)
    (= (natural-chord-alteration p) (ly:pitch-alteration p)))

  (define (ignatzek-format-chord-name
           root
           prefix-modifiers
           main-name
           alteration-pitches
           addition-pitches
           suffix-modifiers
           bass-pitch
           lowercase-root?)

    "Format for the given (lists of) pitches.  This is actually more
work than classifying the pitches."

    (define (filter-main-name p)
      "The main name: don't print anything for natural 5 or 3."
      (if
       (or (not (ly:pitch? p))
           (and (is-natural-alteration? p)
                (or (= (pitch-step p) 5)
                    (= (pitch-step p) 3))))
       '()
       (list (name-step p))))

    (define (glue-word-to-step word x)
      (string-append word (name-step x)))

    (define (suffix-modifier->markup mod)
      (if (or (= 4 (pitch-step mod))
              (= 2 (pitch-step mod)))
          (glue-word-to-step "sus" mod)
          (glue-word-to-step "huh" mod)))

    (define (prefix-modifier->markup mod)
      (if (and (= 3 (pitch-step mod))
               (= FLAT (ly:pitch-alteration mod)))
          (if lowercase-root?
              ""
              minor-chord-modifier)
          "huh"))

    (define (filter-alterations alters)
      "Filter out uninteresting (natural) pitches from ALTERS."

      (define (altered? p)
        (not (is-natural-alteration? p)))

      (if
       (null? alters)
       '()
       (let* ((lst (filter altered? alters))
              (lp (last-pair alters)))

         ;; we want the highest also if unaltered
         (if (and (not (altered? (car lp)))
                  (> (pitch-step (car lp)) 5))
             (append lst (last-pair alters))
             lst))))

    (define (name-step pitch)
      (define (step-alteration pitch)
        (- (ly:pitch-alteration pitch)
           (natural-chord-alteration pitch)))

      (let* ((num-markup (number->string (pitch-step pitch)))
             (args (list num-markup))
             (total 
               (if (= (ly:pitch-alteration pitch) 0)                                    
                   (if (= (pitch-step pitch) 7)                                    
                       (list major-seven-symbol)                                   
                       args)                                                       
                   (cons (accidental->string (step-alteration pitch)) args))))
        (string-concatenate total)))

    (let* ((sep chord-name-separator)
           (slashsep slash-chord-separator)
           (root-markup (name-root root lowercase-root?))
           (add-pitch-prefix additional-pitch-prefix)
           (add-markups (map (lambda (x) (glue-word-to-step add-pitch-prefix x))
                             addition-pitches))
           (filtered-alterations (filter-alterations alteration-pitches))
           (alterations (map name-step filtered-alterations))
           (suffixes (map suffix-modifier->markup suffix-modifiers))
           (prefixes (map prefix-modifier->markup prefix-modifiers))
           (main-markups (filter-main-name main-name))
           ;; keeping the name, although it isn't raised anymore
           (to-be-raised-stuff (string-append
                                 (string-concatenate main-markups)
                                 (string-concatenate alterations)
                                 (string-concatenate suffixes)
                                 (string-concatenate add-markups)))
           (base-stuff (if (ly:pitch? bass-pitch)
                           (list slashsep (name-note bass-pitch #f))
                           '())))

      (set! base-stuff
            (append
             (list root-markup
                   (string-concatenate prefixes)
                   to-be-raised-stuff)
             base-stuff))
      (string-concatenate base-stuff)))

  (define (ignatzek-format-exception
           root
           exception-markup
           bass-pitch
           lowercase-root?)

    (string-concatenate
     `(
       ,(name-root root lowercase-root?)
       ,exception-markup
       .
       ,(if (ly:pitch? bass-pitch)
            (list slash-chord-separator
                  (name-note bass-pitch #f))
            '()))))

  (let* ((root (car in-pitches))
         (pitches (map (lambda (x) (ly:pitch-diff x root)) (cdr in-pitches)))
         (lowercase-root?
          (and chord-name-lowercase-minor
               (let ((third (get-step 3 pitches)))
                 (and third (= (ly:pitch-alteration third) FLAT)))))
         (exceptions chord-name-exceptions)
         (exception 
           (let ((except (assoc-get pitches exceptions)))
             (if except
                 (car except)
                 except)))
         (prefixes '())
         (suffixes '())
         (add-steps '())
         (main-name #f)
         (bass-note
          (if (ly:pitch? inversion)
              inversion
              bass))
         (alterations '()))
           
  (let ((result
    (if exception
        (ignatzek-format-exception root exception bass-note lowercase-root?)
        
        (begin
          ;; no exception.
          ;; handle sus4 and sus2 suffix: if there is a 3 together with
          ;; sus2 or sus4, then we explicitly say add3.
          (for-each
           (lambda (j)
             (if (get-step j pitches)
                 (begin
                   (if (get-step 3 pitches)
                       (begin
                         (set! add-steps (cons (get-step 3 pitches) add-steps))
                         (set! pitches (remove-step 3 pitches))))
                   (set! suffixes (cons (get-step j pitches) suffixes)))))
           '(2 4))

          ;; do minor-3rd modifier.
          (if (and (get-step 3 pitches)
                   (= (ly:pitch-alteration (get-step 3 pitches)) FLAT))
              (set! prefixes (cons (get-step 3 pitches) prefixes)))

          ;; lazy bum. Should write loop.
          (cond
           ((get-step 7 pitches) (set! main-name (get-step 7 pitches)))
           ((get-step 6 pitches) (set! main-name (get-step 6 pitches)))
           ((get-step 5 pitches) (set! main-name (get-step 5 pitches)))
           ((get-step 4 pitches) (set! main-name (get-step 4 pitches)))
           ((get-step 3 pitches) (set! main-name (get-step 3 pitches))))

          (let* ((3-diff? (lambda (x y)
                            (= (- (pitch-step y) (pitch-step x)) 2)))
                 (split (split-at-predicate
                         3-diff? (remove-uptil-step 5 pitches))))
            (set! alterations (append alterations (car split)))
            (set! add-steps (append add-steps (cdr split)))
            (set! alterations (delq main-name alterations))
            (set! add-steps (delq main-name add-steps))

            ;; chords with natural (5 7 9 11 13) or leading subsequence.
            ;; etc. are named by the top pitch, without any further
            ;; alterations.
            (if (and
                 (ly:pitch? main-name)
                 (= 7 (pitch-step main-name))
                 (is-natural-alteration? main-name)
                 (pair? (remove-uptil-step 7 alterations))
                 (every is-natural-alteration? alterations))
                (begin
                  (set! main-name (last alterations))
                  (set! alterations '())))

            (ignatzek-format-chord-name
             root prefixes main-name alterations add-steps suffixes bass-note
             lowercase-root?))))))
    ;(newline)(display result)
    result)))
    
%% TEST
%  
% \include "predefined-guitar-fretboards.ly"
%   
% %% Adding a simple chord-name as last entry of 
% %% every sublist of default-fret-table
% #(for-each
%   (lambda (e)
%     (newline)
%     (write
%      (cons e
%       (simple-chord-names
%         (cdar e)
%         '()
%         '()
%         ))))
%   (hash-table->alist default-fret-table))
%   

\version "2.18.0"

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%% DESCRIPTION
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 
%% This Code puts out several books, containing a FretBoard and the ChordName.
%% The chord-definitions are taken from 'default-fret-table', others may be
%% added.
%%
%% A simple name is added to each entry of 'default-fret-table'.
%% See file "simple-chord-names.ly"
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%% USAGE
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%% Compiling it with:
%%     lilypond -dpreview -dresolution=200 file.ly
%% (or whatever resolution is apropiate)
%% will result in several .eps-, .pdf- and .png-files, which are deleted.
%% TODO: Would be better not to create those files at all. 
%%       Though, I don't know how.
%%
%% I'd recommend to create a new folder in the location, where you store these
%% files, naming it "chord-images".
%% Then compile with:
%% lilypond --output=chord-images -dpreview -dresolution=200 chords.ly 
%% if you want small png-files (or whatever resolution is apropiate)
%%

#(use-modules (ice-9 pretty-print))

\include "simple-chord-names.ly"

\include "predefined-guitar-fretboards.ly"

\include "predefined-plectrum-banjo-fretboards.ly"

#(define my-named-default-fret-table
   (map
    (lambda (e)
       (append 
        e
        (list
         (simple-chord-names
           (cdar e)
           '()
           '()
           ))
          ))
    (hash-table->alist default-fret-table)))
    
%#(pretty-print (take my-named-default-fret-table 2))

%% Get the pitches for each chord from 'default-fret-table'
%% stored in a list, add tuning and name.
%% Are there other chords? Stored elsewhere?
    
 #(define chords-and-tunings-and-names
   (map 
     (lambda (e) (list (cdar e) (caar e) (last e)))
     my-named-default-fret-table))
    
%#(newline)
%#(pretty-print (car chords-and-tunings-and-names))
    
%% Make an EventChord from each list of pitches from 
%%    'my-named-default-fret-table'
%% Duration is hardcoded
%% Store them in a list, add tuning and name.
     
#(define my-chrds-and-tunings-and-names
   (map
     (lambda (x)
      (list
        (make-event-chord
          (map
            (lambda (p)
              (make-music
                'NoteEvent
                'duration (ly:make-duration 0)
                'pitch p))
             (car x)))
         (second x)
         (last x)))
     chords-and-tunings-and-names))
    
%#(newline)
%#(display-scheme-music (car my-chrds-and-tunings-and-names))
                                                                                
%% Make a list of scores containing 'ChordNames' and 'FretBoards' of each
%% chord from 'my-chords', add tuning and name.

fretprop = 
\override FretBoard.fret-diagram-details.finger-code = #'in-dot
  
#(define scrs-with-tunings-and-names
   (map
     (lambda (c)
       (list
         #{
           \score {
             <<
             \new ChordNames { $(car c) }
             \new FretBoards { 
             	   \set Staff.stringTunings = #(second c)
             	   \fretprop $(car c)
             }
             >>
           }
         #}
         (second c)
         (last c)))
     my-chrds-and-tunings-and-names))

     
%% Get the name of the current input-file
%myname = #(ly:parser-output-name parser)

%% put out a book for each score
%% A simple descriptive name is added to the file-name
writebooks =
#(define-void-function (parser location) ()
 (for-each
  (lambda (score)
   (let* ((my-new-book 
            (ly:make-book 
              $defaultpaper
              $defaultheader
              (car score)))
          (naming
            (format "~a-~a-~a" 
               (cond ((eq? (second score) plectrumTuning)
                      "banjo")
                     ((eq? (second score) guitar-tuning)
                      "guitar")
                     (else ""))
               "chord"
               (last score)))) 
     (display "\n\n")(pretty-print naming)
     (ly:book-process
        my-new-book
        $defaultpaper
        $defaultlayout
        naming)
  
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;        
;;  Delete unwanted files:
;; 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 
;;  BE VERY CAREFUL WHAT YOU DELETE !!!!!!
;; 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    
     ;;;; comment the code which deletes a file-type, if you want to keep it
        
     ;; delete preview .eps-files
     (for-each
      (lambda (i)
       (if (file-exists? (format "~a.preview.eps" naming))
           (delete-file (format "~a.preview.eps" naming))))
       (iota (length scrs-with-tunings-and-names)))
     ;; delete preview .pdf-files
     (for-each
      (lambda (i)
       (if (file-exists? (format "~a.preview.pdf" naming))
           (delete-file (format "~a.preview.pdf" naming))))
       (iota (length scrs-with-tunings-and-names)))
     ;; delete preview .png-files
     ;(for-each
     ; (lambda (i)
     ;  (if (file-exists? (format "~a.preview.png" naming))
     ;      (delete-file (format "~a.preview.png" naming))))
     ;  (iota (length scrs-with-tunings-and-names)))
     ;; delete default .pdf-files
     (for-each
      (lambda (i)
       (if (file-exists? (format "~a.pdf" naming))
           (delete-file (format "~a.pdf" naming))))
       (iota (length scrs-with-tunings-and-names)))
        ))
        
    ;; 'scrs-with-tunings-and-names' contains 235 scores!!
    ;; For testing comment it and uncomment the next code-line
    scrs-with-tunings-and-names
    ;; for testing comment the previous line and use the following list, 
    ;; containing a single chord
    ;(list (first scrs-with-tunings-and-names))
    ))

\writebooks



\version "2.16.0"


%%%% sources:
%%%%   mandolincafe website (http://www.mandolincafe.com/),
%%%%   sheetmusicdigital website (http://www.sheetmusicdigital.com/)

%%%% This file is a fretboard definition for plectrum banjo where strings 
%%%% are tuned C G B D
%%%% by Stan Mulder 2014

% chord definitions require default pitchnames
\languageSaveAndChange #default-language

#(define plectrumTuning (four-string-banjo banjo-c-tuning))

%% C
\storePredefinedDiagram #default-fret-table \chordmode {c}
#plectrumTuning  #"o;o;1;2;" % C
\storePredefinedDiagram #default-fret-table \chordmode {c:m}
#plectrumTuning  #"o;o;1;1;" % Cm
\storePredefinedDiagram #default-fret-table \chordmode {c:6}
#plectrumTuning  #"o;2;1;2;" % C6
\storePredefinedDiagram #default-fret-table \chordmode {c:7}
#plectrumTuning  #"4;3;1;5;" % C7
\storePredefinedDiagram #default-fret-table \chordmode {c:m7}
#plectrumTuning  #"o;3;4;5;" % Cm7
\storePredefinedDiagram #default-fret-table \chordmode {c:m7+}
#plectrumTuning  #"o;o;o;1;" % Cm-maj7
\storePredefinedDiagram #default-fret-table \chordmode {c:m6}
#plectrumTuning  #"o;2;1;1;" % Cm6
\storePredefinedDiagram #default-fret-table \chordmode {c:aug}
#plectrumTuning  #"o;1;1;2;" % C+
\storePredefinedDiagram #default-fret-table \chordmode {c:aug7}
#plectrumTuning  #"4;3;5;6;" % C+7
\storePredefinedDiagram #default-fret-table \chordmode {c:7.5-}
#plectrumTuning  #"o;3;5;4;" % C7b5
\storePredefinedDiagram #default-fret-table \chordmode {c:maj7}
#plectrumTuning  #"o;o;o;2;" % Cmaj7
\storePredefinedDiagram #default-fret-table \chordmode {c:maj9}
#plectrumTuning  #"2;o;o;2;" % Cmaj9
\storePredefinedDiagram #default-fret-table \chordmode {c:9}
#plectrumTuning  #"o;3;3;2;" % C9
\storePredefinedDiagram #default-fret-table \chordmode {c:sus4}
#plectrumTuning  #"o;o;1;3;" % Csus4
\storePredefinedDiagram #default-fret-table \chordmode {c:sus4.7}
#plectrumTuning  #"5;3;1;5;" % C7sus4
\storePredefinedDiagram #default-fret-table \chordmode {c:7.9-}
#plectrumTuning  #"4;3;2;5;" % C7b9
\storePredefinedDiagram #default-fret-table \chordmode {c:dim}
#plectrumTuning  #"3;5;1;4;" % Cdim
\storePredefinedDiagram #default-fret-table \chordmode {c:dim7}
#plectrumTuning  #"3;2;1;4;" % Cdim7
\storePredefinedDiagram #default-fret-table \chordmode {c:m7.5-}
#plectrumTuning  #"3;3;1;4;" % Cø
\storePredefinedDiagram #default-fret-table \chordmode {c:11}
#plectrumTuning  #"o;3;3;3;" % C11
\storePredefinedDiagram #default-fret-table \chordmode {c:13}
#plectrumTuning  #"o;2;4;6;" % C13


%% Db
\storePredefinedDiagram #default-fret-table \chordmode {des}
#plectrumTuning  #"1;1;2;3;" % Db
\storePredefinedDiagram #default-fret-table \chordmode {des:m}
#plectrumTuning  #"1;1;2;2;" % Dbm
\storePredefinedDiagram #default-fret-table \chordmode {des:6}
#plectrumTuning  #"1;3;2;3;" % Db6
\storePredefinedDiagram #default-fret-table \chordmode {des:7}
#plectrumTuning  #"1;1;o;3;" % Db7
\storePredefinedDiagram #default-fret-table \chordmode {des:m7}
#plectrumTuning  #"1;1;o;2;" % Dbm7
\storePredefinedDiagram #default-fret-table \chordmode {des:m6}
#plectrumTuning  #"1;3;2;2;" % Dbm6
\storePredefinedDiagram #default-fret-table \chordmode {des:aug}
#plectrumTuning  #"1;2;2;3;" % Db+
\storePredefinedDiagram #default-fret-table \chordmode {des:aug7}
#plectrumTuning  #"1;2;o;3;" % Db+7
\storePredefinedDiagram #default-fret-table \chordmode {des:7.5-}
#plectrumTuning  #"1;o;o;3;" % Db7b5
\storePredefinedDiagram #default-fret-table \chordmode {des:maj7}
#plectrumTuning  #"1;1;1;3;" % Dbmaj7
\storePredefinedDiagram #default-fret-table \chordmode {des:maj9}
#plectrumTuning  #"1;1;1;1;" % Dbmaj9
\storePredefinedDiagram #default-fret-table \chordmode {des:9}
#plectrumTuning  #"3;1;o;3;" % Db9
\storePredefinedDiagram #default-fret-table \chordmode {des:7sus}
#plectrumTuning  #"o;4;2;4;" % Db7sus4
\storePredefinedDiagram #default-fret-table \chordmode {des:7.9-}
#plectrumTuning  #"2;1;o;3;" % Db7b9
\storePredefinedDiagram #default-fret-table \chordmode {des:dim}
#plectrumTuning  #"4;3;2;5;" % Dbdim
\storePredefinedDiagram #default-fret-table \chordmode {des:11}
#plectrumTuning  #"3;4;2;4;" % Db11
\storePredefinedDiagram #default-fret-table \chordmode {des:13}
#plectrumTuning  #"3;3;1;3;" % Db13 (8th fret)


%% D
\storePredefinedDiagram #default-fret-table \chordmode {d}
#plectrumTuning  #"2;2;3;4;" % D
\storePredefinedDiagram #default-fret-table \chordmode {d:m}
#plectrumTuning  #"2;2;4;4;" % Dm
\storePredefinedDiagram #default-fret-table \chordmode {d:6}
#plectrumTuning  #"1;1;o;4;" % D6
\storePredefinedDiagram #default-fret-table \chordmode {d:7}
#plectrumTuning  #"2;2;1;4;" % D7
\storePredefinedDiagram #default-fret-table \chordmode {d:m7}
#plectrumTuning  #"2;2;1;3;" % Dm7
\storePredefinedDiagram #default-fret-table \chordmode {d:m6}
#plectrumTuning  #"2;2;o;3;" % Dm6
\storePredefinedDiagram #default-fret-table \chordmode {d:aug}
#plectrumTuning  #"2;3;3;4;" % D+
\storePredefinedDiagram #default-fret-table \chordmode {d:aug7}
#plectrumTuning  #"o;3;3;4;" % D+7
\storePredefinedDiagram #default-fret-table \chordmode {d:7.5-}
#plectrumTuning  #"o;1;3;4;" % D7b5
\storePredefinedDiagram #default-fret-table \chordmode {d:maj7}
#plectrumTuning  #"2;2;2;4;" % Dmaj7
\storePredefinedDiagram #default-fret-table \chordmode {d:maj9}
#plectrumTuning  #"4;2;2;4;" % Dmaj9
\storePredefinedDiagram #default-fret-table \chordmode {d:9}
#plectrumTuning  #"2;2;1;2;" % D9
\storePredefinedDiagram #default-fret-table \chordmode {d:7sus}
#plectrumTuning  #"2;o;1;o;" % D7sus4
\storePredefinedDiagram #default-fret-table \chordmode {d:7.9-}
#plectrumTuning  #"3;2;1;o;" % D7b9
\storePredefinedDiagram #default-fret-table \chordmode {d:dim}
#plectrumTuning  #"2;1;3;3;" % Ddim
\storePredefinedDiagram #default-fret-table \chordmode {d:dim7}
#plectrumTuning  #"2;1;o;3;" % Ddim7
\storePredefinedDiagram #default-fret-table \chordmode {d:11}
#plectrumTuning  #"4;5;3;5;" % D11
\storePredefinedDiagram #default-fret-table \chordmode {d:13}
#plectrumTuning  #"3;3;1;3;" % D13 (9th fret)


%% D#
\storePredefinedDiagram #default-fret-table \chordmode {dis:dim7}
#plectrumTuning  #"3;2;1;4;" % D#dim7


%% Eb
\storePredefinedDiagram #default-fret-table \chordmode {ees:m7}
#plectrumTuning  #"3;3;2;4;" % Ebm7
\storePredefinedDiagram #default-fret-table \chordmode {ees:m}
#plectrumTuning  #"3;3;4;4;" % Ebm
\storePredefinedDiagram #default-fret-table \chordmode {ees:m7.5-}
#plectrumTuning  #"3;2;2;4;" % Ebø
\storePredefinedDiagram #default-fret-table \chordmode {ees:7}
#plectrumTuning  #"3;3;2;5;" % Eb7


%% E
\storePredefinedDiagram #default-fret-table \chordmode {e:m7}
#plectrumTuning  #"2;o;o;2;" % Em7
\storePredefinedDiagram #default-fret-table \chordmode {e:dim7}
#plectrumTuning  #"4;3;2;5;" % Edim7


%% F
\storePredefinedDiagram #default-fret-table \chordmode {f}
#plectrumTuning  #"5;2;1;3;" % F
\storePredefinedDiagram #default-fret-table \chordmode {f:7}
#plectrumTuning  #"3;2;1;3;" % F7
\storePredefinedDiagram #default-fret-table \chordmode {f:maj7}
#plectrumTuning  #"4;2;1;3;" % Fmaj7
\storePredefinedDiagram #default-fret-table \chordmode {f:dim7}
#plectrumTuning  #"2;1;o;3;" % Fdim7


%% Gb
\storePredefinedDiagram #default-fret-table \chordmode {ges}
#plectrumTuning  #"6;3;2;4;" % Gb
\storePredefinedDiagram #default-fret-table \chordmode {ges:7.5-}
#plectrumTuning  #"4;3;1;4;" % Gb7b5


%% G
\storePredefinedDiagram #default-fret-table \chordmode {g:m7.5-}
#plectrumTuning  #"5;3;2;5;" % Gø
\storePredefinedDiagram #default-fret-table \chordmode {g:m7.5-/des}
#plectrumTuning  #"5;3;2;5;" % Gø/Db
\storePredefinedDiagram #default-fret-table \chordmode {g:m7.5-/bes}
#plectrumTuning  #"5;3;2;5;" % Gø/Db
\storePredefinedDiagram #default-fret-table \chordmode {g:m7}
#plectrumTuning  #"5;3;3;5;" % Gm7
\storePredefinedDiagram #default-fret-table \chordmode {g:7}
#plectrumTuning  #"2;o;o;3;" % G7


%% Ab
\storePredefinedDiagram #default-fret-table \chordmode {aes:7}
#plectrumTuning  #"3;1;1;4;" % Ab7


%% A
\storePredefinedDiagram #default-fret-table \chordmode {a:7}
#plectrumTuning  #"4;2;2;5;" % A7
\storePredefinedDiagram #default-fret-table \chordmode {a:m}
#plectrumTuning  #"4;2;1;7;" % Am
\storePredefinedDiagram #default-fret-table \chordmode {a:m7}
#plectrumTuning  #"4;2;1;5;" % Am7


%% Bb
\storePredefinedDiagram #default-fret-table \chordmode {bes}
#plectrumTuning  #"5;3;3;8;" % Bb
\storePredefinedDiagram #default-fret-table \chordmode {bes:6}
#plectrumTuning  #"5;3;3;5;" % Bb6
\storePredefinedDiagram #default-fret-table \chordmode {bes:7}
#plectrumTuning  #"5;3;3;6;" % Bb7


%% B
\storePredefinedDiagram #default-fret-table \chordmode {b}
#plectrumTuning  #"3;4;o;4;" % B
\storePredefinedDiagram #default-fret-table \chordmode {b:7}
#plectrumTuning  #"3;2;o;4;" % B7
\storePredefinedDiagram #default-fret-table \chordmode {b:dim7}
#plectrumTuning  #"2;1;o;3;" % Bdim7


\languageRestore
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to