-\version "1.7.18"
+%%%% This file is part of LilyPond, the GNU music typesetter.
+%%%%
+%%%% Copyright (C) 1996--2015 Han-Wen Nienhuys <hanwen@xs4all.nl>
+%%%% Jan Nieuwenhuizen <janneke@gnu.org>
+%%%%
+%%%% LilyPond is free software: you can redistribute it and/or modify
+%%%% it under the terms of the GNU General Public License as published by
+%%%% the Free Software Foundation, either version 3 of the License, or
+%%%% (at your option) any later version.
+%%%%
+%%%% LilyPond is distributed in the hope that it will be useful,
+%%%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%%%% GNU General Public License for more details.
+%%%%
+%%%% You should have received a copy of the GNU General Public License
+%%%% along with LilyPond. If not, see <http://www.gnu.org/licenses/>.
-%
-% setup for Request->Element conversion. Guru-only
-%
-StaffContext = \translator {
- \type "Staff_performer"
- \name Staff
- \accepts Voice
+\version "2.19.16"
- \consists "Key_performer"
- \consists "Tempo_performer"
- \consists "Time_signature_performer"
+%%
+%% setup for Request->Element conversion.
+%%
+\context {
+ \type "Performer_group"
+ \name Staff
+ \accepts CueVoice
+ \accepts NullVoice
+ \accepts Voice
+ \defaultchild Voice
+ \consists "Staff_performer"
+ \consists "Key_performer"
+ \consists "Midi_control_change_performer"
}
-VoiceContext = \translator {
- \type "Performer_group_performer"
- \name Voice
- \consists "Dynamic_performer"
- \consists "Span_dynamic_performer"
- \consists "Piano_pedal_performer"
- \accepts "Thread"
+\context {
+ \name Global
+ \accepts Score
+ \defaultchild Score
+ \description "Hard coded entry point for LilyPond. Cannot be tuned."
}
-ThreadContext = \translator {
- \type "Performer_group_performer"
- \name Thread
- \consists "Note_performer"
- \consists "Tie_performer"
+\context {
+ \Staff
+ \name KievanStaff
+ \alias Staff
+ \denies Voice
+ \accepts KievanVoice
+ \defaultchild KievanVoice
}
-FiguredBassContext = \translator {
- \type "Performer_group_performer"
- \name FiguredBass
- \consists "Swallow_performer"
+\context {
+ \Staff
+ \name VaticanaStaff
+ \alias Staff
+ \denies Voice
+ \accepts VaticanaVoice
+ \defaultchild VaticanaVoice
}
-GrandStaffContext = \translator {
- \type "Performer_group_performer"
- \name GrandStaff
- \accepts RhythmicStaff
- \accepts Staff
+\context {
+ \Staff
+ \name MensuralStaff
+ \alias Staff
+ \denies Voice
+ \accepts MensuralVoice
+ \defaultchild MensuralVoice
}
-PianoStaffContext = \translator {
- \type "Performer_group_performer"
- \name "PianoStaff"
- \accepts Staff
+\context {
+ \Staff
+ \name PetrucciStaff
+ \alias Staff
+ \denies Voice
+ \accepts PetrucciVoice
+ \defaultchild PetrucciVoice
}
-TabVoiceContext = \translator {
- \type "Performer_group_performer"
- \name "TabVoice"
- \consists "Swallow_performer"
+\context {
+ \Staff
+ \name GregorianTranscriptionStaff
+ \alias Staff
+ \denies Voice
+ \accepts GregorianTranscriptionVoice
+ \defaultchild GregorianTranscriptionVoice
}
-TabStaffContext = \translator {
- \type "Performer_group_performer"
- \name "TabStaff"
- \accepts "TabVoice"
+\context {
+ \Staff
+ \name DrumStaff
+ \alias Staff
+ midiInstrument = #"drums"
+ \denies Voice
+ \accepts DrumVoice
+ \defaultchild DrumVoice
}
-ScoreContext = \translator {
- \type "Score_performer"
+\context {
+ \type "Performer_group"
+ \name Voice
+ \consists "Dynamic_performer"
+ \consists "Tie_performer"
+ \consists "Piano_pedal_performer"
+ \consists "Note_performer"
+ \consists "Beam_performer"
+ \consists "Slur_performer"
+}
+
+\context {
+ \Voice
+ \name CueVoice
+ \alias Voice
+}
+
+\context {
+ \Voice
+ \name VaticanaVoice
+ \alias Voice
+ autoBeaming = ##f % needed for consistent melismata with engravers"
+}
+
+\context {
+ \Voice
+ \name KievanVoice
+ \alias Voice
+ autoBeaming = ##f % needed for consistent melismata with engravers"
+}
+
+\context {
+ \Voice
+ \name MensuralVoice
+ \alias Voice
+ autoBeaming = ##f % needed for consistent melismata with engravers
+}
- \name Score
- \alias Timing
- instrument = #"bright acoustic"
- \accepts Staff
- \accepts GrandStaff
- \accepts PianoStaff
- \accepts TabStaff
- \accepts Lyrics
- \accepts StaffGroup
- \accepts ChoirStaff
- \accepts RhythmicStaff
- \accepts ChordNames
- \accepts FiguredBass
+\context {
+ \Voice
+ \name PetrucciVoice
+ \alias Voice
+ autoBeaming = ##f % needed for consistent melismata with engravers
+}
- \alias "Timing"
- \consists "Timing_translator"
- \consists "Swallow_performer"
-
- dynamicAbsoluteVolumeFunction = #default-dynamic-absolute-volume
- instrumentEqualizer = #default-instrument-equalizer
+\context {
+ \Voice
+ \name GregorianTranscriptionVoice
+ \alias Voice
+ autoBeaming = ##f % needed for consistent melismata with engravers
}
+\context {
+ \Voice
+ \name DrumVoice
+ \alias Voice
+ \remove "Note_performer"
+ \consists "Drum_note_performer"
+}
-\translator {
- \type "Performer_group_performer"
- \consists "Lyric_performer"
- \name LyricsVoice
+\context {
+ \type "Performer_group"
+ \name FiguredBass
}
-\translator{
- \type "Performer_group_performer"
- \name ChoirStaff
- \accepts Staff
+\context {
+ \type "Performer_group"
+ \name FretBoards
+ \alias Staff
}
-\translator {
- \type "Staff_performer"
- \accepts LyricsVoice
- \name Lyrics
- \consists "Time_signature_performer"
- \consists "Tempo_performer"
+\context {
+ \type "Performer_group"
+ \name GrandStaff
+ \accepts ChordNames
+ \accepts DrumStaff
+ \accepts Dynamics
+ \accepts FiguredBass
+ \accepts Lyrics
+ \accepts RhythmicStaff
+ \accepts Staff
+ \accepts TabStaff
+ \defaultchild Staff
}
-\translator {
- \type "Staff_performer"
- \accepts ChordNameVoice
- \name ChordNames
+\context {
+ \GrandStaff
+ \name PianoStaff
+ \alias GrandStaff
}
-\translator {
- \type "Performer_group_performer"
- \consists "Note_performer"
- \name ChordNameVoice
+\context {
+ \Voice
+ \name TabVoice
+ \alias Voice
}
-\translator {
- \type "Performer_group_performer"
+\context {
+ \type "Performer_group"
+ \name Devnull
+ \alias Voice
+ \alias Staff
+}
- \name StaffGroup
- \accepts Staff
+\context {
+ \type "Performer_group"
+ \name NullVoice
+ \alias Staff
+ \alias Voice
+ %% needed for melismata
+ \consists "Tie_performer"
+ \consists "Beam_performer"
+ \consists "Slur_performer"
}
+\context {
+ \Staff
+ \name TabStaff
+ midiInstrument = #"acoustic guitar (nylon)"
+ \alias Staff
+ \denies Voice
+ \accepts TabVoice
+ \defaultchild TabVoice
+ autoBeaming = ##f % needed for consistent melismata with engravers
+}
+
+\context {
+ \type "Score_performer"
+
+ \name Score
+
+ melismaBusyProperties = #default-melisma-properties
+ instrumentName = #"bright acoustic"
+ midiChannelMapping = #'staff
+
+ %% quarter = 60
+ tempoWholesPerMinute = #(ly:make-moment 15/1)
+
+ \accepts ChoirStaff
+ \accepts ChordNames
+ \accepts Devnull
+ \accepts DrumStaff
+ \accepts Dynamics
+ \accepts FiguredBass
+ \accepts GrandStaff
+ \accepts GregorianTranscriptionStaff
+ \accepts KievanStaff
+ \accepts Lyrics
+ \accepts MensuralStaff
+ \accepts NoteNames
+ \accepts OneStaff
+ \accepts PetrucciStaff
+ \accepts PianoStaff
+ \accepts RhythmicStaff
+ \accepts FretBoards
+ \accepts Staff
+ \accepts StaffGroup
+ \accepts TabStaff
+ \accepts VaticanaStaff
+
+ \consists "Time_signature_performer"
+ \consists "Control_track_performer"
+ \consists "Tempo_performer"
+
+ \alias "Timing"
+
+ %% An alias for Timing is established by the Timing_translator in
+ %% whatever context it is initialized, and the timing variables are
+ %% then copied from wherever Timing had been previously established.
+ %% The alias at Score level provides a target for initializing
+ %% Timing variables in layout definitions before any
+ %% Timing_translator has been run.
+
+ timeSignatureSettings = #default-time-signature-settings
+ timeSignatureFraction = 4/4
+ autoBeaming = ##t % needed for consistent melismata with engravers
+
+ %% Other beaming variables are not important as autobeams don't affect
+ %% the Midi. Melismata are only affected by beams when autobeaming
+ %% is switched off.
+ \consists "Timing_translator"
-\translator { \ScoreContext }
-\translator { \StaffContext }
-\translator { \StaffContext \name RhythmicStaff }
-\translator { \VoiceContext }
-\translator { \ThreadContext }
-\translator { \PianoStaffContext }
-\translator { \TabVoiceContext }
-\translator { \TabStaffContext }
-\translator { \GrandStaffContext }
-\translator { \FiguredBassContext }
+ \defaultchild "Staff"
+
+ dynamicAbsoluteVolumeFunction = #default-dynamic-absolute-volume
+ instrumentEqualizer = #default-instrument-equalizer
+ drumPitchTable = #(alist->hash-table midiDrumPitches)
+
+ %% \quoteDuring is supposed to quote everything but we don't admit
+ %% cue events by default in order not to get multiple midi
+ %% renditions in an orchestral score.
+
+ quotedEventTypes = #'(StreamEvent)
+ quotedCueEventTypes = #'()
+
+ timing = ##t
+}
+
+
+\context {
+ \type "Performer_group"
+ \consists "Staff_performer" % Performer_group ?
+ \consists "Lyric_performer"
+ \name Lyrics
+}
+
+\context{
+ \type "Performer_group"
+ \name ChoirStaff
+ \accepts ChoirStaff
+ \accepts ChordNames
+ \accepts FiguredBass
+ \accepts DrumStaff
+ \accepts Dynamics
+ \accepts GrandStaff
+ \accepts Lyrics
+ \accepts OneStaff
+ \accepts PianoStaff
+ \accepts RhythmicStaff
+ \accepts Staff
+ \accepts StaffGroup
+ \defaultchild Staff
+}
+
+\context {
+ \type "Performer_group"
+ \consists "Staff_performer"
+ \name NoteNames
+}
+
+\context {
+ \Voice % We want all the actual performers
+ \name ChordNames
+ \alias Staff % Catch Staff-level overrides like
+ % \key, \transposition
+ \consists "Staff_performer"
+}
+
+\context {
+ \type "Performer_group"
+ \name StaffGroup
+ \accepts ChoirStaff
+ \accepts ChordNames
+ \accepts DrumStaff
+ \accepts FiguredBass
+ \accepts FretBoards
+ \accepts GrandStaff
+ \accepts Lyrics
+ \accepts OneStaff
+ \accepts PianoStaff
+ \accepts RhythmicStaff
+ \accepts Staff
+ \accepts StaffGroup
+ \accepts TabStaff
+ \defaultchild Staff
+}
+
+\context {
+ \type "Performer_group"
+ \name "OneStaff"
+ \accepts "ChordNames"
+ \accepts "DrumStaff"
+ \accepts "Dynamics"
+ \accepts "FiguredBass"
+ \accepts "FretBoards"
+ \accepts "GregorianTranscriptionStaff"
+ \accepts "KievanStaff"
+ \accepts "Lyrics"
+ \accepts "MensuralStaff"
+ \accepts "NoteNames"
+ \accepts "PetrucciStaff"
+ \accepts "RhythmicStaff"
+ \accepts "Staff"
+ \accepts "TabStaff"
+ \accepts "VaticanaStaff"
+ \defaultchild "Staff"
+}
+
+\context {
+ \Staff
+ \name RhythmicStaff
+ \alias Staff
+ \defaultchild Voice
+}
+
+\context {
+ \type "Performer_group"
+ \name Dynamics
+ \alias Voice
+ \consists "Piano_pedal_performer"
+}