2014-12-23 3:58 GMT+01:00 Stan Mulder <[email protected]>:
> 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
[email protected]
https://lists.gnu.org/mailman/listinfo/lilypond-user