]> git.donarmstrong.com Git - lilypond.git/blobdiff - ly/engraver.ly
release: 1.3.70
[lilypond.git] / ly / engraver.ly
index d51ddb210e1aded0868f05a1f06c693473a6936d..da81fa71ef47c2062146e0e8f325e8225bc89d09 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";
@@ -103,7 +104,7 @@ RhythmicStaffContext=\translator{
 
        Generic_property_list = #generic-staff-properties
        
-       barSize = #'staff-height
+       barSize =   4.0 * \interline ; 
        \consists "Pitch_squash_engraver";
        \consists "Separating_line_group_engraver";     
        \name RhythmicStaff;
@@ -145,11 +146,13 @@ VoiceContext = \translator {
        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";
@@ -376,6 +379,340 @@ ScoreContext = \translator {
        alignmentReference = \down;
        defaultClef = #"treble"
        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.;  
+       %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+       %
+       % distances are given in stafflinethickness (thicknesses) and staffspace (distances)
+       %
+       
+       
+       basicBarProperties = #`(
+               (break-align-symbol . Staff_bar)
+               (barsize-procedure . ,Bar::get_staff_bar_size)
+               (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)
+
+               (interfaces . (bar-interface staff-bar-interface))              
+       )
+
+       basicBarNumberProperties = #`(
+               (molecule-callback . ,Text_item::brew_molecule)
+               (breakable . #t)
+               (visibility-lambda . ,begin-of-line-visible)
+       )
+
+       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)
+               (default-neutral-direction . 1)
+               (interfaces . (beam-interface))
+               (damping . 1)
+       )
+
+       basicBreakAlignProperties = #`(
+               (breakable . #t)
+               (interfaces . (break-align-interface))
+               (stacking-dir . 1)
+               (axes 0)
+       )
+       basicBreakAlignGroupProperties = #`(
+               (interfaces . (axis-group-interface))
+               (axes  . (0))
+       )
+       basicBreathingSignProperties = #`(
+               (break-align-symbol . Breathing_sign)
+               (breakable . #t )
+               (molecule-callback . ,Breathing_sign::brew_molecule)
+               (visibility-lambda . ,begin-of-line-invisible)
+               (interfaces . (breathing-sign-interface))
+       )
+        basicClefItemProperties = #`(
+          (molecule-callback . ,Score_element::brew_molecule)
+          (before-line-breaking-callback . ,Clef::before_line_breaking)
+          (breakable . #t)
+          (break-align-symbol . Clef_item)
+          (visibility-lambda . ,begin-of-line-visible)
+          (interfaces .  (clef-interface))
+        )
+       basicChordNameProperties = #`(
+               (molecule-callback . ,Chord_name::brew_molecule)
+               (interfaces . (chord-name-interface))
+       )
+       basicCollisionProperties = #`(
+               (axes 0 1)
+               (interfaces . (collision-interface))
+       )
+       basicCrescendoProperties = #`(
+               (molecule-callback . ,Crescendo::brew_molecule)
+               (interfaces . (crescendo-interface dynamic-interface))
+       )
+       basicDotColumnProperties = #`(
+               (interfaces . (dot-column-interface axis-group-interface ))
+               (axes 0 )
+       )
+       basicDotsProperties = #`(
+               (molecule-callback . ,Dots::brew_molecule)
+               (dot-count . 1)
+               (interfaces . (dot-interface))
+       )
+       basicDynamicLineSpannerProperties = #`(
+               (interfaces (dynamic-interface axis-group-interface))
+               (axes . ( 1))
+       )
+       basicDynamicTextProperties       = # `(
+               (style . "dynamic")
+               (interface (dynamic-interface))
+               (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))
+               (interfaces . (axis-group-interface align-interface))
+               (before-line-breaking-callback . ,Grace_align_item::before_line_breaking)
+       )
+       basicHaraKiriVerticalGroupspannerProperties = #`(
+               (interfaces . (hara-kiri-interface))
+               (axes 1)
+       )
+       basicHyphenSpannerProperties = #`(
+               (thickness . 1.0)
+               (height . 0.4)
+               (minimum-length .  0.5) 
+               (molecule-callback . ,Hyphen_spanner::brew_molecule)
+       )
+       basicKeyProperties = #`(
+         (molecule-callback . ,Key_item::brew_molecule)
+         (interfaces . (key-item-interface))
+         (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)
+               (interfaces . (accidentals-interface ))
+       )
+       basicLineOfScoreProperties = #`(
+               (axes . (0 1))
+               (interfaces . (axis-group-interface))
+       )
+       basicLyricExtenderProperties = #`(
+               (molecule-callback . ,Lyric_extender::brew_molecule)
+       )
+       basicLyricTextProperties = #`(
+               (molecule-callback . ,Text_item::brew_molecule)
+               (self-alignment-X . 0)
+               (non-rhythmic . #t)
+               (interfaces .  (text-item-interface))
+       )
+       basicMarkProperties = #`(
+         (molecule-callback . ,Text_item::brew_molecule)       
+         (breakable . #t)
+         (interfaces . (mark-interface))
+         (visibility-lambda . ,end-of-line-invisible)
+       )
+       basicMultiMeasureRestProperties = #`(
+               (spacing-procedure . ,Multi_measure_rest::set_spacing_rods)             
+               (molecule-callback . ,Multi_measure_rest::brew_molecule)
+               (staff-position . 0)
+       )
+       basicNoteColumnProperties = #`(
+               (axes 0 1)
+               (interfaces . (axis-group-interface note-column-interface))
+       )
+       basicNoteHeadProperties = #`(
+               (interfaces . (note-head-interface rhythmic-head-interface))
+               (molecule-callback . ,Note_head::brew_molecule)
+       )
+       basicNoteNameProperties = #`(
+               (molecule-callback . ,Text_item::brew_molecule)
+       )
+       basicOctavateEightProperties  = #`(
+               (self-alignment-X . 0)
+               (text . "8")
+               (visibility-lambda . ,begin-of-line-visible) 
+               (molecule-callback . ,Text_item::brew_molecule)
+               (style . "italic")
+       )
+       basicPaperColumnProperties = #`(
+               (interfaces . (paper-column-interface axis-group-interface))
+               (axes 0)
+               (rank . -1)
+       )
+       basicPedalProperties = #`(
+               (molecule-callback . ,Text_item::brew_molecule)
+               (style . "italic")
+               (no-spacing-rods . #t)
+               (self-alignment-X . 0)
+                               
+       )
+       basicTextProperties = #`( )
+       basicRestProperties = #`(
+               (interfaces . (rest-interface rhythmic-head-interface)) 
+               (molecule-callback . ,Rest::brew_molecule)
+               (minimum-beam-collision-distance . 1.5)
+       )
+       
+       basicRestCollisionProperties = #`(
+               (minimum-distance . 0.75)
+               (interfaces . (rest-collision-interface))
+       )
+       basicScriptProperties    = #`(
+               (molecule-callback . ,Script::brew_molecule)
+               (interface . (script-interface))
+       )
+       basicScriptColumnProperties = #`(
+               (before-line-breaking-callback . ,Script_column::before_line_breaking)
+       )
+       basicSlurProperties = #`(
+               (molecule-callback . ,Slur::brew_molecule)
+               (spacing-procedure . ,Slur::set_spacing_rods)           
+               (after-line-breaking-callback . ,Slur::after_line_breaking) 
+       )
+       basicSpacingSpannerProperties =#`(
+               (spacing-procedure . ,Spacing_spanner::set_springs)
+       )
+       basicSpanBarProperties = #`(
+               (break-align-symbol . Staff_bar)
+               (barsize-procedure . ,Span_bar::get_bar_size) 
+               (molecule-callback . ,Bar::brew_molecule)
+               (visibility-lambda . ,begin-of-line-invisible)
+               (breakable . #t)
+               (before-line-breaking-callback . ,Span_bar::before_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)
+               (interfaces . (bar-interface span-bar-interface))
+       )
+       basicSustainPedalProperties = #`(
+               (no-spacing-rods . #t)
+               (molecule-callback . ,Sustain_pedal::brew_molecule)
+               (self-alignment-X . 0)
+               (interface . (sustain-pedal-interface))
+       )       
+       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)
+
+               ; if stem is on middle line, choose this direction.
+               (default-neutral-direction . 1)
+               (interfaces . (stem-interface))
+       )
+       staffSymbolBasicProperties = #`(
+               (molecule-callback . ,Staff_symbol::brew_molecule)
+               (staff-space . 1.0)
+               (line-count . 5 )
+               (interfaces . (staff-symbol-interface ))
+       )
+       basicTextScriptProperties = #`(
+               (molecule-callback . ,Text_item::brew_molecule)
+               (no-spacing-rods . #t)
+               (interfaces . (text-script-interface text-item-interface))
+       )
+       basicTieProperties = #`(
+               (molecule-callback . ,Tie::brew_molecule)
+               (after-line-breaking-callback . ,Tie::after_line_breaking)
+               (spacing-procedure . ,Tie::set_spacing_rods)                            
+               (interfaces . (tie-interface))
+       )
+       basicTieColumnProperties = #`(
+               (after-line-breaking-callback . ,Tie_column::after_line_breaking)
+               (interfaces . (tie-column-interface))
+       )
+       basicTimeSignatureProperties = #`(
+               (molecule-callback . ,Time_signature::brew_molecule)
+               (break-align-symbol . Time_signature)
+               (visibility-lambda . ,all-visible)
+               (breakable . #t)
+               (interfaces . (time-signature-interface))
+       )
+       basicTupletSpannerProperties = #`(
+               (number-gap . 2.0)   
+               (delta-y . 0)
+               (thick . 1.0)
+               (after-line-breaking-callback . ,Tuplet_spanner::after_line_breaking)
+               (molecule-callback . ,Tuplet_spanner::brew_molecule)
+               (interfaces . (tuplet-spanner-interface))
+       )       
+       basicStemTremoloProperties = #`(
+               (molecule-callback . ,Stem_tremolo::brew_molecule)
+               (beam-width . 4.0) ; interline!
+               (beam-thickness . 0.42) ; interline!            
+       )
+
+       basicSeparationItemProperties = #`(
+               (interfaces . (separation-item-interface))
+       )
+       basicSeparatingGroupSpannerProperties = #`(
+               (interfaces . (separation-spanner-interface))
+               (spacing-procedure . ,Separating_group_spanner::set_spacing_rods)
+       )
+       basicInstrumentNameProperties = #`(
+               (breakable . #t)
+               (molecule-callback . ,Text_item::brew_molecule)         
+               (break-align-symbol . Instrument_name)
+               (visibility-lambda . ,begin-of-line-visible)
+       )
+       basicVerticalAxisGroupProperties = #`(
+               (axes 1)
+               (interfaces . (axis-group-interface))
+       )
+       basicVoltaSpannerProperties = #`(
+               (molecule-callback . ,Volta_spanner::brew_molecule)
+               (interfaces . (volta-spanner-interface))
+       )
+       
        \accepts "Staff";
        \accepts "StaffGroup";
        \accepts "RhythmicStaff";       
@@ -388,7 +725,6 @@ ScoreContext = \translator {
 
 
        markVisibilityFunction = #end-of-line-invisible
-       barNumberVisibilityFunction = #begin-of-line-visible
 };
 
 \translator { \ScoreContext }