]> git.donarmstrong.com Git - lilypond.git/blobdiff - ly/engraver.ly
release: 1.3.111
[lilypond.git] / ly / engraver.ly
index 0f179cb3c999b55aa6218d01ee5e0c2857eff27e..e6cca6f7ecd31c4e7bf35dd94ff0b2d1d25c551e 100644 (file)
@@ -1,4 +1,6 @@
-%
+
+\version "1.3.110"
+       %
 % setup for Request->Element conversion. Guru-only
 %
 
@@ -6,39 +8,22 @@ StaffContext=\translator {
        \type "Engraver_group_engraver";
        \name Staff ;
        \consists "Output_property_engraver";   
-       barAuto = ##t
-       voltaVisibility = ##t
        Generic_property_list = #generic-staff-properties
        \consists "Property_engraver";
        
        \consists "Multi_measure_rest_engraver";
+
        \consists "Bar_engraver";
  % Bar_engraver must be first so default bars aren't overwritten
 % with empty ones.
-       \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 "Repeat_engraver";
+       \consists "Volta_engraver";
+       \consists "Separating_line_group_engraver";     
+
+
+
        \consists "Clef_engraver";
        \consists "Key_engraver";
        \consists "Time_signature_engraver";
@@ -46,42 +31,36 @@ StaffContext=\translator {
        \consists "Collision_engraver";
        \consists "Rest_collision_engraver";
        \consists "Local_key_engraver";
+       \consists "Piano_pedal_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.
-       Usually, you only want this in the full score, not in the parts.
 
-       \consists "Staff_margin_engraver";
+       This is commented out, so you don't get funny things on the
+       PianoStaff      
+       \consists "Instrument_name_engraver";
 %}
 
-       defaultClef = #"treble"
 
-       \consists "Separating_line_group_engraver";
          
        \accepts "Voice";
-       dynamicStyle = #"dynamic"
-};
+}
 
-\translator{\StaffContext }
-\translator {
+ChoirStaffContext = \translator {
        \type "Engraver_group_engraver";
        \name ChoirStaff;
-       alignmentReference = \center;   
-       \consists "Staff_group_bar_engraver";
-
+       alignmentReference = \center;
+       \consists "System_start_delimiter_engraver";
+       SystemStartDelimiter \override #'glyph = #'bracket
 
        \accepts "Staff";
        \accepts "RhythmicStaff";
        \accepts "GrandStaff";
        \accepts "PianoStaff";
-
-               
        \accepts "Lyrics";
        \accepts "ChordNames";
 }
@@ -89,35 +68,41 @@ StaffContext=\translator {
 
 RhythmicStaffContext=\translator{
        \type "Engraver_group_engraver";
-       numberOfStaffLines  = #1
+       
        \consists "Property_engraver";
        \consists "Output_property_engraver";   
 
        Generic_property_list = #generic-staff-properties
-       
-       barSize = #'staff-height
+
        \consists "Pitch_squash_engraver";
        \consists "Separating_line_group_engraver";     
        \name RhythmicStaff;
+       Bar \override #'bar-size = #4
+       VoltaBracket \override #'minimum-space =  #15  % urg, in \pt
+       VoltaBracket \override #'padding =  #5  % urg, in \pt
+       StaffSymbol \override #'line-count = #1 
 
-       \consists "Repeat_engraver";
+%      \consists "Repeat_engraver";
+       \consists "Volta_engraver";
        \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";
        \name Voice;
 
-       dynamicPadding = #5  % urg, in \pt
        Generic_property_list = #generic-voice-properties
+       
        \consists "Output_property_engraver";   
+       \consists "Arpeggio_engraver";
 
        \consists "Dynamic_engraver";   % must come before text_engraver.
+       \consists "Text_spanner_engraver";
        \consists "Property_engraver";
        
        \consists "Breathing_sign_engraver";
@@ -126,12 +111,13 @@ VoiceContext = \translator {
        \consists "Stem_engraver";
        \consists "Beam_engraver";
        \consists "Auto_beam_engraver";
-       \include "auto-beam-settings.ly";
-       \consists "Chord_tremolo_engraver";
 
+       \consists "Chord_tremolo_engraver";
        \consists "Melisma_engraver";
-       textScriptPadding = #3.0
        \consists "Text_engraver";
+       \consists "A2_engraver";
+       \consists "Voice_devnull_engraver";
+
        \consists "Script_engraver";
        \consists "Script_column_engraver";
        \consists "Rhythmic_column_engraver";
@@ -142,7 +128,7 @@ VoiceContext = \translator {
        \consists "Skip_req_swallow_translator";
        \accepts Thread; % bug if you leave out this!
        \accepts Grace;
-};
+}
 
 GraceContext=\translator {
        \type "Grace_engraver_group";
@@ -156,69 +142,86 @@ GraceContext=\translator {
        \consists "Stem_engraver";
        \consists "Beam_engraver";
        \consists "Slur_engraver";
-       
+
        \consists "Auto_beam_engraver";
-       \include "auto-beam-settings.ly";
        \consists "Align_note_column_engraver";
 
        \consists "Rhythmic_column_engraver";
-       \consists "Dynamic_engraver";
 
-       \consists "Property_engraver";
+       \consists "Dynamic_engraver";% in Grace ???
+       \consists "Text_engraver"; % in Grace ???
 
-       stemStyle = #"grace"
-       flagStyle = #"grace" 
-       weAreGraceContext = ##t 
-       fontSize = #-1
-       
-       stemLength = #6.0
-       verticalDirection = \up ;
-       graceAccidentalSpace= 1.5 * \staffspace;
-};
+       \consists "Property_engraver";
 
-\translator{\GraceContext}
-\translator {\VoiceContext}
+       Stem \override  #'flag-style = #"grace"
+       Stem \override  #'stem-length = #6.0
+       Stem \override  #'direction = #1
+
+       NoteHead \override #'font-relative-size = #-1
+       Stem \override #'font-relative-size = #-1
+       Stem \override #'stem-shorten = #'(0)
+       Beam \override #'font-relative-size = #-1
+       TextScript \override #'font-relative-size = #-1
+       Slur \override #'font-relative-size = #-1
+       Accidentals \override #'font-relative-size = #-1
+       Beam \override #'thickness = #0.3
+       Beam \override #'space-function = #(lambda (x) 0.5)
+
+       Stem \override #'lengths = #(map (lambda (x) (* 0.8 x)) '(3.5 3.5 3.5 4.5 5.0))
+       Stem \override #'beamed-lengths =
+               #'(0.0 2.5 2.0 1.5)
+       Stem \override #'beamed-minimum-lengths
+                = #(map (lambda (x) (* 0.8 x)) '(0.0 2.5 2.0 1.5))
+
+       weAreGraceContext = ##t   
+       graceAccidentalSpace= 1.5 ; % in staff space
+}
 
 ThreadContext = \translator{
        \type Engraver_group_engraver;
-       \consists "Note_heads_engraver" ;
+       \consists "Thread_devnull_engraver";
+       \consists "Note_heads_engraver";
        \consists "Output_property_engraver";   
        Generic_property_list = #generic-thread-properties
        \consists "Property_engraver";
        \name Thread;
-};
+}
 
-\translator{\ThreadContext}
 GrandStaffContext=\translator{
        \type "Engraver_group_engraver";
        \name GrandStaff;
        \consists "Span_bar_engraver";
-       \consists "Piano_bar_engraver";
+       \consists "Span_arpeggio_engraver";
+       \consists "System_start_delimiter_engraver";
+       SystemStartDelimiter \override #'glyph = #'brace
+       
        \consists "Property_engraver";  
        Generic_property_list = #generic-grand-staff-properties
        \accepts "Staff";
-};
-\translator{\GrandStaffContext}
+}
 
-PianoStaffContext = \translator{\GrandStaffContext
-       alignmentReference = \center;
+PianoStaffContext = \translator{
+       \GrandStaffContext
+       \name "PianoStaff";
 
        \consists "Vertical_align_engraver";
-       minVerticalAlign = 3.0*\staffheight;
-       maxVerticalAlign = 3.0*\staffheight;
+
+       alignmentReference = \center;
+       VerticalAlignment \override #'threshold = #'(12 . 12) 
 
 %      \consistsend "Axis_group_engraver";
-       \name "PianoStaff";
-       
-};
-\translator{\PianoStaffContext}
+}
+
 StaffGroupContext= \translator {
        \type "Engraver_group_engraver";
+       \name StaffGroup;
+
        \consists "Span_bar_engraver";
+       \consists "Span_arpeggio_engraver";
        \consists "Output_property_engraver";   
-       \consists "Staff_group_bar_engraver";
+       SystemStartDelimiter \override #'glyph = #'bracket
 
-       \name StaffGroup;
+       \consists "System_start_delimiter_engraver";
        \accepts "Staff";
        \accepts "RhythmicStaff";
        \accepts "GrandStaff";
@@ -226,55 +229,65 @@ StaffGroupContext= \translator {
        
        \accepts "Lyrics";
        \accepts "ChordNames";
-};
+}
 
-\translator { \StaffGroupContext }
 
 % UGH! JUNKME
 LyricsVoiceContext= \translator{
        \type "Engraver_group_engraver";
        \consistsend "Axis_group_engraver";
+       LyricVoiceMinimumVerticalExtent = #(cons -1.2 1.2)
 
        \name LyricVoice ;
        \consists "Separating_line_group_engraver";
        \consists "Lyric_engraver";
        \consists "Extender_engraver";
        \consists "Hyphen_engraver";
-};
-\translator{ \LyricsVoiceContext }
+       \consists "Stanza_number_engraver";
+       phrasingPunctuation = #".,;:!?\""
+       
+}
+NoteNamesContext = \translator {
+       \type "Engraver_group_engraver";
+       \name NoteNames;
+       \consistsend "Axis_group_engraver";
+       \consists "Note_name_engraver";
+       \consists "Separating_line_group_engraver";
+}
 
 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 }
+}
 
-ChordNameVoiceContext = \translator {
+ChordNamesVoiceContext = \translator {
        \type "Engraver_group_engraver";
-       \name ChordNameVoice ;
+       \name ChordNamesVoice ;
 
        \consists "Output_property_engraver";   
        \consistsend "Axis_group_engraver";
        \consists "Separating_line_group_engraver";
        \consists "Chord_name_engraver";
-};
-\translator {\ChordNameVoiceContext}
-
-ChordNameContext = \translator {
+}
+ChordNamesContext = \translator {
        \type "Engraver_group_engraver";
        \name ChordNames;
 
+       Generic_property_list = #generic-chord-staff-properties
+
+       \consists "Property_engraver";  
        \consists "Output_property_engraver";   
-       \accepts "ChordNameVoice";
+       \accepts "ChordNamesVoice";
+
+       VerticalAxisGroup \override #'invisible-staff = ##t
        \consistsend "Axis_group_engraver";
-       };
-\translator { \ChordNameContext }
+       }
 
 
 ScoreWithNumbers = \translator {
@@ -282,29 +295,28 @@ ScoreWithNumbers = \translator {
 
        % uncomment to bar numbers on a whole system.
        \consists "Bar_number_engraver";
-};
+}
 
 StupidScore = \translator {
        \type "Score_engraver";
        \name Score;
        \consists "Note_heads_engraver";
-};
+}
 
 
 
 BarNumberingStaffContext = \translator {
        \StaffContext
        \consists "Mark_engraver";
-       \consists "Bar_number_engraver";
-};
+}
 
 HaraKiriStaffContext = \translator {
        \StaffContext
        \remove "Axis_group_engraver";
        \consistsend "Hara_kiri_engraver";        
-       \consists "Staff_margin_engraver";
+       \consists "Instrument_name_engraver";
        \accepts "Voice";
-};
+}
 %{
   The HaraKiriStaffContexts doesn't override \name,
   so it is still named `Staff'.
@@ -315,33 +327,27 @@ HaraKiriStaffContext = \translator {
 OrchestralPartStaffContext = \translator {
        \StaffContext
        \consists "Mark_engraver";
-       \consists "Bar_number_engraver";
-};
+}
 
 ScoreContext = \translator {
        \type Score_engraver;
        \name Score;
+       
 
+       \consists "Repeat_acknowledge_engraver";
        \consists "Timing_engraver";
        \consists "Output_property_engraver";   
-
-       \consists "Span_score_bar_engraver";
-%      \consists "Score_priority_engraver";
+       \consists "System_start_delimiter_engraver";
+       \consists "Mark_engraver";      
        \consists "Break_align_engraver";
-       breakAlignOrder = #'(
-         "Left_edge_item"
-         "Span_bar"
-         "Breathing_sign"
-         "Clef_item"
-         "Key_item"
-         "Staff_bar"
-         "Time_signature"
-       )
        \consists "Spacing_engraver";
        \consists "Vertical_align_engraver";
-       alignmentReference = \down;
-       defaultClef = #"treble"
-       defaultBarType = #"|"
+
+       \consists "Lyric_phrasing_engraver";
+       \consists "Bar_number_engraver";
+       \consists "Span_arpeggio_engraver";
+
+       
        \accepts "Staff";
        \accepts "StaffGroup";
        \accepts "RhythmicStaff";       
@@ -352,26 +358,85 @@ ScoreContext = \translator {
        \accepts "PianoStaff";
        \accepts "NoteNames";
 
-       markVisibilityFunction = #end-of-line-invisible
-       barNumberVisibilityFunction = #begin-of-line-visible
-       marginVisibilityFunction = #begin-of-line-visible
-};
+       soloText = #"Solo"
+       soloIIText = #"Solo II"
+       aDueText = #"\\`a2"
+       soloADue = ##t
+       splitInterval = #'(0 . 1)
+       changeMoment = #`(,(make-moment 0 0) . ,(make-moment 1 512))
 
-\translator { \ScoreContext }
+       StaffMinimumVerticalExtent = #(cons -4.0 4.0)
 
-OrchestralScoreContext= \translator {
-       \ScoreContext
+       barAuto = ##t
+       voltaVisibility = ##t
+       %  name, glyph id, clef position 
+       % where is c0 in this clef?
+       clefPitches = #'(("clefs-G" . -4)
+         ("clefs-C" . 0)
+         ("clefs-F" . 4)
+         ("clefs-vaticana_do" . 0)
+         ("clefs-vaticana_fa" . 4)
+         ("clefs-medicaea_do" . 0)
+         ("clefs-medicaea_fa" . 4)
+         ("clefs-hufnagel_do" . 0)
+         ("clefs-hufnagel_fa" . 4)
+         ("clefs-hufnagel_do_fa" . 0)
+         ("clefs-mensural1_c" . 0)
+         ("clefs-mensural2_c" . 0)
+         ("clefs-mensural3_c" . 0)
+         ("clefs-mensural_f" . 0))
+
+       clefGlyph = #"clefs-G"
+       clefPosition = #-2
+
+        automaticPhrasing = ##t;
+       alignmentReference = \down;
+       defaultBarType = #"|"
+
+       explicitClefVisibility = #all-visible
+       explicitKeySignatureVisibility = #all-visible
+       
+       scriptDefinitions = #default-script-alist
+
+       startSustain = #"Ped."
+       stopSustain = #"*"
+       stopStartSustain = #"*Ped."
+       startUnaChorda = #"una chorda"
+       stopUnaChorda = #"tre chorde"
+       % should make separate lists for stopsustain and startsustain 
+
+
+       %
+       % 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)
+       )
+       breakAlignOrder = #'(
+         Instrument_name
+         Left_edge_item
+         Span_bar
+         Breathing_sign
+         Clef_item
+         Key_item
+         Staff_bar
+         Time_signature
+         Custos
+         Stanza_number
+       )
 
-       barScriptPadding = #2.0         % dimension \pt
-       markScriptPadding = #4.0
 
-       \consists "Bar_number_engraver";
-       \consists "Mark_engraver";
-};
+       \elementdescriptions #all-element-descriptions
+       %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+       % TODO: uniform naming.;  
+       %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+       
+}
 
-\translator {
-       \type "Engraver_group_engraver";
-       \name NoteNames;
-       \consistsend "Axis_group_engraver";
-       \consists "Note_name_engraver";
+OrchestralScoreContext= \translator {
+       \ScoreContext
 }
+