]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/included/script-chart.ly
Merge remote branch 'origin/master' into release/unstable
[lilypond.git] / Documentation / included / script-chart.ly
1 \version "2.17.30"
2
3 \header {
4   texidoc ="@cindex Feta scripts
5 This chart shows all articulations, or scripts, that the feta font contains.
6 "
7 }
8
9 #(begin
10
11   (define script-list (map car default-script-alist))
12
13   (define ignore
14     '("comma"
15       "varcomma"))
16
17   (define ancient
18     '("ictus"
19       "accentus"
20       "circulus"
21       "semicirculus"
22       "signumcongruentiae"))
23
24   (define articulations
25     '("accent"
26       "espressivo"
27       "marcato"
28       "portato"
29       "staccatissimo"
30       "staccato"
31       "tenuto"))
32
33   (define ornaments
34     '("prall"
35       "mordent"
36       "prallmordent"
37       "turn"
38       "upprall"
39       "downprall"
40       "upmordent"
41       "downmordent"
42       "lineprall"
43       "prallprall"
44       "pralldown"
45       "prallup"
46       "reverseturn"
47       "trill"))
48
49   (define instrument-specific
50     '("upbow"
51       "downbow"
52       "flageolet"
53       "snappizzicato"
54       "open"
55       "halfopen"
56       "stopped"
57       "lheel"
58       "rheel"
59       "ltoe"
60       "rtoe"))
61
62   (define fermatas
63     '("shortfermata"
64       "fermata"
65       "longfermata"
66       "verylongfermata"))
67
68   (define repeats
69     '("segno"
70       "coda"
71       "varcoda"))
72
73
74   ;; remove all remaining groups from the script-list
75   (for-each
76     (lambda (x) (set! script-list (delete x script-list)))
77     (append ignore
78             ancient
79             articulations
80             ornaments
81             instrument-specific
82             fermatas
83             repeats))
84
85   ;; require all scripts to appear here
86   (if (pair? script-list) ; script-list should be empty by now
87       (ly:error
88         (_ "Unlisted scripts in Documentation/included/script-chart.ly: ~A")
89         script-list))
90
91
92   ;;;;;;; functions to generate the tables
93
94   ;;; notes
95
96   (define (make-script-note script)
97     (make-event-chord
98        (list (make-music
99                'NoteEvent
100                'duration
101                (ly:make-duration 2 0 1/1)
102                'pitch
103                (ly:make-pitch 0 0 0))
104              (make-music
105                'ArticulationEvent
106                'direction
107                ;; everything goes up except "ictus"
108                (if (string=? script "ictus") -1 1)
109                'articulation-type
110                script))))
111
112   (define (make-script-notes scripts)
113     (make-sequential-music
114       (map make-script-note scripts)))
115
116   (define (make-scripts-voice-context scripts)
117     (let ((music (make-script-notes scripts)))
118       (context-spec-music music 'Voice "voiceA")))
119
120   (define (make-scripts-vaticana-context scripts)
121     (let ((music (make-script-notes scripts)))
122       (context-spec-music music 'VaticanaVoice "voiceA")))
123
124
125   ;;; lyrics
126
127   (define (make-script-lyric script)
128     (make-event-chord
129       (list (make-music
130               'LyricEvent
131               'duration
132               (ly:make-duration 2 0 1/1)
133               'text
134               script))))
135
136   (define (make-script-lyrics scripts)
137     (make-sequential-music
138       (map make-script-lyric scripts)))
139
140   (define (make-scripts-lyrics-context scripts)
141     (let ((music (make-script-lyrics scripts)))
142       (context-spec-music music 'Lyrics "voiceA")))
143
144
145   ;;; combining notes and lyrics
146
147   (define (make-scripts-staff scripts)
148     (make-simultaneous-music
149       (list (make-scripts-voice-context scripts)
150             (make-scripts-lyrics-context scripts))))
151
152   (define (make-scripts-staff-ancient scripts)
153     (make-simultaneous-music
154       (list (make-scripts-vaticana-context scripts)
155             (make-scripts-lyrics-context scripts))))
156
157 ) % end of (begin ...)
158
159 \layout {
160   line-width = 5.1\in
161   indent = 0.0\mm
162   \context {
163     \Score
164     timing = ##f
165     barAlways = ##t
166     \override NonMusicalPaperColumn.padding = #2.5
167     \override PaperColumn.keep-inside-line = ##t
168   }
169   \context {
170     \RhythmicStaff
171     \remove "Time_signature_engraver"
172     \hide BarLine
173     \override Stem.direction = #down
174   }
175   \context {
176     \Lyrics
177     \override LyricText.font-family = #'typewriter
178     \override LyricText.font-shape = #'upright
179   }
180   \context {
181     \VaticanaVoice
182     \override Script.padding = #0
183   }
184 }
185
186
187 scriptStaff =
188 #(define-music-function (parser location scripts) (list?)
189    (make-scripts-staff scripts))
190
191 scriptStaffAncient =
192 #(define-music-function (parser location scripts) (list?)
193    (make-scripts-staff-ancient scripts))