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