]> git.donarmstrong.com Git - lilypond.git/commitdiff
Issue 3379: move all tablature related settings to TabStaff
authorDavid Kastrup <dak@gnu.org>
Tue, 28 May 2013 14:57:53 +0000 (16:57 +0200)
committerDavid Kastrup <dak@gnu.org>
Mon, 3 Jun 2013 07:30:05 +0000 (09:30 +0200)
Previous to this patch, settings relevant to tablature have been
distributed among TabVoice and TabVoice, presumably modeled along the
corresponding distribution of engravers.

As one consequence, the command \tabFullNotation contained overrides
pertaining to both TabStaff and TabVoice level, leading to
inconsistent behavior when employed in one but not all TabVoice
contexts of a TabStaff, or when used as
\new TabStaff \with { \tabFullNotation }

Moving all overrides and property settings to TabStaff level should
lead to more consistent results.

ly/engraver-init.ly
ly/performer-init.ly
ly/property-init.ly

index 12ba88284f9b74f30a4254647d842d255dea8b33..2541163a7651de2c352be99c544f147351b4a66b 100644 (file)
@@ -800,6 +800,51 @@ context."
 
   \description "Context for drawing notes in a Tab staff."
 
+  %% No accidental in tablature !
+  \remove "Accidental_engraver"
+}
+
+\context {
+  \Staff
+  \alias "Staff"
+  \name "TabStaff"
+  \denies "Voice"
+  \consists "Tab_staff_symbol_engraver"
+
+  \description "Context for generating tablature. It accepts only @code{TabVoice}
+contexts and handles the line spacing, the tablature clef etc. properly."
+
+  \accepts "TabVoice"
+  \defaultchild "TabVoice"
+
+  %% 6 strings, bigger spacing
+  \override StaffSymbol.staff-space = #1.5
+
+  %% Don't draw stems over the tablature figures !
+  \override Stem.avoid-note-head = ##t
+
+  %% No accidental in tablature !
+  \remove "Accidental_engraver"
+  \remove "Key_engraver"
+
+  \remove "Ottava_spanner_engraver"
+  %% the clef handler
+  \override Clef.stencil = #clef::print-modern-tab-if-set
+  %% no time signature
+  \override TimeSignature.stencil = ##f
+  %% no arpeggios
+  \override Arpeggio.stencil = ##f
+  %% we ignore collision warnings that may occur due to
+  %% stem overlapping, because we have no stems ;-)
+  \override NoteColumn.ignore-collision = ##t
+  %% Special "TAB" clef
+  clefGlyph = #"clefs.tab"
+  clefPosition = #0
+  %% Change string if note results in negative fret number
+  handleNegativeFrets = #'recalculate
+  %% Allow open strings even if minimumFret is set
+  restrainOpenStrings = ##f
+
   %% TabStaff increase the staff-space, which in turn
   %% increases beam thickness and spacing; beams are
   %% too big. We have to adjust the beam settings:
@@ -814,8 +859,6 @@ context."
                                                (/ 1 (ly:staff-symbol-staff-space grob)))
   \override StemTremolo.beam-width = #stem-tremolo::calc-tab-width
 
-  %% No accidental in tablature !
-  \remove "Accidental_engraver"
   %% make the Stems as short as possible to minimize their influence
   %% on the slur::calc-control-points routine
   \override Stem.no-stem-extend = ##t
@@ -868,48 +911,6 @@ context."
   \override TabNoteHead.stencil = #tab-note-head::whiteout-if-style-set
 }
 
-\context {
-  \Staff
-  \alias "Staff"
-  \name "TabStaff"
-  \denies "Voice"
-  \consists "Tab_staff_symbol_engraver"
-
-  \description "Context for generating tablature. It accepts only @code{TabVoice}
-contexts and handles the line spacing, the tablature clef etc. properly."
-
-  \accepts "TabVoice"
-  \defaultchild "TabVoice"
-
-  %% 6 strings, bigger spacing
-  \override StaffSymbol.staff-space = #1.5
-
-  %% Don't draw stems over the tablature figures !
-  \override Stem.avoid-note-head = ##t
-
-  %% No accidental in tablature !
-  \remove "Accidental_engraver"
-  \remove "Key_engraver"
-
-  \remove "Ottava_spanner_engraver"
-  %% the clef handler
-  \override Clef.stencil = #clef::print-modern-tab-if-set
-  %% no time signature
-  \override TimeSignature.stencil = ##f
-  %% no arpeggios
-  \override Arpeggio.stencil = ##f
-  %% we ignore collision warnings that may occur due to
-  %% stem overlapping, because we have no stems ;-)
-  \override NoteColumn.ignore-collision = ##t
-  %% Special "TAB" clef
-  clefGlyph = #"clefs.tab"
-  clefPosition = #0
-  %% Change string if note results in negative fret number
-  handleNegativeFrets = #'recalculate
-  %% Allow open strings even if minimumFret is set
-  restrainOpenStrings = ##f
-}
-
 \context {
   \Voice
   \name "VaticanaVoice"
index b06587ce743b09428f77d90ab38c38b54c999064..a108212eae4a800bc32eb8de2af269085d74b057 100644 (file)
 \context {
   \Voice
   \name TabVoice
-  autoBeaming = ##f  % needed for consistent melismata with engravers
 }
 
 \context {
   \alias Staff
   \accepts TabVoice
   \defaultchild TabVoice
+  autoBeaming = ##f  % needed for consistent melismata with engravers
 }
 
 \context {
index 8ea9cdbead38f52dadc61e7909407716b4f6da4e..1573bf79f9a48d1343298ccf6039b2e4b0fe9d45 100644 (file)
@@ -491,45 +491,45 @@ tabFullNotation = {
   % time signature
   \revert TabStaff.TimeSignature.stencil
   % stems (the half note gets a double stem)
-  \revert TabVoice.Stem.length
-  \revert TabVoice.Stem.no-stem-extend
-  \revert TabVoice.Flag.style
-  \revert TabVoice.Stem.details
-  \revert TabVoice.Stem.stencil
-  \revert TabVoice.Flag.stencil
-  \override TabVoice.Stem.stencil = #tabvoice::draw-double-stem-for-half-notes
-  \override TabVoice.Stem.X-extent = #tabvoice::make-double-stem-width-for-half-notes
-  \set TabVoice.autoBeaming = ##t
-  \revert TabVoice.NoteColumn.ignore-collision
+  \revert TabStaff.Stem.length
+  \revert TabStaff.Stem.no-stem-extend
+  \revert TabStaff.Flag.style
+  \revert TabStaff.Stem.details
+  \revert TabStaff.Stem.stencil
+  \revert TabStaff.Flag.stencil
+  \override TabStaff.Stem.stencil = #tabvoice::draw-double-stem-for-half-notes
+  \override TabStaff.Stem.X-extent = #tabvoice::make-double-stem-width-for-half-notes
+  \set TabStaff.autoBeaming = ##t
+  \revert TabStaff.NoteColumn.ignore-collision
   % beams, dots
-  \revert TabVoice.Beam.stencil
-  \revert TabVoice.StemTremolo.stencil
-  \revert TabVoice.Dots.stencil
-  \revert TabVoice.Tie.stencil
-  \revert TabVoice.Tie.after-line-breaking
-  \revert TabVoice.RepeatTie.stencil
-  \revert TabVoice.RepeatTie.after-line-breaking
-  \revert TabVoice.LaissezVibrerTie.stencil
-  \revert TabVoice.Slur.stencil
-  \revert TabVoice.PhrasingSlur.stencil
+  \revert TabStaff.Beam.stencil
+  \revert TabStaff.StemTremolo.stencil
+  \revert TabStaff.Dots.stencil
+  \revert TabStaff.Tie.stencil
+  \revert TabStaff.Tie.after-line-breaking
+  \revert TabStaff.RepeatTie.stencil
+  \revert TabStaff.RepeatTie.after-line-breaking
+  \revert TabStaff.LaissezVibrerTie.stencil
+  \revert TabStaff.Slur.stencil
+  \revert TabStaff.PhrasingSlur.stencil
   % tuplet stuff
-  \revert TabVoice.TupletBracket.stencil
-  \revert TabVoice.TupletNumber.stencil
+  \revert TabStaff.TupletBracket.stencil
+  \revert TabStaff.TupletNumber.stencil
   % dynamic signs
-  \revert TabVoice.DynamicText.stencil
-  \revert TabVoice.DynamicTextSpanner.stencil
-  \revert TabVoice.DynamicTextSpanner.stencil
-  \revert TabVoice.Hairpin.stencil
+  \revert TabStaff.DynamicText.stencil
+  \revert TabStaff.DynamicTextSpanner.stencil
+  \revert TabStaff.DynamicTextSpanner.stencil
+  \revert TabStaff.Hairpin.stencil
   % rests
-  \revert TabVoice.Rest.stencil
-  \revert TabVoice.MultiMeasureRest.stencil
-  \revert TabVoice.MultiMeasureRestNumber.stencil
-  \revert TabVoice.MultiMeasureRestText.stencil
+  \revert TabStaff.Rest.stencil
+  \revert TabStaff.MultiMeasureRest.stencil
+  \revert TabStaff.MultiMeasureRestNumber.stencil
+  \revert TabStaff.MultiMeasureRestText.stencil
   % markups etc.
-  \revert TabVoice.Glissando.stencil
-  \revert TabVoice.Script.stencil
-  \revert TabVoice.TextScript.stencil
-  \revert TabVoice.TextSpanner.stencil
+  \revert TabStaff.Glissando.stencil
+  \revert TabStaff.Script.stencil
+  \revert TabStaff.TextScript.stencil
+  \revert TabStaff.TextSpanner.stencil
   \revert TabStaff.Arpeggio.stencil
   \revert TabStaff.NoteColumn.ignore-collision
 }