]> git.donarmstrong.com Git - lilypond.git/blobdiff - ly/engraver.ly
release: 1.3.63
[lilypond.git] / ly / engraver.ly
index d3fa0948e5c1721a0ac97eeec9763fcb4e582fad..965b16b80ac42f28dcaf222fca451435f2984fa0 100644 (file)
@@ -26,24 +26,25 @@ StaffContext=\translator {
 
        %  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))
+         ("treble" . ("clefs-G" -2))
+         ("violin" . ("clefs-G" -2))
+         ("G" . ("clefs-G" -2))
+         ("G2" . ("clefs-G" -2))
+         ("french" . ("clefs-G" -4 ))
+         ("soprano" . ("clefs-C" -4 ))
+         ("mezzosoprano" . ("clefs-C" -2 ))
+         ("alto" . ("clefs-C" 0 ))
+         ("tenor" . ("clefs-C" 2 ))
+         ("baritone" . ("clefs-C" 4 ))
+         ("varbaritone"  . ("clefs-F" 0))
+         ("bass" . ("clefs-F" 2 ))
+         ("F" . ( "clefs-F" 2))
+         ("subbass" . ("clefs-F" 4))
+       )
+       % where is c0 in this clef?
+       clefPitches = #'(("clefs-G" . -4)
+         ("clefs-C" . 0)
+         ("clefs-F" . 4))
          
        \consists "Clef_engraver";
        \consists "Key_engraver";
@@ -151,6 +152,7 @@ VoiceContext = \translator {
        stopStartSustain = #"*Ped."
        startUnaChorda = #"una chorda"
        stopUnaChorda = #"tre chorde"
+
        \consists "Piano_pedal_engraver";
        \consists "Script_engraver";
        \consists "Script_column_engraver";
@@ -379,102 +381,275 @@ ScoreContext = \translator {
        defaultBarType = #"|"
        systemStartDelimiterGlyph = #'bar-line
 
+       %
+       % what order to print accs.  We could compute this, 
+       % but computing is more work than putting it here.
+       %
+       % Flats come first, then sharps.
+       keyAccidentalOrder = #'(
+         (6 . -1) (2  . -1) (5 . -1 ) (1  . -1) (4  . -1) (0  . -1) (3  . -1)
+        (3  . 1) (0 . 1) (4 . 1) (1 . 1) (5 . 1) (2 . 1) (6 . 1)
+       )
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        % default settings, mainly for breakable items
+       % in alphabetical order
+       % TODO: uniform naming.;  
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-       basicBarNumberProperties = #`(
-         (breakable . #t)
-         (visibility-lambda . ,begin-of-line-visible)
+
+       %
+       % distances are given in stafflinethickness (thicknesses) and staffspace (distances)
+       %
+       
+       
+       basicBarProperties = #`(
+               (break-align-symbol . Staff_bar)
+               (molecule-callback . ,Bar::brew_molecule)          
+               (visibility-lambda . ,begin-of-line-invisible)
+               (breakable . #t)
+               (before-line-breaking-callback . ,Bar::before_line_breaking)
+               ;;
+               ;; Ross. page 151 lists other values, we opt for a leaner look
+               ;; 
+               (kern . 3.0)
+               (thin-kern . 3.0)
+               (hair-thickness . 1.6)
+               (thick-thickness . 6.0)
        )
-       basicMarkProperties = #'(
-         (breakable . #t)
-         (visibility-lambda . end-of-line-invisible)
+
+       basicBarNumberProperties = #`(
+               (molecule-callback . ,Text_item::brew_molecule)
+               (breakable . #t)
+               (visibility-lambda . ,begin-of-line-visible)
        )
-       leftEdgeBasicProperties = #'(
-         (break-align-symbol . Left_edge_item)
-         (breakable . #t)
+
+       basicBeamProperties = #`(
+               (molecule-callback . ,Beam::brew_molecule)
+               (beam-thickness . 0.42) ; interline
+               (before-line-breaking-callback . ,Beam::before_line_breaking)
+               (after-line-breaking-callback . ,Beam::after_line_breaking)                             
        )
 
-       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)
+       basicBreakAlignProperties = #`(
+               (breakable . #t)
+               (before-line-breaking-callback . ,Break_align_item::before_line_breaking)
+)
+
+       
+       basicBreathingSignProperties = #`(
+               (break-align-symbol . Breathing_sign)
+               (after-line-breaking-callback . ,Breathing_sign::after_line_breaking)
+               (breakable . #t )
+               (molecule-callback . ,Breathing_sign::brew_molecule)
+               (visibility-lambda . ,begin-of-line-invisible)
+
        )
-        basicKeyProperties = #`(
-         (break-align-symbol . Key_item)
-         (visibility-lambda . ,begin-of-line-visible)
-         (breakable . #t)
-         )      
         basicClefItemProperties = #`(
+          (molecule-callback . ,Score_element::brew_molecule)
+          (before-line-breaking-callback . ,Clef_item::before_line_breaking)
           (breakable . #t)
           (break-align-symbol . Clef_item)
           (visibility-lambda . ,begin-of-line-visible) 
         )
-
-       basicBeamProperties = #`(
-               (beam-thickness . 0.42) ; interline!
+       basicSlurProperties = #`(
+               (molecule-callback . ,Slur::brew_molecule)
+               (after-line-breaking-callback . ,Slur::after_line_breaking)
        )
-       basicStemTremoloProperties = #'(
-               (beam-width . 4.0) ; interline!
-               (beam-thickness . 0.42) ; interline!
+       basicChordNameProperties = #`(
+               (molecule-callback . ,Chord_name::brew_molecule)
        )
-
-       basicBreathingSignProperties = #'(
-               (break-align-symbol . Breathing_sign)
-               (breakable . #t )
-               (visibility-lambda . ,begin-of-line-invisible)
+       basicCollisionProperties = #`(
+               (axes 0 1)
+               (before-line-breaking-callback . ,Collision::before_line_breaking)
        )
-       basicOctavateEightProperties  = #'(
-               (self-alignment-X . 0)
-               (text . "8")
-               (style . "italic")
+       basicCrescendoProperties = #`(
+               (molecule-callback . ,Crescendo::brew_molecule)
+       )
+       basicDotsProperties = #`(
+               (molecule-callback . ,Dots::brew_molecule)
+               (after-line-breaking-callback . ,Dots::after_line_breaking)
+               (dot-count . 1) 
        )
        basicDynamicLineSpannerProperties = #`(
-               (transparent . #t)
+
        )
        basicDynamicTextProperties       = # `(
                (style . "dynamic")
+               (molecule-callback . ,Text_item::brew_molecule)
                (script-priority . 100)
                (self-alignment-Y . 0)
        )
+       leftEdgeBasicProperties = #`(
+         (break-align-symbol . Left_edge_item)
+         (breakable . #t)
+       )
+       basicGraceAlignItemProperties = #`(
+               (axes . (0))
+               (before-line-breaking-callback . ,Grace_align_item::before_line_breaking)
+       )
+       basicHaraKiriVerticalGroupspannerProperties = #`(
+               (after-line-breaking-callback . ,Hara_kiri_group_spanner::after_line_breaking)
+       )
+       basicHyphenSpannerProperties = #`(
+               (thickness . 1.0)
+               (height . 0.4)
+               (minimum-length .  0.5) 
+               (molecule-callback . ,Hyphen_spanner::brew_molecule)
+       )
+       basicKeyProperties = #`(
+         (molecule-callback . ,Key_item::brew_molecule)
+         (break-align-symbol . Key_item)
+         (visibility-lambda . ,begin-of-line-visible)
+         (breakable . #t)
+         )     
+       basicLocalKeyProperties = #`(
+               (molecule-callback . ,Local_key_item::brew_molecule)
+               (left-padding . 0.2)
+               (right-padding . 0.4)
+       )
+       basicLyricExtenderProperties = #`(
+               (molecule-callback . ,Lyric_extender::brew_molecule)
+       )
        basicLyricTextProperties = #`(
+               (molecule-callback . ,Text_item::brew_molecule)
                (non-rhythmic . #t)
        )
-       basicRestCollisionProperties = #`(
-               (transparent .  #t)
+       basicMarkProperties = #`(
+         (molecule-callback . ,Text_item::brew_molecule)       
+         (breakable . #t)
+         (visibility-lambda . ,end-of-line-invisible)
        )
-       basicCollisionProperties = #`(
-               (transparent .  #t)
+       basicMultiMeasureRestProperties = #`(
+               (molecule-callback . ,Multi_measure_rest::brew_molecule)
+               (staff-position . 0)
+               (after-line-breaking-callback . ,Multi_measure_rest::after_line_breaking)
+       )
+       basicNoteColumnProperties = #`(
                (axes 0 1)
        )
-       basicSingleMaltGroupingItemProperties = #'(
-               (transparent . #t)
+       basicNoteHeadProperties = #`(
+               (molecule-callback . ,Note_head::brew_molecule)
+       )
+       basicOctavateEightProperties  = #`(
+               (self-alignment-X . 0)
+               (text . "8")
+               (visibility-lambda . ,begin-of-line-visible) 
+               (molecule-callback . ,Text_item::brew_molecule)
+               (style . "italic")
+       )
+       basicPedalProperties = #`(
+               (molecule-callback . ,Text_item::brew_molecule)
+               (style . "italic")
+               (no-spacing-rods . #t)
+               (self-alignment-X . 0)
+                               
+       )
+       basicTextProperties = #`( )
+       basicRestProperties = #`( 
+               (molecule-callback . ,Rest::brew_molecule)
+       )
+       
+       basicRestCollisionProperties = #`(
+               (after-line-breaking-callback . ,Rest_collision::after_line_breaking)
        )
-       basicBreakAlignProperties = #'(
+       basicScriptProperties    = #`(
+               (molecule-callback . ,Script::brew_molecule)
+       )
+               
+       basicSlurProperties = #`(
+               (molecule-callback . ,Slur::brew_molecule)
+               (after-line-breaking-callback . ,Slur::after_line_breaking) 
+       )
+       basicSpanBarProperties = #`(
+               (break-align-symbol . Staff_bar)
+               (molecule-callback . ,Bar::brew_molecule)
+               (visibility-lambda . ,begin-of-line-invisible)
+               (breakable . #t)
+               (before-line-breaking-callback . ,Span_bar::before_line_breaking)
+               (after-line-breaking-callback . ,Span_bar::after_line_breaking)
+
+               ;; ugh duplication! 
+               
+               ;;
+               ;; Ross. page 151 lists other values, we opt for a leaner look
+               ;; 
+               (kern . 3.0)
+               (thin-kern . 3.0)
+               (hair-thickness . 1.6)
+               (thick-thickness . 6.0)
+
+       )
+       basicSustainPedalProperties = #`(
+               (no-spacing-rods . #t)
+               (molecule-callback . ,Sustain_pedal::brew_molecule)
+               (self-alignment-X . 0)
+       )       
+       basicSystemStartDelimiterProperties = #`(
+               (molecule-callback . ,System_start_delimiter::brew_molecule)
+               (after-line-breaking-callback . ,System_start_delimiter::after_line_breaking) 
+               (collapse-height . 1.0)
+               (thickness . 1.6)
+               (arch-height . 1.5)
+               (arch-angle . 50.0)
+               (arch-thick . 0.25)
+               (arch-width . 1.5)
+               (bracket-thick . 0.25)
+               (bracket-width . 2.0)
+       )
+       basicStemProperties = #`(
+               (before-line-breaking-callback . ,Stem::before_line_breaking)
+               (molecule-callback . ,Stem::brew_molecule)
+       )
+       staffSymbolBasicProperties = #`(
+               (molecule-callback . ,Staff_symbol::brew_molecule)
+               (staff-space . 1.0 )
+               (line-count . 5 )
+       )
+       basicTextScriptProperties = #`(
+               (molecule-callback . ,Text_item::brew_molecule)
+               (no-spacing-rods . #t)
+       )
+       basicTimeSignatureProperties = #`(
+               (molecule-callback . ,Time_signature::brew_molecule)
+               (break-align-symbol . Time_signature)
+               (visibility-lambda . ,all-visible)
                (breakable . #t)
+       )
+       basicTieProperties = #`(
+               (molecule-callback . ,Tie::brew_molecule)
+               (after-line-breaking-callback . ,Tie::after_line_breaking)              
+       )
+       basicTieColumnProperties = #`(
+               (after-line-breaking-callback . ,Tie_column::after_line_breaking)
+       )
+       basicTupletSpannerProperties = #`(
+               (number-gap . 2.0)   
+               (thick . 1.0)
+               (after-line-breaking-callback . ,Tuplet_spanner::after_line_breaking)
+               (molecule-callback . ,Tuplet_spanner::brew_molecule)
+       )       
+       basicStemTremoloProperties = #`(
+               (molecule-callback . ,Stem_tremolo::brew_molecule)
+               (beam-width . 4.0) ; interline!
+               (beam-thickness . 0.42) ; interline!            
+       )
+
+       basicSingleMaltGroupingItemProperties = #`(
+
        )
        basicInstrumentNameProperties = #`(
                (breakable . #t)
+               (molecule-callback . ,Text_item::brew_molecule)         
                (break-align-symbol . Instrument_name)
                (visibility-lambda . ,begin-of-line-visible)
        )
-       basicLocalKeyProperties = #`(
-         (left-padding . 0.2)
-         (right-padding . 0.4)
+       basicVerticalAxisGroupProperties = #`(
+               (axes 1)
        )
-
+       basicVoltaSpannerProperties = #`(
+               (molecule-callback . ,Volta_spanner::brew_molecule)
+               (after-line-breaking-callback . ,Volta_spanner::after_line_breaking) 
+       )
+       
        \accepts "Staff";
        \accepts "StaffGroup";
        \accepts "RhythmicStaff";