]> git.donarmstrong.com Git - lilypond.git/blobdiff - ly/engraver.ly
release: 1.3.0
[lilypond.git] / ly / engraver.ly
index 59946daa7244e11d437a5eb9101a67727e811053..b323524d32614e8dd096722ea49fefdf1e9be54d 100644 (file)
@@ -3,83 +3,71 @@
 %
 
 StaffContext=\translator {
-       \type "Line_group_engraver_group";
+       \type "Engraver_group_engraver";
        \name Staff ;
-       barAuto = "1";
-       voltaVisibility = "1";
-
-%{
-       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";
+       barAuto = ##t
+       voltaVisibility = ##t
 
        \consists "Multi_measure_rest_engraver";
-       \consists "Repeat_engraver";
        \consists "Bar_engraver";
+ % Bar_engraver must be first so default bars aren't overwritten
+% with empty ones.
+       \consists "Repeat_engraver";
        \consists "Clef_engraver";
        \consists "Key_engraver";
-       \consists "Local_key_engraver";
        \consists "Time_signature_engraver";
        \consists "Staff_symbol_engraver";
        \consists "Collision_engraver";
        \consists "Rest_collision_engraver";
+       \consists "Local_key_engraver";
+
+       \consistsend "Axis_group_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_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";
 %}
+       defaultClef = #"treble"
+
+       marginBreakPriority = #-5
+
        \consists "Separating_line_group_engraver";
+       \consists "Font_size_engraver";
          
        \accepts "Voice";
-       dynamicStyle = "dynamic";
+       dynamicStyle = #"dynamic"
 };
 
 \translator{\StaffContext }
 \translator {
-       \type "Line_group_engraver_group";
+       \type "Engraver_group_engraver";
        \name ChoirStaff;
-       \consists "Vertical_align_engraver";
+       alignmentReference = \center;   
        \consists "Staff_group_bar_engraver";
+
+
        \accepts "Staff";
        \accepts "RhythmicStaff";
        \accepts "GrandStaff";
        \accepts "PianoStaff";
-       
+
+               
        \accepts "Lyrics";
        \accepts "ChordNames";
 }
 
 
 RhythmicStaffContext=\translator{
-       \type "Line_group_engraver_group";
-       numberOfStaffLines  = "1";
+       \type "Engraver_group_engraver";
+       numberOfStaffLines  = #1
+       
+       barSize = \staffheight;
        \consists "Pitch_squash_engraver";
        \consists "Separating_line_group_engraver";     
        \name RhythmicStaff;
@@ -88,61 +76,104 @@ RhythmicStaffContext=\translator{
        \consists "Bar_engraver";
        \consists "Time_signature_engraver";
        \consists "Staff_symbol_engraver";
+       \consistsend "Axis_group_engraver";
        \accepts "Voice";
 };
 \translator{\RhythmicStaffContext}
 VoiceContext = \translator {
        \type "Engraver_group_engraver";
-       \consists "Dynamic_engraver";
+       dynamicPadding = #5.0
+       \consists "Dynamic_engraver";   % must come before text_engraver.
        \name Voice ;
-       beamAuto = "1";
-       
+
+%      \consists "Tie_engraver";
+       \consists "Breathing_sign_engraver";
        \consists "Rest_engraver";
        \consists "Dot_column_engraver";
        \consists "Stem_engraver";
        \consists "Beam_engraver";
        \consists "Auto_beam_engraver";
        \include "auto-beam-settings.ly";
-       \consists "Abbreviation_beam_engraver";
+       \consists "Chord_tremolo_engraver";
 %      \consists "Multi_measure_rest_engraver";
 
        % ugh.  Order matters here.
+       \consists "Melisma_engraver";
+       textScriptPadding = #3.0
        \consists "Text_engraver";
        \consists "Script_engraver";
+       \consists "Script_column_engraver";
        \consists "Rhythmic_column_engraver";
        \consists "Font_size_engraver";
        \consists "Slur_engraver";
        \consists "Tie_engraver";
-       \consists "Tuplet_engraver";    
-       \consists "Note_heads_engraver" ;       
+       \consists "Tuplet_engraver";
+       \consists "Grace_position_engraver";
        \consists "Skip_req_swallow_translator";
+       \accepts Thread; % bug if you leave out this!
+       \accepts Grace;
+};
+
+GraceContext=\translator {
+       \type "Grace_engraver_group";
+       \name "Grace";
+       \consists "Note_heads_engraver";
+       \consists "Local_key_engraver";
+       \consists "Stem_engraver";
+       \consists "Beam_engraver";
+       \consists "Slur_engraver";
+       
+       \consists "Auto_beam_engraver";
+       \include "auto-beam-settings.ly";
+       \consists "Align_note_column_engraver";
+       \consists "Font_size_engraver";
+       \consists "Rhythmic_column_engraver";
+       \consists "Dynamic_engraver";
+
+       stemStyle = #"grace" 
+       weAreGraceContext = ##t 
+       fontSize = #-1
+       stemLength = #6.0
+       verticalDirection = \up ;
+       graceAccidentalSpace= 1.5 * \interline;
 };
 
+\translator{\GraceContext}
 \translator {\VoiceContext}
 
+ThreadContext = \translator{
+       \type Engraver_group_engraver;
+       \consists "Note_heads_engraver" ;       
+       \name Thread;
+};
+
+\translator{\ThreadContext}
 GrandStaffContext=\translator{
-       \type "Line_group_engraver_group";
+       \type "Engraver_group_engraver";
        \name GrandStaff;
        \consists "Span_bar_engraver";
-       \consists "Vertical_align_engraver";
        \consists "Piano_bar_engraver";
-       minVerticalAlign = 1.5*\staffheight;
 
        \accepts "Staff";
 };
 \translator{\GrandStaffContext}
-\translator{\GrandStaffContext
+
+PianoStaffContext = \translator{\GrandStaffContext
+       alignmentReference = \center;
+
+       \consists "Vertical_align_engraver";
        minVerticalAlign = 3.0*\staffheight;
        maxVerticalAlign = 3.0*\staffheight;
+
+%      \consistsend "Axis_group_engraver";
        \name "PianoStaff";
        
-}
-
-\translator {
-       \type "Hara_kiri_line_group_engraver";
-%      \type "Line_group_engraver_group";
+};
+\translator{\PianoStaffContext}
+StaffGroupContext= \translator {
+       \type "Engraver_group_engraver";
        \consists "Span_bar_engraver";
-       \consists "Vertical_align_engraver";
+       
        \consists "Staff_group_bar_engraver";
        \name StaffGroup;
        \accepts "Staff";
@@ -152,28 +183,38 @@ GrandStaffContext=\translator{
        
        \accepts "Lyrics";
        \accepts "ChordNames";
-}
+};
 
-\translator{
-       \type "Line_group_engraver_group";
+\translator { \StaffGroupContext }
+
+% UGH! JUNKME
+LyricsVoiceContext= \translator{
+       \type "Engraver_group_engraver";
+       \consistsend "Axis_group_engraver";
 
        \name LyricVoice ;
        \consists "Separating_line_group_engraver";
        \consists "Lyric_engraver";
        \consists "Extender_engraver";
-       \consists "Beam_req_swallow_translator";
-}
+       \consists "Hyphen_engraver";
+};
+\translator{ \LyricsVoiceContext }
 
-\translator {
-       \type "Line_group_engraver_group";
+LyricsContext = \translator {
+       \type "Engraver_group_engraver";
        \name Lyrics;
-       \consists "Vertical_align_engraver";
+       \consists Vertical_align_engraver;%need this for getting folded repeats right.
+
+       \consistsend "Axis_group_engraver";
+       
        \accepts "LyricVoice";
-}
+};
+\translator { \LyricsContext }
 
 \translator{
-       \type "Line_group_engraver_group";
+       \type "Engraver_group_engraver";
 
+       \consistsend "Axis_group_engraver";
        \name ChordNameVoice ;
        \consists "Separating_line_group_engraver";
        \consists "Chord_name_engraver";
@@ -181,42 +222,19 @@ GrandStaffContext=\translator{
 
 
 ChordNameContext = \translator {
-       \type "Line_group_engraver_group";
+       \type "Engraver_group_engraver";
        \name ChordNames;
-       \consists "Vertical_align_engraver";
        \accepts "ChordNameVoice";
-};
+       \consistsend "Axis_group_engraver";
+       };
 \translator { \ChordNameContext }
 
-ScoreContext = \translator {
-       \type Score_engraver;
-       \name Score;
-
-       \consists "Timing_engraver";
-
-       \consists "Span_score_bar_engraver";
-       \consists "Score_priority_engraver";
-       \consists "Priority_horizontal_align_engraver";
-       \consists "Vertical_align_engraver";
-
-
-       \accepts "StaffGroup";
-       \accepts "Staff";
-       \accepts "RhythmicStaff";       
-       \accepts "Lyrics";
-       \accepts "ChordNames";
-       \accepts "GrandStaff";
-       \accepts "ChoirStaff";
-       \accepts "PianoStaff";
-};
-\translator { \ScoreContext }
 
 ScoreWithNumbers = \translator {
        \type "Score_engraver";
 
        % uncomment to bar numbers on a whole system.
        \consists "Bar_number_engraver";
-
 };
 
 StupidScore = \translator {
@@ -229,67 +247,60 @@ StupidScore = \translator {
 
 BarNumberingStaffContext = \translator {
        \StaffContext
-       barColumnPriority = "0";
-       marginBreakPriority = "-4";
+       barColumnPriority = #0
+       marginBreakPriority = #-4
        \consists "Mark_engraver";
        \consists "Bar_number_engraver";
-
 };
 
 HaraKiriStaffContext = \translator {
-       \type "Hara_kiri_line_group_engraver";
-       \name Staff;
-       barColumnPriority = "0";
-       marginBreakPriority = "-4";
-
-       \consists "Repeat_engraver";
-       \consists "Bar_engraver";
-       \consists "Clef_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";
-         
+       \StaffContext
+       \remove "Axis_group_engraver";
+       \consistsend "Hara_kiri_engraver";        
        \accepts "Voice";
 };
 
 OrchestralPartStaffContext = \translator {
        \StaffContext
-       barColumnPriority = "0";
-       marginBreakPriority = "-4";
+       barColumnPriority = #0
+       marginBreakPriority = #-4
        \consists "Mark_engraver";
        \consists "Bar_number_engraver";
 };
 
-OrchestralScoreContext= \translator {
+ScoreContext = \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_number_engraver";
-       \consists "Mark_engraver";
        \consists "Span_score_bar_engraver";
        \consists "Score_priority_engraver";
-       \consists "Priority_horizontal_align_engraver";
+       \consists "Spacing_engraver";
        \consists "Vertical_align_engraver";
-
-       \accepts "ChoirStaff";
+       alignmentReference = \down;
+       defaultClef = #"treble"
+       defaultBarType = #"|"
+       \accepts "Staff";
        \accepts "StaffGroup";
-       \accepts "HaraKiriStaff";
        \accepts "RhythmicStaff";       
        \accepts "Lyrics";
        \accepts "ChordNames";
        \accepts "GrandStaff";
+       \accepts "ChoirStaff";
        \accepts "PianoStaff";
-       
+};
+
+\translator { \ScoreContext }
+
+OrchestralScoreContext= \translator {
+       \ScoreContext
+
+       barScriptPadding = #2.0         % dimension \pt
+       markScriptPadding = #4.0
+
+       \consists "Bar_number_engraver";
+       \consists "Mark_engraver";
+
+       \accepts "HaraKiriStaff";
 };