]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/included/display-predefined-string-tunings.ly
Imported Upstream version 2.19.45
[lilypond.git] / Documentation / included / display-predefined-string-tunings.ly
1 \version "2.19.22"
2
3 #(define (filter-instrument instrument-name tuning-alist)
4    (filter (lambda (entry)
5              (string-prefix? instrument-name
6                             (symbol->string (car entry))))
7            tuning-alist))
8
9 #(define (chord-display tuning-alist-entry)
10    (let* ((tuning-symbol (car tuning-alist-entry))
11           (pitches (cdr tuning-alist-entry)))
12      (make-music 'EventChord
13                  'elements
14                  (cons (make-music 'TextScriptEvent
15                                    'direction 1
16                                    'text (symbol->string tuning-symbol))
17                        (map (lambda (pitch)
18                               (make-music 'NoteEvent
19                                           'duration (ly:make-duration 0 0 1/1)
20                                           'pitch pitch))
21                             pitches)))))
22
23 displayInstrumentDefaultTunings =
24 #(define-music-function (instrument) (string?)
25    (let* ((filtered-instruments (filter-instrument instrument defaultStringTunings))
26           (display-elements (map chord-display filtered-instruments)))
27      (make-music 'SequentialMusic 'elements display-elements)))
28
29
30 \score {
31   {
32     \new Staff {
33       \textLengthOn
34       \override Score.RehearsalMark.self-alignment-X = #LEFT
35
36       \mark \markup {\left-align "Guitar tunings"}
37       \clef "treble_8"
38       \displayInstrumentDefaultTunings #"guitar"
39       \break
40
41       \mark \markup {\left-align "Bass tunings"}
42       \clef "bass_8"
43       \displayInstrumentDefaultTunings #"bass"
44       \break
45
46       \mark \markup {\left-align "Mandolin tunings"}
47       \clef "treble"
48       \displayInstrumentDefaultTunings #"mandolin"
49       \break
50
51       \mark \markup {\left-align "Banjo tunings"}
52       \clef "treble_8"
53       \displayInstrumentDefaultTunings #"banjo"
54       \break
55
56       \mark \markup {\left-align "Ukulele tunings"}
57       \clef "treble"
58       \displayInstrumentDefaultTunings #"ukulele"
59       \clef "alto"
60       \displayInstrumentDefaultTunings #"tenor-ukulele"
61       \displayInstrumentDefaultTunings #"baritone-ukulele"
62       \break
63
64       \mark \markup {\left-align "Orchestral string tunings"}
65       \clef "treble"
66       \displayInstrumentDefaultTunings #"violin"
67       \clef "alto"
68       \displayInstrumentDefaultTunings #"viola"
69       \clef "bass"
70       \displayInstrumentDefaultTunings #"cello"
71       \clef "bass_8"
72       \displayInstrumentDefaultTunings #"double-bass"
73     }
74   }
75 }