X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=init%2Fengraver.ly;h=81f5312937732f34714964b6bbbfa4aa82175121;hb=37be099a6bbb5f0818e3d1a66cdd71b04cafb4d4;hp=6b8b41f49b4a1a07f07ed4e226d23c2739fade87;hpb=56d6d541266c300b10a6e1b6c026a7682ad12b61;p=lilypond.git diff --git a/init/engraver.ly b/init/engraver.ly index 6b8b41f49b..81f5312937 100644 --- a/init/engraver.ly +++ b/init/engraver.ly @@ -2,106 +2,259 @@ % setup for Request->Element conversion. Guru-only % -Staff = \translator { - \type "Engraver_group_engraver"; - defaultclef = violin; - - \consists "Bar_engraver"; - \consists "Clef_engraver"; - \consists "Key_engraver"; - \consists "Meter_engraver"; - \consists "Local_key_engraver"; - \consists "Staff_sym_engraver"; - \consists "Collision_engraver"; - \consists "Rest_collision_engraver"; - - \consists "Line_group_engraver"; - \accepts "Voice"; +StaffContext=\translator { + \type "Line_group_engraver_group"; + \name Staff ; + +%{ + The Hara_kiri_line_group_engraver is a Line_group_engraver + that will not typeset an empty line of staff, i.e., a line + of staff with only rests in it. This is needed for orchestral + scores. Comment-out Line_group_engraver_group, and uncomment + Hara_kiri_line_group_engraver. +%} +% \type "Hara_kiri_line_group_engraver"; + + \consists "Bar_engraver"; + \consists "Clef_engraver"; + \consists "Key_engraver"; + \consists "Local_key_engraver"; + \consists "Time_signature_engraver"; + \consists "Repeat_engraver"; + \consists "Staff_symbol_engraver"; + \consists "Collision_engraver"; + \consists "Rest_collision_engraver"; + \consists "Tuplet_engraver"; +%{ + Uncomment to get bar numbers on single staff systems: + + The Bar_number_engraver puts a number over a staff created + at the same level of hierarchy. This why you have to add it + here separately if you want to have numbers on single staff + systems: The Bar_number_engraver in Score_engraver will only + put numbers on bars that are Score ("system") wide. Such + bars are only created when the toplevel system has multiple + children-staffs. + +%} +%{ + \consists "Bar_column_engraver"; + \consists "Bar_number_engraver"; +%} +%{ + The Staff_margin_engraver puts the name of the instrument + (\property Staff.instrument; Staff.instr for subsequent lines) + to the left of a staff. +%} + defaultClef = treble; + + marginBreakPriority = "-5"; + +%{ + \consists "Staff_margin_engraver"; +%} + \consists "Separating_line_group_engraver"; + + \accepts "Voice"; +}; + +\translator{\StaffContext } +\translator { + \type "Line_group_engraver_group"; + \name ChoirStaff; + \consists "Vertical_align_engraver"; + \consists "Staff_group_bar_engraver"; + \accepts "Staff"; + \accepts "RhythmicStaff"; + \accepts "GrandStaff"; + \accepts "Lyrics"; } -Voice = \translator { + +RhythmicStaffContext=\translator{ + \type "Line_group_engraver_group"; + nolines = "1"; + \consists "Pitch_squash_engraver"; + \consists "Separating_line_group_engraver"; + \name RhythmicStaff; + \consists "Bar_engraver"; + \consists "Repeat_engraver"; + \consists "Time_signature_engraver"; + \consists "Staff_symbol_engraver"; + \accepts "Voice"; +}; +\translator{\RhythmicStaffContext} +VoiceContext = \translator { \type "Engraver_group_engraver"; \consists "Dynamic_engraver"; + \name Voice ; + \consists "Rest_engraver"; + \consists "Dot_column_engraver"; \consists "Stem_engraver"; - \consists "Plet_engraver"; +% \consists "Plet_engraver"; \consists "Beam_engraver"; \consists "Abbreviation_beam_engraver"; + \consists "Multi_measure_rest_engraver"; \consists "Script_engraver"; \consists "Rhythmic_column_engraver"; + \consists "Font_size_engraver"; \consists "Slur_engraver"; - \accepts "Thread"; -} - -Thread = \translator { - \type "Engraver_group_engraver"; + \consists "Ties_engraver"; + \consists "Note_heads_engraver" ; \consists "Skip_req_swallow_translator"; - \consists "Note_head_engraver" ; - \consists "Tie_engraver"; -} +}; -Grandstaff = \translator { - \type "Engraver_group_engraver"; +\translator {\VoiceContext} +GrandStaffContext=\translator{ + \type "Line_group_engraver_group"; + \name GrandStaff; \consists "Span_bar_engraver"; \consists "Vertical_align_engraver"; \consists "Piano_bar_engraver"; + minVerticalAlign = 1.5*\staffheight; - % This should come last - \consists "Line_group_engraver"; \accepts "Staff"; -} +}; +\translator{\GrandStaffContext} -Staff_group = \translator { - \type "Engraver_group_engraver"; +\translator { + \type "Line_group_engraver_group"; +% \type "Hara_kiri_line_group_engraver"; \consists "Span_bar_engraver"; \consists "Vertical_align_engraver"; - \consists "Line_group_engraver"; + \consists "Staff_group_bar_engraver"; + \name StaffGroup; \accepts "Staff"; - \accepts "Grandstaff"; + \accepts "RhythmicStaff"; + \accepts "GrandStaff"; \accepts "Lyrics"; } -Lyric_voice = \translator{ - \type "Engraver_group_engraver"; + \type "Line_group_engraver_group"; + \name LyricVoice ; + \consists "Separating_line_group_engraver"; \consists "Lyric_engraver"; - \consists "Line_group_engraver"; + \consists "Extender_engraver"; \consists "Beam_req_swallow_translator"; \consists "Plet_swallow_engraver"; } -Lyrics = \translator { - \type "Engraver_group_engraver"; +\translator { + \type "Line_group_engraver_group"; + \name Lyrics; \consists "Vertical_align_engraver"; - \consists "Line_group_engraver"; - \accepts "Lyric_voice"; + \accepts "LyricVoice"; } -Score = \translator { +ScoreContext = \translator { \type Score_engraver; + \name Score; \consists "Timing_engraver"; - %\consists "Bar_column_engraver"; - %\consists "Bar_number_engraver"; + \consists "Bar_column_engraver"; \consists "Span_score_bar_engraver"; \consists "Score_priority_engraver"; \consists "Priority_horizontal_align_engraver"; \consists "Vertical_align_engraver"; - \accepts "Staff_group"; + \accepts "StaffGroup"; \accepts "Staff"; + \accepts "RhythmicStaff"; \accepts "Lyrics"; - \accepts "Grandstaff"; -} + \accepts "GrandStaff"; + \accepts "ChoirStaff"; +}; +\translator { \ScoreContext } -Stupid_score = \translator { - \type Score_engraver; - \consists "Staff_sym_engraver"; -} +ScoreWithNumbers = \translator { + \type "Score_engraver"; + + % uncomment to bar numbers on a whole system. + \consists "Bar_column_engraver"; + \consists "Bar_number_engraver"; + +}; + +StupidScore = \translator { + \type "Score_engraver"; + \name Score; + \consists "Note_heads_engraver"; +}; + + + +BarNumberingStaffContext = \translator { + \StaffContext + barColumnPriority = "0"; + marginBreakPriority = "-4"; + \consists "Mark_engraver"; + \consists "Bar_column_engraver"; + \consists "Bar_number_engraver"; + +}; + + +HaraKiriStaffContext = \translator { + \type "Hara_kiri_line_group_engraver"; + \name Staff; + barColumnPriority = "0"; + marginBreakPriority = "-4"; + \consists "Bar_engraver"; + \consists "Clef_engraver"; + \consists "Repeat_engraver"; + \consists "Key_engraver"; + \consists "Time_signature_engraver"; + \consists "Local_key_engraver"; + \consists "Staff_symbol_engraver"; + \consists "Collision_engraver"; + \consists "Rest_collision_engraver"; + \consists "Staff_margin_engraver"; + \consists "Separating_line_group_engraver"; + + \accepts "Voice"; +}; +% huh, Score should do HaraKiri, not Part yes? +OrchestralPartStaffContext = \translator { +% \HaraKiriStaffContext + \StaffContext + barColumnPriority = "0"; + marginBreakPriority = "-4"; + \consists "Mark_engraver"; + \consists "Bar_column_engraver"; + \consists "Bar_number_engraver"; +}; +% where to put HaraKiri here? +OrchestralScoreContext= \translator { + \type Score_engraver; + \name Score; + barScriptPadding = "2.0"; % dimension \pt + markScriptPadding = "4.0"; + barColumnPriority = "-4"; + markBreakPriority = "-4"; + defaultClef = treble; + + \consists "Timing_engraver"; + \consists "Bar_column_engraver"; + \consists "Bar_number_engraver"; + \consists "Mark_engraver"; + \consists "Span_score_bar_engraver"; + \consists "Score_priority_engraver"; + \consists "Priority_horizontal_align_engraver"; + \consists "Vertical_align_engraver"; + + \accepts "ChoirStaff"; + \accepts "StaffGroup"; + \accepts "Staff"; + \accepts "RhythmicStaff"; + \accepts "Lyrics"; + \accepts "GrandStaff"; +};