X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;ds=sidebyside;f=ly%2Fperformer-init.ly;h=00c4bdf3dabcd3b64b4b07ac369acc627cbf78b5;hb=786aa3e6e73acd7f40ee28ede7d337e345e6d6ed;hp=3bc296fab1187716caa855f8c58f65ea417d49b9;hpb=54685cedab8c7e6ce9cfc754dc6b6c646e8421ff;p=lilypond.git diff --git a/ly/performer-init.ly b/ly/performer-init.ly index 3bc296fab1..00c4bdf3da 100644 --- a/ly/performer-init.ly +++ b/ly/performer-init.ly @@ -1,126 +1,390 @@ -\version "1.5.68" -% -% setup for Request->Element conversion. Guru-only -% -StaffContext = \translator { - \type "Staff_performer" - \name Staff - \accepts Voice - - \consists "Key_performer" - \consists "Tempo_performer" - \consists "Time_signature_performer" - -} -\translator { \StaffContext } -\translator { \StaffContext - \name RhythmicStaff +%%%% This file is part of LilyPond, the GNU music typesetter. +%%%% +%%%% Copyright (C) 1996--2015 Han-Wen Nienhuys +%%%% Jan Nieuwenhuizen +%%%% +%%%% 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 . + +\version "2.19.16" + +%% +%% 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_function_performer" +} + +\context { + \name Global + \accepts Score + \defaultchild Score + \description "Hard coded entry point for LilyPond. Cannot be tuned." +} + +\context { + \Staff + \name KievanStaff + \alias Staff + \denies Voice + \accepts KievanVoice + \defaultchild KievanVoice +} + +\context { + \Staff + \name VaticanaStaff + \alias Staff + \denies Voice + \accepts VaticanaVoice + \defaultchild VaticanaVoice +} + +\context { + \Staff + \name MensuralStaff + \alias Staff + \denies Voice + \accepts MensuralVoice + \defaultchild MensuralVoice +} + +\context { + \Staff + \name PetrucciStaff + \alias Staff + \denies Voice + \accepts PetrucciVoice + \defaultchild PetrucciVoice +} + +\context { + \Staff + \name GregorianTranscriptionStaff + \alias Staff + \denies Voice + \accepts GregorianTranscriptionVoice + \defaultchild GregorianTranscriptionVoice +} + +\context { + \Staff + \name DrumStaff + \alias Staff + midiInstrument = #"drums" + \denies Voice + \accepts DrumVoice + \defaultchild DrumVoice +} + +\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 } +\context { + \Voice + \name PetrucciVoice + \alias Voice + autoBeaming = ##f % needed for consistent melismata with engravers +} -VoiceContext = \translator { - \type "Performer_group_performer" - \name Voice - \consists "Dynamic_performer" - \consists "Span_dynamic_performer" - \consists "Piano_pedal_performer" - \accepts "Thread" +\context { + \Voice + \name GregorianTranscriptionVoice + \alias Voice + autoBeaming = ##f % needed for consistent melismata with engravers } -\translator { \VoiceContext } -ThreadContext = \translator { - \type "Performer_group_performer" - \name Thread - \consists "Note_performer" - \consists "Tie_performer" +\context { + \Voice + \name DrumVoice + \alias Voice + \remove "Note_performer" + \consists "Drum_note_performer" } -\translator { \ThreadContext } -% retain for compatibility reasons (FIXME: convert-ly) -\translator { - \type "Performer_group_performer" - \name Grace +\context { + \type "Performer_group" + \name FiguredBass } -\translator -{ - \type "Performer_group_performer" - \name VoiceTwo\consists "Note_performer" +\context { + \type "Performer_group" + \name FretBoards + \alias Staff +} +\context { + \type "Performer_group" + \name GrandStaff + \accepts ChordNames + \accepts DrumStaff + \accepts Dynamics + \accepts FiguredBass + \accepts Lyrics + \accepts RhythmicStaff + \accepts Staff + \accepts TabStaff + \defaultchild Staff } -GrandStaffContext = \translator { - \type "Performer_group_performer" - \name GrandStaff - \accepts RhythmicStaff - \accepts Staff +\context { + \GrandStaff + \name PianoStaff + \alias GrandStaff } -\translator { \GrandStaffContext } -PianoStaffContext = \translator { - \type "Performer_group_performer" - \name "PianoStaff" - \accepts Staff +\context { + \Voice + \name TabVoice + \alias Voice } -\translator { \PianoStaffContext } -\translator { - \type "Performer_group_performer" - \consists "Lyric_performer" - \name LyricsVoice +\context { + \type "Performer_group" + \name Devnull + \alias Voice + \alias Staff } -\translator{ - \type "Performer_group_performer" - \name ChoirStaff - \accepts Staff +\context { + \type "Performer_group" + \name NullVoice + \alias Staff + \alias Voice + %% needed for melismata + \consists "Tie_performer" + \consists "Beam_performer" + \consists "Slur_performer" } -\translator { - \type "Staff_performer" - \accepts LyricsVoice - \name Lyrics - \consists "Time_signature_performer" - \consists "Tempo_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 } -\translator { - \type "Staff_performer" - \accepts ChordNameVoice - \name ChordNames +\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 NullVoice + \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" + + \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 } -\translator { - \type Performer_group_performer - \consists Note_performer - \name ChordNameVoice + +\context { + \type "Performer_group" + \consists "Staff_performer" % Performer_group ? + \consists "Lyric_performer" + \name Lyrics } -\translator { - \type Performer_group_performer +\context{ + \type "Performer_group" + \name ChoirStaff + \accepts ChoirStaff + \accepts ChordNames + \accepts FiguredBass + \accepts DrumStaff + \accepts GrandStaff + \accepts Lyrics + \accepts OneStaff + \accepts PianoStaff + \accepts RhythmicStaff + \accepts Staff + \accepts StaffGroup + \defaultchild Staff +} - \name StaffGroup - \accepts Staff +\context { + \type "Performer_group" + \consists "Staff_performer" + \name NoteNames } -ScoreContext = \translator { - \type "Score_performer" +\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 +} - \name Score - instrument = #"bright acoustic" - \accepts Staff - \accepts GrandStaff - \accepts PianoStaff - \accepts Lyrics - \accepts StaffGroup - \accepts ChoirStaff - \accepts RhythmicStaff - \accepts ChordNames +\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" +} - \consists "Timing_translator" - \consists "Swallow_performer" - - dynamicAbsoluteVolumeFunction = #default-dynamic-absolute-volume - instrumentEqualizer = #default-instrument-equalizer +\context { + \Staff + \name RhythmicStaff + \alias Staff + \defaultchild Voice } -\translator { \ScoreContext } +\context { + \type "Performer_group" + \name Dynamics + \alias Voice + \consists "Piano_pedal_performer" +}