]> git.donarmstrong.com Git - lilypond.git/blobdiff - ly/engraver.ly
patch::: 1.3.55.jcn1
[lilypond.git] / ly / engraver.ly
index dce0e249ebdeaa732a594507befcfe1cd5d8560e..d3fa0948e5c1721a0ac97eeec9763fcb4e582fad 100644 (file)
@@ -5,48 +5,83 @@
 StaffContext=\translator {
        \type "Engraver_group_engraver";
        \name Staff ;
-       barAuto = "1";
-       voltaVisibility = "1";
-
+       \consists "Output_property_engraver";   
+       barAuto = ##t
+       voltaVisibility = ##t
+       Generic_property_list = #generic-staff-properties
+       \consists "Property_engraver";
+       
        \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.
+
+       voltaPadding = #5  % urg, in \pt
+       voltaMinimumSpace = #25  % urg, in \pt
+
+       StaffMinimumVerticalExtent = #(cons -4.0 4.0)
+
+       \consists "Repeat_engraver";
+
+
+       %  name, glyph id, c0 position
+       supportedClefTypes = #'(
+         ("treble" . ("G" -2))
+         ("violin" . ("G" -2))
+         ("G" . ("G" -2))
+         ("G2" . ("G" -2))
+         ("french" . ("G" -4 ))
+         ("soprano" . ("C" -4 ))
+         ("mezzosoprano" . ("C" -2 ))
+         ("alto" . ("C" 0 ))
+         ("tenor" . ("C" 2 ))
+         ("baritone" . ("C" 4 ))
+         ("varbaritone"  . ("F" 0))
+         ("bass" . ("F" 2 ))
+         ("F" . ( "F" 2))
+         ("subbass" . ("F" 4))
+       )
+       clefPitches = #'(("G" . -4)
+         ("C" . 0)
+         ("F" . 4))
+         
        \consists "Clef_engraver";
        \consists "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";
 
 
 
 %{
-       The Staff_margin_engraver puts the name of the instrument
+       The Instrument_name_engraver puts the name of the instrument
        (\property Staff.instrument; Staff.instr for subsequent lines)
        to the left of a staff.
-%}
-%{
-       \consists "Staff_margin_engraver";
-%}
-       defaultClef = treble;
+       Usually, you only want this in the full score, not in the parts.
 
-       marginBreakPriority = "-5";
+       \consists "Instrument_name_engraver";
+%}
 
+       defaultClef = #"treble"
 
        \consists "Separating_line_group_engraver";
-       \consists "Font_size_engraver";
          
        \accepts "Voice";
-       dynamicStyle = "dynamic";
+       dynamicStyle = #"dynamic"
 };
 
 \translator{\StaffContext }
 \translator {
        \type "Engraver_group_engraver";
        \name ChoirStaff;
-       alignmentReference = \center;   
-       \consists "Staff_group_bar_engraver";
+       alignmentReference = \center;
+       \consists "System_start_delimiter_engraver";
+       systemStartDelimiterGlyph = #'bracket
+
 
 
        \accepts "Staff";
@@ -62,11 +97,19 @@ StaffContext=\translator {
 
 RhythmicStaffContext=\translator{
        \type "Engraver_group_engraver";
-       numberOfStaffLines  = "1";
+       numberOfStaffLines  = #1
+       \consists "Property_engraver";
+       \consists "Output_property_engraver";   
+
+       Generic_property_list = #generic-staff-properties
+       
+       barSize =   4.0 * \interline ; 
        \consists "Pitch_squash_engraver";
        \consists "Separating_line_group_engraver";     
        \name RhythmicStaff;
 
+       voltaPadding = #5  % urg, in \pt
+       voltaMinimumSpace = #15  % urg, in \pt
        \consists "Repeat_engraver";
        \consists "Bar_engraver";
        \consists "Time_signature_engraver";
@@ -75,29 +118,43 @@ RhythmicStaffContext=\translator{
        \accepts "Voice";
 };
 \translator{\RhythmicStaffContext}
+
 VoiceContext = \translator {
        \type "Engraver_group_engraver";
+       \name Voice;
+
+       dynamicPadding = #3  % urg, in \pt
+       dynamicMinimumSpace = #6  % urg, in \pt
+
+       Generic_property_list = #generic-voice-properties
+       \consists "Output_property_engraver";   
+
        \consists "Dynamic_engraver";   % must come before text_engraver.
-       \name Voice ;
-       \consists "Local_key_engraver";
+       \consists "Property_engraver";
        
        \consists "Breathing_sign_engraver";
        \consists "Rest_engraver";
        \consists "Dot_column_engraver";
        \consists "Stem_engraver";
        \consists "Beam_engraver";
-       beamAuto = "1";
        \consists "Auto_beam_engraver";
        \include "auto-beam-settings.ly";
-%      \consists "Abbreviation_beam_engraver";
-%      \consists "Multi_measure_rest_engraver";
 
-       % ugh.  Order matters here.
+       \consists "Chord_tremolo_engraver";
+       \consists "Melisma_engraver";
+       textScriptPadding = #3.0
        \consists "Text_engraver";
+
+
+       startSustain = #"Ped."
+       stopSustain = #"*"
+       stopStartSustain = #"*Ped."
+       startUnaChorda = #"una chorda"
+       stopUnaChorda = #"tre chorde"
+       \consists "Piano_pedal_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";
@@ -110,24 +167,34 @@ VoiceContext = \translator {
 GraceContext=\translator {
        \type "Grace_engraver_group";
        \name "Grace";
+       \consists "Output_property_engraver";   
+
+       Generic_property_list = #generic-grace-properties
+       
        \consists "Note_heads_engraver";
        \consists "Local_key_engraver";
        \consists "Stem_engraver";
-       \consists "Slur_engraver";
-       \consists "Timing_engraver";    %UGH.
        \consists "Beam_engraver";
-       beamAuto = "1";
+       \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";
+       \consists "Text_engraver";
 
-       stemStyle = "grace";
-       weAreGraceContext = "1";
-       fontSize = "-1";
-       stemLength = "6.0";
-       verticalDirection = "1";
+       \consists "Property_engraver";
+
+       stemStyle = #"grace"
+       flagStyle = #"grace" 
+       weAreGraceContext = ##t 
+       fontSize = #-1
+       
+       stemLength = #6.0
+       verticalDirection = \up ;
+       graceAccidentalSpace= 1.5 * \staffspace;
 };
 
 \translator{\GraceContext}
@@ -135,7 +202,10 @@ GraceContext=\translator {
 
 ThreadContext = \translator{
        \type Engraver_group_engraver;
-       \consists "Note_heads_engraver" ;       
+       \consists "Note_heads_engraver" ;
+       \consists "Output_property_engraver";   
+       Generic_property_list = #generic-thread-properties
+       \consists "Property_engraver";
        \name Thread;
 };
 
@@ -144,11 +214,12 @@ GrandStaffContext=\translator{
        \type "Engraver_group_engraver";
        \name GrandStaff;
        \consists "Span_bar_engraver";
-       \consists "Piano_bar_engraver";
-
-
+       \consists "System_start_delimiter_engraver";
+       systemStartDelimiterGlyph = #'brace
+       
+       \consists "Property_engraver";  
+       Generic_property_list = #generic-grand-staff-properties
        \accepts "Staff";
-
 };
 \translator{\GrandStaffContext}
 
@@ -167,9 +238,14 @@ PianoStaffContext = \translator{\GrandStaffContext
 StaffGroupContext= \translator {
        \type "Engraver_group_engraver";
        \consists "Span_bar_engraver";
+       \consists "Output_property_engraver";   
+       \consists "System_start_delimiter_engraver";
+       systemStartDelimiterGlyph = #'bracket
+       
+
+
+
 
-       
-       \consists "Staff_group_bar_engraver";
        \name StaffGroup;
        \accepts "Staff";
        \accepts "RhythmicStaff";
@@ -179,9 +255,11 @@ StaffGroupContext= \translator {
        \accepts "Lyrics";
        \accepts "ChordNames";
 };
+
 \translator { \StaffGroupContext }
 
-\translator{
+% UGH! JUNKME
+LyricsVoiceContext= \translator{
        \type "Engraver_group_engraver";
        \consistsend "Axis_group_engraver";
 
@@ -189,31 +267,40 @@ StaffGroupContext= \translator {
        \consists "Separating_line_group_engraver";
        \consists "Lyric_engraver";
        \consists "Extender_engraver";
-}
+       \consists "Hyphen_engraver";
+};
+\translator{ \LyricsVoiceContext }
 
-\translator {
+LyricsContext = \translator {
        \type "Engraver_group_engraver";
        \name Lyrics;
-       \consists Vertical_align_engraver;%need this for getting folded repeats right.
-
+       \consists Vertical_align_engraver; %need this for getting folded repeats right.
+       Generic_property_list = #generic-lyrics-properties
+       \consists "Property_engraver";
        \consistsend "Axis_group_engraver";
        
        \accepts "LyricVoice";
-}
+};
+\translator { \LyricsContext }
 
-\translator{
+ChordNameVoiceContext = \translator {
        \type "Engraver_group_engraver";
+       \name ChordNameVoice ;
 
+       \consists "Output_property_engraver";   
        \consistsend "Axis_group_engraver";
-       \name ChordNameVoice ;
        \consists "Separating_line_group_engraver";
        \consists "Chord_name_engraver";
-}
-
+};
+\translator {\ChordNameVoiceContext}
 
 ChordNameContext = \translator {
        \type "Engraver_group_engraver";
        \name ChordNames;
+
+       Generic_property_list = #generic-chord-staff-properties
+       \consists "Property_engraver";  
+       \consists "Output_property_engraver";   
        \accepts "ChordNameVoice";
        \consistsend "Axis_group_engraver";
        };
@@ -237,38 +324,156 @@ StupidScore = \translator {
 
 BarNumberingStaffContext = \translator {
        \StaffContext
-       barColumnPriority = "0";
-       marginBreakPriority = "-4";
        \consists "Mark_engraver";
-       \consists "Bar_number_engraver";
 };
 
 HaraKiriStaffContext = \translator {
        \StaffContext
        \remove "Axis_group_engraver";
        \consistsend "Hara_kiri_engraver";        
+       \consists "Instrument_name_engraver";
        \accepts "Voice";
 };
+%{
+  The HaraKiriStaffContexts doesn't override \name,
+  so it is still named `Staff'.
+
+  %\translator { \HaraKiriStaffContext }
+%}
 
 OrchestralPartStaffContext = \translator {
        \StaffContext
-       barColumnPriority = "0";
-       marginBreakPriority = "-4";
        \consists "Mark_engraver";
-       \consists "Bar_number_engraver";
 };
 
 ScoreContext = \translator {
        \type Score_engraver;
        \name Score;
 
+       marginScriptPadding = #10  % urg, in \pt
+
        \consists "Timing_engraver";
-       \consists "Span_score_bar_engraver";
-       \consists "Score_priority_engraver";
+       \consists "Output_property_engraver";   
+
+       %bracketCollapseHeight = #10  % \pt
+       \consists "System_start_delimiter_engraver";
+       
+%      \consists "Score_priority_engraver";
+       \consists "Break_align_engraver";
+       breakAlignOrder = #'(
+         Instrument_name
+         Left_edge_item
+         Span_bar
+         Breathing_sign
+         Clef_item
+         Key_item
+         Staff_bar
+         Time_signature
+       )
        \consists "Spacing_engraver";
+
        \consists "Vertical_align_engraver";
+       \consists "Bar_number_engraver";
        alignmentReference = \down;
-       defaultClef = treble;
+       defaultClef = #"treble"
+       defaultBarType = #"|"
+       systemStartDelimiterGlyph = #'bar-line
+
+       %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+       % default settings, mainly for breakable items
+       %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+       basicBarNumberProperties = #`(
+         (breakable . #t)
+         (visibility-lambda . ,begin-of-line-visible)
+       )
+       basicMarkProperties = #'(
+         (breakable . #t)
+         (visibility-lambda . end-of-line-invisible)
+       )
+       leftEdgeBasicProperties = #'(
+         (break-align-symbol . Left_edge_item)
+         (breakable . #t)
+       )
+
+       staffSymbolBasicProperties = #'(
+        (staff-space . 1.0 )
+        (line-count . 5 )
+        )
+        basicTimeSignatureProperties = #`(
+         (break-align-symbol . Time_signature)
+         (visibility-lambda . ,all-visible)
+         (breakable . #t)
+        )
+        basicBarlineProperties = #`(
+          (break-align-symbol . Staff_bar)
+          (visibility-lambda . ,begin-of-line-invisible)
+          (breakable . #t)
+          )
+       basicSystemStartDelimiterProperties = #'(
+         (collapse-height . 1.0)
+       )
+        basicKeyProperties = #`(
+         (break-align-symbol . Key_item)
+         (visibility-lambda . ,begin-of-line-visible)
+         (breakable . #t)
+         )      
+        basicClefItemProperties = #`(
+          (breakable . #t)
+          (break-align-symbol . Clef_item)
+          (visibility-lambda . ,begin-of-line-visible) 
+        )
+
+       basicBeamProperties = #`(
+               (beam-thickness . 0.42) ; interline!
+       )
+       basicStemTremoloProperties = #'(
+               (beam-width . 4.0) ; interline!
+               (beam-thickness . 0.42) ; interline!
+       )
+
+       basicBreathingSignProperties = #'(
+               (break-align-symbol . Breathing_sign)
+               (breakable . #t )
+               (visibility-lambda . ,begin-of-line-invisible)
+       )
+       basicOctavateEightProperties  = #'(
+               (self-alignment-X . 0)
+               (text . "8")
+               (style . "italic")
+       )
+       basicDynamicLineSpannerProperties = #`(
+               (transparent . #t)
+       )
+       basicDynamicTextProperties       = # `(
+               (style . "dynamic")
+               (script-priority . 100)
+               (self-alignment-Y . 0)
+       )
+       basicLyricTextProperties = #`(
+               (non-rhythmic . #t)
+       )
+       basicRestCollisionProperties = #`(
+               (transparent .  #t)
+       )
+       basicCollisionProperties = #`(
+               (transparent .  #t)
+               (axes 0 1)
+       )
+       basicSingleMaltGroupingItemProperties = #'(
+               (transparent . #t)
+       )
+       basicBreakAlignProperties = #'(
+               (breakable . #t)
+       )
+       basicInstrumentNameProperties = #`(
+               (breakable . #t)
+               (break-align-symbol . Instrument_name)
+               (visibility-lambda . ,begin-of-line-visible)
+       )
+       basicLocalKeyProperties = #`(
+         (left-padding . 0.2)
+         (right-padding . 0.4)
+       )
 
        \accepts "Staff";
        \accepts "StaffGroup";
@@ -278,6 +483,10 @@ ScoreContext = \translator {
        \accepts "GrandStaff";
        \accepts "ChoirStaff";
        \accepts "PianoStaff";
+       \accepts "NoteNames";
+
+
+       markVisibilityFunction = #end-of-line-invisible
 };
 
 \translator { \ScoreContext }
@@ -285,11 +494,15 @@ ScoreContext = \translator {
 OrchestralScoreContext= \translator {
        \ScoreContext
 
-       barScriptPadding = "2.0";       % dimension \pt
-       markScriptPadding = "4.0";
+       barScriptPadding = #2.0         % dimension \pt
+       markScriptPadding = #4.0
 
-       \consists "Bar_number_engraver";
        \consists "Mark_engraver";
-
-       \accepts "HaraKiriStaff";
 };
+
+\translator {
+       \type "Engraver_group_engraver";
+       \name NoteNames;
+       \consistsend "Axis_group_engraver";
+       \consists "Note_name_engraver";
+}