]> git.donarmstrong.com Git - lilypond.git/blob - ly/performer-init.ly
1a383607f1ea2c4d068edcf322f3cb5cf0ef2e6f
[lilypond.git] / ly / performer-init.ly
1 %%%% This file is part of LilyPond, the GNU music typesetter.
2 %%%%
3 %%%% Copyright (C) 1996--2012 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   %% TODO: at least the tie performer likely does not work without the
192   %% Note_performer, but I don't know how to shut note output off in
193   %% MIDI.
194   \consists "Tie_performer"
195   \consists "Beam_performer"
196   \consists "Slur_performer"
197 }
198
199 \context {
200   \Staff
201   \name TabStaff
202   midiInstrument = #"acoustic guitar (nylon)"
203   \alias Staff
204   \accepts TabVoice
205   \defaultchild TabVoice
206   autoBeaming = ##f  % needed for consistent melismata with engravers
207 }
208
209 \context {
210   \type "Score_performer"
211
212   \name Score
213
214   melismaBusyProperties = #default-melisma-properties
215   instrumentName = #"bright acoustic"
216   midiChannelMapping = #'staff
217
218   %% quarter = 60
219   tempoWholesPerMinute = #(ly:make-moment 15/1)
220
221   \accepts Staff
222   \accepts DrumStaff
223   \accepts GrandStaff
224   \accepts PianoStaff
225   \accepts TabStaff
226   \accepts StaffGroup
227   \accepts Devnull
228   \accepts ChoirStaff
229   \accepts RhythmicStaff
230   \accepts ChordNames
231   \accepts FiguredBass
232   \accepts FretBoards
233   \accepts Lyrics
234   \accepts VaticanaStaff
235   \accepts KievanStaff
236   \accepts MensuralStaff
237
238   \consists "Time_signature_performer"
239   \consists "Control_track_performer"
240   \consists "Tempo_performer"
241
242   \alias "Timing"
243
244   %% An alias for Timing is established by the Timing_translator in
245   %% whatever context it is initialized, and the timing variables are
246   %% then copied from wherever Timing had been previously established.
247   %% The alias at Score level provides a target for initializing
248   %% Timing variables in layout definitions before any
249   %% Timing_translator has been run.
250
251   timeSignatureSettings = #default-time-signature-settings
252   timeSignatureFraction = 4/4
253   autoBeaming = ##t  % needed for consistent melismata with engravers
254
255   %% Other beaming variables are not important as autobeams don't affect
256   %% the Midi.  Melismata are only affected by beams when autobeaming
257   %% is switched off.
258
259   \consists "Timing_translator"
260
261   \defaultchild "Staff"
262
263   dynamicAbsoluteVolumeFunction = #default-dynamic-absolute-volume
264   instrumentEqualizer = #default-instrument-equalizer
265   drumPitchTable = #(alist->hash-table midiDrumPitches)
266   timing = ##t
267 }
268
269
270 \context {
271   \type "Performer_group"
272   \consists "Staff_performer" % Performer_group ?
273   \consists "Lyric_performer"
274   \name Lyrics
275 }
276
277 \context{
278   \type "Performer_group"
279   \name ChoirStaff
280   \accepts Staff
281   \accepts DrumStaff
282   \defaultchild Staff
283 }
284
285 \context {
286   \type "Performer_group"
287   \consists "Staff_performer"
288   \accepts ChordNameVoice
289   \defaultchild ChordNameVoice
290   \name ChordNames
291 }
292
293 \context {
294   \Voice
295   \name ChordNameVoice
296 }
297
298 \context {
299   \type "Performer_group"
300   \name StaffGroup
301   \accepts Staff
302   \accepts DrumStaff
303   \accepts TabStaff
304   \accepts RhythmicStaff
305   \accepts GrandStaff
306   \accepts PianoStaff
307   \accepts Lyrics
308   \accepts ChordNames
309   \accepts FiguredBass
310   \accepts FretBoards
311   \defaultchild Staff
312 }
313
314 \context {
315   \Staff
316   \name RhythmicStaff
317 }
318
319 \context {
320   \type "Performer_group"
321   \name Dynamics
322   \consists "Piano_pedal_performer"
323 }