]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/included/script-chart.ly
5bf05a87ebc9a881d11c131d03c61599272bc4de
[lilypond.git] / Documentation / included / script-chart.ly
1 \version "2.16.0"
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       "thumb"
54       "snappizzicato"
55       "open"
56       "halfopen"
57       "stopped"
58       "lheel"
59       "rheel"
60       "ltoe"
61       "rtoe"))
62
63   (define fermatas
64     '("shortfermata"
65       "fermata"
66       "longfermata"
67       "verylongfermata"))
68
69   (define repeats
70     '("segno"
71       "coda"
72       "varcoda"))
73
74
75   ;; remove all remaining groups from the script-list
76   (for-each
77     (lambda (x) (set! script-list (delete x script-list)))
78     (append ignore
79             ancient
80             articulations
81             ornaments
82             instrument-specific
83             fermatas
84             repeats))
85
86   ;; require all scripts to appear here
87   (if (pair? script-list) ; script-list should be empty by now
88       (ly:error
89         (_ "Unlisted scripts in Documentation/included/script-chart.ly: ~A")
90         script-list))
91
92
93   ;;;;;;; functions to generate the tables
94
95   ;;; notes
96
97   (define (make-script-note script)
98     (make-event-chord
99        (list (make-music
100                'NoteEvent
101                'duration
102                (ly:make-duration 2 0 1 1)
103                'pitch
104                (ly:make-pitch 0 0 0))
105              (make-music
106                'ArticulationEvent
107                'direction
108                ;; everything goes up except "ictus"
109                (if (string=? script "ictus") -1 1)
110                'articulation-type
111                script))))
112
113   (define (make-script-notes scripts)
114     (make-sequential-music
115       (map make-script-note scripts)))
116
117   (define (make-scripts-voice-context scripts)
118     (let ((music (make-script-notes scripts)))
119       (context-spec-music music 'Voice "voiceA")))
120
121   (define (make-scripts-vaticana-context scripts)
122     (let ((music (make-script-notes scripts)))
123       (context-spec-music music 'VaticanaVoice "voiceA")))
124
125
126   ;;; lyrics
127
128   (define (make-script-lyric script)
129     (make-event-chord
130       (list (make-music
131               'LyricEvent
132               'duration
133               (ly:make-duration 2 0 1 1)
134               'text
135               script))))
136
137   (define (make-script-lyrics scripts)
138     (make-sequential-music
139       (map make-script-lyric scripts)))
140
141   (define (make-scripts-lyrics-context scripts)
142     (let ((music (make-script-lyrics scripts)))
143       (context-spec-music music 'Lyrics "voiceA")))
144
145
146   ;;; combining notes and lyrics
147
148   (define (make-scripts-staff scripts)
149     (make-simultaneous-music
150       (list (make-scripts-voice-context scripts)
151             (make-scripts-lyrics-context scripts))))
152
153   (define (make-scripts-staff-ancient scripts)
154     (make-simultaneous-music
155       (list (make-scripts-vaticana-context scripts)
156             (make-scripts-lyrics-context scripts))))
157
158 ) % end of (begin ...)
159
160 \layout {
161   line-width = 5.1\in
162   indent = 0.0\mm
163   \context {
164     \Score
165     timing = ##f
166     barAlways = ##t
167     \override NonMusicalPaperColumn #'padding = #2.5
168     \override PaperColumn #'keep-inside-line = ##t
169   }
170   \context {
171     \RhythmicStaff
172     \remove "Time_signature_engraver"
173     \override BarLine #'transparent = ##t
174     \override Stem #'direction = #down
175   }
176   \context {
177     \Lyrics
178     \override LyricText #'font-family = #'typewriter
179     \override LyricText #'font-shape = #'upright
180   }
181   \context {
182     \VaticanaVoice
183     \override Script #'padding = #0
184   }
185 }
186
187
188 scriptStaff =
189 #(define-music-function (parser location scripts) (list?)
190    (make-scripts-staff scripts))
191
192 scriptStaffAncient =
193 #(define-music-function (parser location scripts) (list?)
194    (make-scripts-staff-ancient scripts))