]> git.donarmstrong.com Git - lilypond.git/blobdiff - ly/engraver.ly
release: 1.3.147
[lilypond.git] / ly / engraver.ly
index 60399daa1bf62c93d5e8b1c0d0958e080751e1e7..52995c5849c188391383d7177682102b2e0a5aff 100644 (file)
+\version "1.3.146"
+
 %
 % setup for Request->Element conversion. Guru-only
 %
 
 StaffContext=\translator {
-       \type "Engraver_group_engraver";
-       \name Staff ;
-       \consists "Output_property_engraver";   
-       barAuto = ##t
-       voltaVisibility = ##t
+       \type "Engraver_group_engraver"
+       \name Staff 
+       \consists "Output_property_engraver"    
        Generic_property_list = #generic-staff-properties
-       \consists "Property_engraver";
+       \consists "Property_engraver"
        
-       \consists "Multi_measure_rest_engraver";
-       \consists "Bar_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" . ("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";
-       \consists "Time_signature_engraver";
-       \consists "Staff_symbol_engraver";
-       \consists "Collision_engraver";
-       \consists "Rest_collision_engraver";
-       \consists "Local_key_engraver";
 
-       \consistsend "Axis_group_engraver";
+%      \consists "Repeat_engraver"
+       \consists "Volta_engraver"
+       \consists "Separating_line_group_engraver"      
 
 
 
-%{
-       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 "Clef_engraver"
+       \consists "Key_engraver"
+       \consists "Time_signature_engraver"
+       \consists "Staff_symbol_engraver"
+       \consists "Collision_engraver"
+       \consists "Rest_collision_engraver"
+       \consists "Local_key_engraver"
+       \consists "Piano_pedal_engraver"
+       \consists "Instrument_name_engraver"
 
-       \consists "Instrument_name_engraver";
-%}
+       \consistsend "Axis_group_engraver"
+       
+       MinimumVerticalExtent = #'(-4 . 4)
+       ExtraVerticalExtent = ##f
+       VerticalExtent = ##f 
 
-       defaultClef = #"treble"
+       % explicitly set instrument, so we don't get 
+       % weird effects when doing instrument names for
+       % piano staffs
 
-       \consists "Separating_line_group_engraver";
+       instrument = #""
+       instr = #""
          
-       \accepts "Voice";
-       dynamicStyle = #"dynamic"
-};
-
-\translator{\StaffContext }
-\translator {
-       \type "Engraver_group_engraver";
-       \name ChoirStaff;
-       alignmentReference = \center;
-       \consists "System_start_delimiter_engraver";
-       systemStartDelimiterGlyph = #'bracket
-
+       \accepts "Voice"
+}
 
 
-       \accepts "Staff";
-       \accepts "RhythmicStaff";
-       \accepts "GrandStaff";
-       \accepts "PianoStaff";
+StaffContainerContext = \translator {
+       \type Engraver_group_engraver
+       \consists "Axis_group_engraver"
+       MinimumVerticalExtent = ##f
+       ExtraVerticalExtent = ##f
+       VerticalExtent = ##f 
+       
+       \accepts Staff
+       \name StaffContainer
+}
 
-               
-       \accepts "Lyrics";
-       \accepts "ChordNames";
+InnerChoirStaffContext = \translator {
+       \type "Engraver_group_engraver"
+       \name InnerChoirStaff
+       alignmentReference = #0
+       \consists "System_start_delimiter_engraver"
+       SystemStartDelimiter \override #'glyph = #'bracket
+
+       \accepts "Staff"
+       \accepts "RhythmicStaff"
+       \accepts "GrandStaff"
+       \accepts "PianoStaff"
+       \accepts "Lyrics"
+       \accepts "ChordNames"
+}
+ChoirStaffContext = \translator {
+       \InnerChoirStaffContext
+       \name ChoirStaff
+       \accepts "InnerChoirStaff"
+       \accepts "InnerStaffGroup"
 }
 
 
 RhythmicStaffContext=\translator{
-       \type "Engraver_group_engraver";
-       numberOfStaffLines  = #1
-       \consists "Property_engraver";
-       \consists "Output_property_engraver";   
+       \type "Engraver_group_engraver"
+       
+       \consists "Property_engraver"
+       \consists "Output_property_engraver"    
 
        Generic_property_list = #generic-staff-properties
+       MinimumVerticalExtent = ##f
+       ExtraVerticalExtent = ##f
+       VerticalExtent = ##f 
+
+       \consists "Pitch_squash_engraver"
+       \consists "Separating_line_group_engraver"      
+       \name RhythmicStaff
+       \alias "Staff"
        
-       barSize =   4.0 * \staffspace ; 
-       \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";
-       \consists "Staff_symbol_engraver";
-       \consistsend "Axis_group_engraver";
-       \accepts "Voice";
-};
-\translator{\RhythmicStaffContext}
+       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 "Volta_engraver"
+       \consists "Bar_engraver"
+       \consists "Time_signature_engraver"
+       \consists "Staff_symbol_engraver"
+       \consistsend "Axis_group_engraver"
+       \accepts "Voice"
+}
 
-VoiceContext = \translator {
-       \type "Engraver_group_engraver";
-       \name Voice;
 
-       dynamicPadding = #3  % urg, in \pt
-       dynamicMinimumSpace = #6  % urg, in \pt
+VoiceContext = \translator {
+       \type "Engraver_group_engraver"
+       \name Voice
 
        Generic_property_list = #generic-voice-properties
-       \consists "Output_property_engraver";   
 
-       \consists "Dynamic_engraver";   % must come before text_engraver.
-       \consists "Property_engraver";
+       % must come before all
+       \consists "Voice_devnull_engraver"
+       \consists "Output_property_engraver"    
+       \consists "Arpeggio_engraver"
+       \consists "Multi_measure_rest_engraver"
+       \consists "Text_spanner_engraver"
+       \consists "Property_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 "Chord_tremolo_engraver";
-       \consists "Melisma_engraver";
-       textScriptPadding = #3.0
-       \consists "Text_engraver";
-       \consists "A2_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 "Slur_engraver";
-       \consists "Tie_engraver";
-       \consists "Tuplet_engraver";
-       \consists "Grace_position_engraver";
-       \consists "Skip_req_swallow_translator";
-       \accepts Thread; % bug if you leave out this!
-       \accepts Grace;
-};
+       \consists "Breathing_sign_engraver"
+       % \consists "Rest_engraver"
+       \consists "Dot_column_engraver"
+       \consists "Stem_engraver"
+       \consists "Beam_engraver"
+       \consists "Auto_beam_engraver"
 
-GraceContext=\translator {
-       \type "Grace_engraver_group";
-       \name "Grace";
-       \consists "Output_property_engraver";   
+       \consists "Chord_tremolo_engraver"
+       \consists "Percent_repeat_engraver"
+       \consists "Melisma_engraver"
 
-       Generic_property_list = #generic-grace-properties
-       
-       \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";
+%{
+ Must come before text_engraver, but after note_column engraver.
 
-       \consists "Rhythmic_column_engraver";
-       \consists "Dynamic_engraver";
-       \consists "Text_engraver";
+%}
+       \consists "Dynamic_engraver"
+       \consists "Text_engraver"
+
+       \consists "Script_engraver"
+       \consists "Script_column_engraver"
+       \consists "Rhythmic_column_engraver"
+       \consists "Phrasing_slur_engraver"
+       \consists "Slur_engraver"
+       \consists "Tie_engraver"
+       \consists "Tuplet_engraver"
+       \consists "Grace_position_engraver"
+       \consists "A2_engraver"
+
+       \consists "Skip_req_swallow_translator"
+       \accepts Thread % bug if you leave out this!
+       \accepts Grace
+}
 
-       \consists "Property_engraver";
+GraceContext=\translator {
+       \type "Grace_engraver_group"
+       \name "Grace"
+       \consists "Output_property_engraver"    
 
-       stemStyle = #"grace"
-       flagStyle = #"grace" 
-       weAreGraceContext = ##t 
-       fontSize = #-1
+       Generic_property_list = #generic-grace-properties
        
-       stemLength = #6.0
-       verticalDirection = \up ;
-       graceAccidentalSpace= 1.5 * \staffspace;
-};
-
-\translator{\GraceContext}
-\translator {\VoiceContext}
+       \consists "Note_heads_engraver"
+       \consists "Local_key_engraver"
+       \consists "Stem_engraver"
+       \consists "Beam_engraver"
+       \consists "Slur_engraver"
+
+       \consists "Auto_beam_engraver"
+       \consists "Align_note_column_engraver"
+
+       \consists "Rhythmic_column_engraver"
+
+       \consists "Dynamic_engraver"% in Grace ???
+       \consists "Text_engraver" % in Grace ???
+
+       \consists "Property_engraver"
+
+       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 "A2_devnull_engraver";
-       \consists "Note_heads_engraver";
-       \consists "Output_property_engraver";   
+       \type Engraver_group_engraver
+       \name Thread
+       
+       \consists "Thread_devnull_engraver"
+       \consists "Note_heads_engraver"
+       \consists "Rest_engraver"
+       \consists "Note_head_line_engraver"
+       \consists "Output_property_engraver"    
        Generic_property_list = #generic-thread-properties
-       \consists "Property_engraver";
-       \name Thread;
-};
+       \consists "Property_engraver"
+}
 
-\translator{\ThreadContext}
 GrandStaffContext=\translator{
-       \type "Engraver_group_engraver";
-       \name GrandStaff;
-       \consists "Span_bar_engraver";
-       \consists "System_start_delimiter_engraver";
-       systemStartDelimiterGlyph = #'brace
+       \type "Engraver_group_engraver"
+       \name GrandStaff
+       \consists "Span_bar_engraver"
+       \consists "Span_arpeggio_engraver"
+       \consists "System_start_delimiter_engraver"
+       SystemStartDelimiter \override #'glyph = #'brace
        
-       \consists "Property_engraver";  
+       \consists "Property_engraver"   
        Generic_property_list = #generic-grand-staff-properties
-       \accepts "Staff";
-};
-\translator{\GrandStaffContext}
+       \accepts "Staff"
+}
 
-PianoStaffContext = \translator{\GrandStaffContext
-       alignmentReference = \center;
+PianoStaffContext = \translator{
+       \GrandStaffContext
+       \name "PianoStaff"
 
-       \consists "Vertical_align_engraver";
-       minVerticalAlign = 3.0*\staffheight;
-       maxVerticalAlign = 3.0*\staffheight;
+       \consists "Vertical_align_engraver"
 
-%      \consistsend "Axis_group_engraver";
-       \name "PianoStaff";
        
-};
-\translator{\PianoStaffContext}
-StaffGroupContext= \translator {
-       \type "Engraver_group_engraver";
-       \consists "Span_bar_engraver";
-       \consists "Output_property_engraver";   
-       \consists "System_start_delimiter_engraver";
-       systemStartDelimiterGlyph = #'bracket
-       
-
+       
+       verticalAlignmentChildCallback = #Align_interface::fixed_distance_alignment_callback
+       VerticalAlignment \override #'forced-distance = #12
+       VerticalAlignment \override #'self-alignment-Y = #0
+%      \consistsend "Axis_group_engraver"
+}
 
+InnerStaffGroupContext= \translator {
+       \type "Engraver_group_engraver"
+       \name InnerStaffGroup
 
+       \consists "Span_bar_engraver"
+       \consists "Span_arpeggio_engraver"
+       \consists "Output_property_engraver"    
+       SystemStartDelimiter \override #'glyph = #'bracket
 
-       \name StaffGroup;
-       \accepts "Staff";
-       \accepts "RhythmicStaff";
-       \accepts "GrandStaff";
-       \accepts "PianoStaff";
+       \consists "System_start_delimiter_engraver"
+       \accepts "Staff"
+       \accepts "RhythmicStaff"
+       \accepts "GrandStaff"
+       \accepts "PianoStaff"
        
-       \accepts "Lyrics";
-       \accepts "ChordNames";
-};
+       \accepts "Lyrics"
+       \accepts "ChordNames"
+}
+StaffGroupContext = \translator {
+       \InnerStaffGroupContext
+       \name StaffGroup
+       \accepts "InnerChoirStaff"
+       \accepts "ChoirStaff"
+       \accepts "InnerStaffGroup"
+}
 
-\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";
-       \consists "Stanza_number_engraver";
-       phrasingPunctuation = #".,;:!?\""
+       \type "Engraver_group_engraver"
+       \consistsend "Axis_group_engraver"
+       MinimumVerticalExtent = #(cons -1.2 1.2)
+       ExtraVerticalExtent = ##f
+       VerticalExtent = ##f 
+       \name LyricsVoice 
+       \consists "Separating_line_group_engraver"
+       \consists "Lyric_engraver"
+       \consists "Extender_engraver"
+       \consists "Hyphen_engraver"
+       \consists "Stanza_number_engraver"
+       phrasingPunctuation = #".,:!?\""
+       
+}
+NoteNamesContext = \translator {
+       \type "Engraver_group_engraver"
+       \name NoteNames
+       \consistsend "Axis_group_engraver"
+
+       MinimumVerticalExtent = ##f
+       ExtraVerticalExtent = ##f
+       VerticalExtent = ##f 
+
        
-};
-\translator{ \LyricsVoiceContext }
+       \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.
+       \type "Engraver_group_engraver"
+       \name Lyrics
+       \consists Vertical_align_engraver %need this for getting folded repeats right.
        Generic_property_list = #generic-lyrics-properties
-       \consists "Property_engraver";
-       \consistsend "Axis_group_engraver";
+       \consists "Property_engraver"
+       \consistsend "Axis_group_engraver"
+       MinimumVerticalExtent = ##f
+       ExtraVerticalExtent = ##f
+       VerticalExtent = ##f 
        
-       \accepts "LyricVoice";
-};
-\translator { \LyricsContext }
-
-ChordNameVoiceContext = \translator {
-       \type "Engraver_group_engraver";
-       \name ChordNameVoice ;
+       \accepts "LyricsVoice"
+}
 
-       \consists "Output_property_engraver";   
-       \consistsend "Axis_group_engraver";
-       \consists "Separating_line_group_engraver";
-       \consists "Chord_name_engraver";
-};
-\translator {\ChordNameVoiceContext}
 
-ChordNameContext = \translator {
-       \type "Engraver_group_engraver";
-       \name ChordNames;
+ChordNamesContext = \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";
-       };
-\translator { \ChordNameContext }
 
+       \consists "Property_engraver"   
+       \consists "Output_property_engraver"    
+       \consists "Separating_line_group_engraver"
+       \consists "Chord_name_engraver"
+       \consists "Skip_req_swallow_translator"
+       \consistsend "Axis_group_engraver"
+       MinimumVerticalExtent = ##f
+       ExtraVerticalExtent = ##f
+       VerticalExtent = ##f 
+
+       VerticalAxisGroup \override #'invisible-staff = ##t
+       }
 
-ScoreWithNumbers = \translator {
-       \type "Score_engraver";
 
-       % uncomment to bar numbers on a whole system.
-       \consists "Bar_number_engraver";
-};
 
 StupidScore = \translator {
-       \type "Score_engraver";
-       \name Score;
-       \consists "Note_heads_engraver";
-};
+       \type "Score_engraver"
+       \name Score
+       \consists "Note_heads_engraver"
+}
 
 
 
-BarNumberingStaffContext = \translator {
-       \StaffContext
-       \consists "Mark_engraver";
-};
 
 HaraKiriStaffContext = \translator {
        \StaffContext
-       \remove "Axis_group_engraver";
-       \consistsend "Hara_kiri_engraver";        
-       \consists "Instrument_name_engraver";
-       \accepts "Voice";
-};
+       \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'.
@@ -349,25 +363,90 @@ HaraKiriStaffContext = \translator {
   %\translator { \HaraKiriStaffContext }
 %}
 
-OrchestralPartStaffContext = \translator {
-       \StaffContext
-       \consists "Mark_engraver";
-};
+
+
 
 ScoreContext = \translator {
-       \type Score_engraver;
-       \name Score;
+       \type Score_engraver
+       \name Score
+       
 
-       marginScriptPadding = #10  % urg, in \pt
+       \consists "Repeat_acknowledge_engraver"
+       \consists "Timing_engraver"
+       \consists "Output_property_engraver"
+       \consists "System_start_delimiter_engraver"
+       \consists "Mark_engraver"       
+       \consists "Break_align_engraver"
+       \consists "Spacing_engraver"
+       \consists "Vertical_align_engraver"
+
+       \consists "Lyric_phrasing_engraver"
+       \consists "Bar_number_engraver"
+       \consists "Span_arpeggio_engraver"
+
+       \accepts "Staff"
+       \accepts "StaffContainer"
+       \accepts "StaffGroup"
+       \accepts "RhythmicStaff"        
+       \accepts "Lyrics"
+       \accepts "ChordNames"
+       \accepts "GrandStaff"
+       \accepts "ChoirStaff"
+       \accepts "PianoStaff"
+       \accepts "NoteNames"
+
+       soloText = #"Solo"
+       soloIIText = #"Solo II"
+       aDueText = #"a2"
+       soloADue = ##t
+       splitInterval = #'(0 . 1)
+       changeMoment = #`(,(make-moment 0 0) . ,(make-moment 1 512))
 
-       \consists "Timing_engraver";
-       \consists "Output_property_engraver";   
+       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-mensural1_f" . 4)
+         ("clefs-mensural2_f" . 4)
+         ("clefs-mensural_g" . -4))
+
+       clefGlyph = #"clefs-G"
+       clefPosition = #-2
+
+        automaticPhrasing = ##t
+       alignmentReference = #-1   % \down
+       defaultBarType = #"|"
+
+       explicitClefVisibility = #all-visible
+       explicitKeySignatureVisibility = #all-visible
+       
+       scriptDefinitions = #default-script-alist
+
+       verticalAlignmentChildCallback = #Align_interface::alignment_callback
+
+       pedalSustainStrings = #'("Ped." "*Ped." "*")
+       pedalUnaCordaStrings = #'("una corda" "" "tre corde")
+       pedalSostenutoStrings = #'()  % FIXME
 
-       %bracketCollapseHeight = #10  % \pt
-       \consists "System_start_delimiter_engraver";
+       tupletNumberFormatFunction = #denominator-tuplet-formatter
        
-%      \consists "Score_priority_engraver";
-       \consists "Break_align_engraver";
+       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
@@ -377,402 +456,19 @@ ScoreContext = \translator {
          Key_item
          Staff_bar
          Time_signature
-         Stanza_number
-       )
-       \consists "Spacing_engraver";
-
-       \consists "Vertical_align_engraver";
-
-       \consists "Lyric_phrasing_engraver";
-        automaticPhrasing = ##t;
-
-       \consists "Bar_number_engraver";
-       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 . ,all-visible)
-               (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) ; staff-space
-               (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))
-               (after-line-breaking-callback . ,Chord_name::after_line_breaking) 
-       )
-       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")
-               (interfaces . (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)
-               (right-trim-amount . 0.5)
-               (interfaces . (lyric-extender-interface))
-       )
-       basicLyricTextProperties = #`(
-               (molecule-callback . ,Text_item::brew_molecule)
-               (self-alignment-X . 0)
-               (non-rhythmic . #t)
-               (word-space . 0.6)
-               (interfaces .  (lyric-syllable-interface text-item-interface))
-       )
-       basicMarkProperties = #`(
-         (molecule-callback . ,Text_item::brew_molecule)       
-         (breakable . #t)
-         (interfaces . (mark-interface))
-         (visibility-lambda . ,end-of-line-invisible)
-       )
-       basicMelismaProperties = #`(
-               (interfaces . (melisma-interface))
-       )
-       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")
+         Custos
        )
-       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)
-               (thickness . 1.2)               
-               (spacing-procedure . ,Slur::set_spacing_rods)           e
-               (minimum-length . 1.5)
-               (after-line-breaking-callback . ,Slur::after_line_breaking) 
-       )
-       basicSpacingSpannerProperties =#`(
-               (spacing-procedure . ,Spacing_spanner::set_springs)
 
-               ;; assume that notes at least this long are present.
-               (maximum-duration-for-spacing . ,(make-moment 1 8))
-       )
-       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))
-       )
-       basicStanzaNumberProperties = #`(
-               (breakable . #t)
-               (molecule-callback . ,Text_item::brew_molecule)         
-               (break-align-symbol . Clef_item)
-               (visibility-lambda . ,begin-of-line-visible)
-       )
-       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))
-       )
-       basicSustainPedalProperties = #`(
-               (no-spacing-rods . #t)
-               (molecule-callback . ,Sustain_pedal::brew_molecule)
-               (self-alignment-X . 0)
-               (interface . (sustain-pedal-interface))
-       )       
-       staffSymbolBasicProperties = #`(
-               (molecule-callback . ,Staff_symbol::brew_molecule)
-               (staff-space . 1.0)
-               (line-count . 5 )
-               (interfaces . (staff-symbol-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)
-       )
-       basicTextScriptProperties = #`(
-               (molecule-callback . ,Text_item::brew_molecule)
 
-: -- don't set, because property-engraver will not override it.  
-;              (no-spacing-rods . #t)
-               (interfaces . (text-script-interface text-item-interface))
-       )
-       basicTieProperties = #`(
-               (molecule-callback . ,Tie::brew_molecule)
-               (spacing-procedure . ,Tie::set_spacing_rods)
-               (thickness . 1.2)
-               (minimum-length  . 2.5)
-               (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 . 2.0) ; staff-space
-               (beam-thickness . 0.42) ; staff-space
-       )
-
-       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";       
-       \accepts "Lyrics";
-       \accepts "ChordNames";
-       \accepts "GrandStaff";
-       \accepts "ChoirStaff";
-       \accepts "PianoStaff";
-       \accepts "NoteNames";
-
-
-       markVisibilityFunction = #end-of-line-invisible
-};
-
-\translator { \ScoreContext }
+       \elementdescriptions #all-grob-descriptions
+}
 
 OrchestralScoreContext= \translator {
        \ScoreContext
-
-       barScriptPadding = #2.0         % dimension \pt
-       markScriptPadding = #4.0
-
-       \consists "Mark_engraver";
-};
-
-\translator {
-       \type "Engraver_group_engraver";
-       \name NoteNames;
-       \consistsend "Axis_group_engraver";
-       \consists "Note_name_engraver";
 }
+EasyNotation =  \translator {
+       \ScoreContext
+       NoteHead \override #'molecule-callback = #Note_head::brew_ez_molecule
+       easyPlay = ##t
+}
+