]> git.donarmstrong.com Git - lilypond.git/commitdiff
Issue 3457: Add NullVoice context.
authorMark Polesky <markpolesky@yahoo.com>
Wed, 4 Sep 2013 04:32:23 +0000 (21:32 -0700)
committerMark Polesky <markpolesky@yahoo.com>
Wed, 4 Sep 2013 04:32:23 +0000 (21:32 -0700)
ly/engraver-init.ly

index 0d1fe3d08056428cac0fb53b37fb442f6b743072..d5c8ffc3af5c067be40695bc61bb44274596507e 100644 (file)
@@ -99,6 +99,7 @@
   \defaultchild "Voice"
   \accepts "Voice"
   \accepts "CueVoice"
+  \accepts "NullVoice"
 
   \description "Handles clefs, bar lines, keys, accidentals.  It can contain
 @code{Voice} contexts."
@@ -767,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"