3 #(define (filter-instrument instrument-name tuning-alist)
4 (filter (lambda (entry)
5 (string-prefix? instrument-name
6 (symbol->string (car entry))))
9 #(define (chord-display tuning-alist-entry)
10 (let* ((ch-mus (cdr tuning-alist-entry))
11 (tuning-symbol (car tuning-alist-entry))
12 (ev-chord (car (extract-named-music
15 (elts (ly:music-property ev-chord 'elements)))
16 (music-map (lambda (m)
18 (if (not (null? (ly:music-property m 'duration)))
19 (ly:music-set-property!
22 (ly:make-duration 0 0 1 1)))
25 (let ((elts (ly:music-property ev-chord 'elements))
26 (script (make-music 'TextScriptEvent
28 'text (symbol->string tuning-symbol))))
29 (ly:music-set-property!
35 displayInstrumentDefaultTunings =
36 #(define-music-function (parser location instrument) (string?)
37 (let* ((filtered-instruments (filter-instrument instrument defaultStringTunings))
38 (display-elements (map chord-display filtered-instruments)))
39 (make-music 'SequentialMusic 'elements display-elements)))
46 \override Score.RehearsalMark #'self-alignment-X = #LEFT
48 \mark \markup {\left-align "Guitar tunings"}
50 \displayInstrumentDefaultTunings #"guitar"
53 \mark \markup {\left-align "Bass tunings"}
55 \displayInstrumentDefaultTunings #"bass"
58 \mark \markup {\left-align "Mandolin tunings"}
60 \displayInstrumentDefaultTunings #"mandolin"
63 \mark \markup {\left-align "Banjo tunings"}
65 \displayInstrumentDefaultTunings #"banjo"
68 \mark \markup {\left-align "Ukulele tunings"}
70 \displayInstrumentDefaultTunings #"ukulele"
72 \displayInstrumentDefaultTunings #"tenor-ukulele"
73 \displayInstrumentDefaultTunings #"baritone-ukulele"
76 \mark \markup {\left-align "Orchestral string tunings"}
78 \displayInstrumentDefaultTunings #"violin"
80 \displayInstrumentDefaultTunings #"viola"
82 \displayInstrumentDefaultTunings #"cello"
84 \displayInstrumentDefaultTunings #"double-bass"