]> git.donarmstrong.com Git - lilypond.git/blobdiff - ly/engraver-init.ly
Build: Document the default make target.
[lilypond.git] / ly / engraver-init.ly
index 2541163a7651de2c352be99c544f147351b4a66b..d5c8ffc3af5c067be40695bc61bb44274596507e 100644 (file)
@@ -26,7 +26,6 @@
   \defaultchild "Score"
   \description "Hard coded entry point for LilyPond.  Cannot be tuned."
   \grobdescriptions #all-grob-descriptions
-  EventClasses = #all-event-classes
 }
 
 \context {
   \defaultchild "Voice"
   \accepts "Voice"
   \accepts "CueVoice"
+  \accepts "NullVoice"
 
   \description "Handles clefs, bar lines, keys, accidentals.  It can contain
 @code{Voice} contexts."
@@ -705,26 +705,8 @@ automatically when an output definition (a @code{\\score} or
   figuredBassFormatter = #format-bass-figure
   metronomeMarkFormatter = #format-metronome-markup
 
-
   %% See also make-voice-props-set
-  graceSettings = #`(
-    (Voice Stem direction ,UP)
-    (Voice Stem font-size -3)
-    (Voice Flag font-size -3)
-    (Voice NoteHead font-size -3)
-    (Voice TabNoteHead font-size -4)
-    (Voice Dots font-size -3)
-    (Voice Stem length-fraction 0.8)
-    (Voice Stem no-stem-extend #t)
-    (Voice Beam beam-thickness 0.384)
-    (Voice Beam length-fraction 0.8)
-    (Voice Accidental font-size -4)
-    (Voice AccidentalCautionary font-size -4)
-    (Voice Slur direction ,DOWN)
-    (Voice Script font-size -3)
-    (Voice Fingering font-size -8)
-    (Voice StringNumber font-size -8)
-  )
+  graceSettings = #score-grace-settings
 
   keepAliveInterfaces = #'(
     bass-figure-interface
@@ -786,6 +768,59 @@ automatically when an output definition (a @code{\\score} or
 context."
 }
 
+\context {
+  \name "NullVoice"
+  \type "Engraver_group"
+
+  \description "Non-printing context, typically used for aligning
+lyrics in polyphonic situations, or with @code{\partcombine}."
+
+  %% don't route anything out of here
+  \alias "Staff"
+  \alias "Voice"
+
+  %% all three are needed for ties to work with lyrics
+  \consists "Note_heads_engraver"
+  \consists "Rhythmic_column_engraver"
+  \consists "Tie_engraver"
+
+  %% both are needed for melismas to work with \autoBeamOff
+  \consists "Beam_engraver"
+  \consists "Stem_engraver"
+
+  %% needed for slurs to work with lyrics
+  \consists "Slur_engraver"
+
+  %% keep noteheads inside the staff
+  \consists "Pitch_squash_engraver"
+  squashedPosition = 0
+
+  %% `\omit NoteHead' would give slur attachment errors
+  \omit Accidental
+  \omit Beam
+  \omit Dots
+  \omit Flag
+  \omit Rest
+  \omit Slur
+  \omit Stem
+  \omit Tie
+
+  %% let these take up space (for lyric extenders, etc.)
+  \override NoteHead.transparent = ##t
+  \override TabNoteHead.transparent = ##t
+
+  %% don't let notes shift
+  \override NoteHead.X-offset = 0
+  \override NoteColumn.ignore-collision = ##t
+
+  %% keep beams and stems inside the staff
+  \override Beam.positions = #'(1 . 1)
+  \override Stem.length = 0
+
+  %% prevent "weird stem size" warnings
+  \override Stem.direction = #UP
+}
+
 \context {
   \Voice
   \name "TabVoice"