]> git.donarmstrong.com Git - lilypond.git/blob - ly/performer-init.ly
5eb2572b70372ba121d694c923fcde10438ff666
[lilypond.git] / ly / performer-init.ly
1 %%%% This file is part of LilyPond, the GNU music typesetter.
2 %%%%
3 %%%% Copyright (C) 1996--2014 Han-Wen Nienhuys <hanwen@xs4all.nl>
4 %%%%                          Jan Nieuwenhuizen <janneke@gnu.org>
5 %%%%
6 %%%% LilyPond is free software: you can redistribute it and/or modify
7 %%%% it under the terms of the GNU General Public License as published by
8 %%%% the Free Software Foundation, either version 3 of the License, or
9 %%%% (at your option) any later version.
10 %%%%
11 %%%% LilyPond is distributed in the hope that it will be useful,
12 %%%% but WITHOUT ANY WARRANTY; without even the implied warranty of
13 %%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 %%%% GNU General Public License for more details.
15 %%%%
16 %%%% You should have received a copy of the GNU General Public License
17 %%%% along with LilyPond.  If not, see <http://www.gnu.org/licenses/>.
18
19 \version "2.17.14"
20
21 %%
22 %% setup for Request->Element conversion.
23 %%
24 \context {
25   \type "Performer_group"
26   \name Staff
27   \accepts Voice
28   \accepts CueVoice
29   \accepts NullVoice
30   \defaultchild Voice
31
32   \consists "Staff_performer"
33   \consists "Key_performer"
34   \consists "Midi_control_function_performer"
35 }
36
37 \context {
38   \name Global
39   \accepts Score
40   \defaultchild Score
41   \description "Hard coded entry point for LilyPond.  Cannot be tuned."
42 }
43
44 \context {
45   \type "Performer_group"
46   \name KievanStaff
47   \denies Voice
48   \accepts KievanVoice
49   \defaultchild KievanVoice
50   \alias Staff
51   \consists "Staff_performer"
52   \consists "Key_performer"
53   \consists "Midi_control_function_performer"
54 }
55
56 \context {
57   \type "Performer_group"
58   \name VaticanaStaff
59   \alias Staff
60   \denies Voice
61   \accepts VaticanaVoice
62   \defaultchild VaticanaVoice
63   \consists "Staff_performer"
64   \consists "Key_performer"
65   \consists "Midi_control_function_performer"
66 }
67
68 \context {
69   \type "Performer_group"
70   \name MensuralStaff
71   \denies Voice
72   \accepts MensuralVoice
73   \defaultchild MensuralVoice
74   \alias Staff
75   \consists "Staff_performer"
76   \consists "Key_performer"
77   \consists "Midi_control_function_performer"
78 }
79
80 \context {
81   \Staff
82   \name DrumStaff
83   midiInstrument = #"drums"
84   \accepts DrumVoice
85   \defaultchild DrumVoice
86 }
87
88 \context {
89   \type "Performer_group"
90   \name Voice
91   \consists "Dynamic_performer"
92   \consists "Tie_performer"
93   \consists "Piano_pedal_performer"
94   \consists "Note_performer"
95   \consists "Beam_performer"
96   \consists "Slur_performer"
97 }
98
99 \context {
100   \Voice
101   \name CueVoice
102   \alias Voice
103 }
104
105 \context {
106   \type "Performer_group"
107   \name VaticanaVoice
108   \alias Voice
109   \consists "Dynamic_performer"
110   \consists "Tie_performer"
111   \consists "Note_performer"
112   \consists "Beam_performer"
113   autoBeaming = ##f  % needed for consistent melismata with engravers
114   \consists "Slur_performer"
115 }
116
117 \context {
118   \type "Performer_group"
119   \name KievanVoice
120   \alias Voice
121   \consists "Dynamic_performer"
122   \consists "Tie_performer"
123   \consists "Note_performer"
124   \consists "Beam_performer"
125   autoBeaming = ##f  % needed for consistent melismata with engravers
126   \consists "Slur_performer"
127 }
128
129 \context {
130   \type "Performer_group"
131   \name MensuralVoice
132   \alias Voice
133   \consists "Dynamic_performer"
134   \consists "Tie_performer"
135   \consists "Note_performer"
136   \consists "Beam_performer"
137   autoBeaming = ##f  % needed for consistent melismata with engravers
138   \consists "Slur_performer"
139 }
140
141 \context {
142   \Voice
143   \remove "Note_performer"
144   \consists "Drum_note_performer"
145   \name DrumVoice
146 }
147
148 \context {
149   \type "Performer_group"
150   \name FiguredBass
151 }
152
153 \context {
154   \type "Performer_group"
155   \name FretBoards
156 }
157
158 \context {
159   \type "Performer_group"
160   \name GrandStaff
161   \accepts RhythmicStaff
162   \accepts Staff
163   \accepts Dynamics
164   \defaultchild Staff
165 }
166
167 \context {
168   \type "Performer_group"
169   \name "PianoStaff"
170   \accepts Staff
171   \accepts DrumStaff
172   \defaultchild Staff
173 }
174
175 \context {
176   \Voice
177   \name TabVoice
178 }
179
180 \context {
181   \type "Performer_group"
182   \name "Devnull"
183 }
184
185 \context {
186   \type "Performer_group"
187   \name NullVoice
188   \alias Staff
189   \alias Voice
190   %% needed for melismata
191   \consists "Tie_performer"
192   \consists "Beam_performer"
193   \consists "Slur_performer"
194 }
195
196 \context {
197   \Staff
198   \name TabStaff
199   midiInstrument = #"acoustic guitar (nylon)"
200   \alias Staff
201   \accepts TabVoice
202   \defaultchild TabVoice
203   autoBeaming = ##f  % needed for consistent melismata with engravers
204 }
205
206 \context {
207   \type "Score_performer"
208
209   \name Score
210
211   melismaBusyProperties = #default-melisma-properties
212   instrumentName = #"bright acoustic"
213   midiChannelMapping = #'staff
214
215   %% quarter = 60
216   tempoWholesPerMinute = #(ly:make-moment 15/1)
217
218   \accepts Staff
219   \accepts DrumStaff
220   \accepts GrandStaff
221   \accepts PianoStaff
222   \accepts TabStaff
223   \accepts StaffGroup
224   \accepts Devnull
225   \accepts NullVoice
226   \accepts ChoirStaff
227   \accepts RhythmicStaff
228   \accepts ChordNames
229   \accepts FiguredBass
230   \accepts FretBoards
231   \accepts Lyrics
232   \accepts VaticanaStaff
233   \accepts KievanStaff
234   \accepts MensuralStaff
235
236   \consists "Time_signature_performer"
237   \consists "Control_track_performer"
238   \consists "Tempo_performer"
239
240   \alias "Timing"
241
242   %% An alias for Timing is established by the Timing_translator in
243   %% whatever context it is initialized, and the timing variables are
244   %% then copied from wherever Timing had been previously established.
245   %% The alias at Score level provides a target for initializing
246   %% Timing variables in layout definitions before any
247   %% Timing_translator has been run.
248
249   timeSignatureSettings = #default-time-signature-settings
250   timeSignatureFraction = 4/4
251   autoBeaming = ##t  % needed for consistent melismata with engravers
252
253   %% Other beaming variables are not important as autobeams don't affect
254   %% the Midi.  Melismata are only affected by beams when autobeaming
255   %% is switched off.
256
257   \consists "Timing_translator"
258
259   \defaultchild "Staff"
260
261   dynamicAbsoluteVolumeFunction = #default-dynamic-absolute-volume
262   instrumentEqualizer = #default-instrument-equalizer
263   drumPitchTable = #(alist->hash-table midiDrumPitches)
264   timing = ##t
265 }
266
267
268 \context {
269   \type "Performer_group"
270   \consists "Staff_performer" % Performer_group ?
271   \consists "Lyric_performer"
272   \name Lyrics
273 }
274
275 \context{
276   \type "Performer_group"
277   \name ChoirStaff
278   \accepts Staff
279   \accepts DrumStaff
280   \defaultchild Staff
281 }
282
283 \context {
284   \type "Performer_group"
285   \consists "Staff_performer"
286   \accepts ChordNameVoice
287   \defaultchild ChordNameVoice
288   \name ChordNames
289 }
290
291 \context {
292   \Voice
293   \name ChordNameVoice
294 }
295
296 \context {
297   \type "Performer_group"
298   \name StaffGroup
299   \accepts Staff
300   \accepts DrumStaff
301   \accepts TabStaff
302   \accepts RhythmicStaff
303   \accepts GrandStaff
304   \accepts PianoStaff
305   \accepts Lyrics
306   \accepts ChordNames
307   \accepts FiguredBass
308   \accepts FretBoards
309   \defaultchild Staff
310 }
311
312 \context {
313   \Staff
314   \name RhythmicStaff
315 }
316
317 \context {
318   \type "Performer_group"
319   \name Dynamics
320   \consists "Piano_pedal_performer"
321 }