diff options
author | David Kastrup <dak@gnu.org> | 2013-05-28 16:57:53 +0200 |
---|---|---|
committer | David Kastrup <dak@gnu.org> | 2013-06-03 09:30:05 +0200 |
commit | ab2444b42c8647a9721f4acac4d248e197f230b8 (patch) | |
tree | db5b130b111db7a64c9de1e442c8b873215f9e19 /ly | |
parent | 3c31b3c1a186e17092bfabddb68b64876a77b7a7 (diff) |
Issue 3379: move all tablature related settings to TabStaff
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.
Diffstat (limited to 'ly')
-rw-r--r-- | ly/engraver-init.ly | 89 | ||||
-rw-r--r-- | ly/performer-init.ly | 2 | ||||
-rw-r--r-- | ly/property-init.ly | 68 |
3 files changed, 80 insertions, 79 deletions
diff --git a/ly/engraver-init.ly b/ly/engraver-init.ly index 12ba88284f..2541163a76 100644 --- a/ly/engraver-init.ly +++ b/ly/engraver-init.ly @@ -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 @@ -869,48 +912,6 @@ context." } \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" \alias "Voice" diff --git a/ly/performer-init.ly b/ly/performer-init.ly index b06587ce74..a108212eae 100644 --- a/ly/performer-init.ly +++ b/ly/performer-init.ly @@ -171,7 +171,6 @@ \context { \Voice \name TabVoice - autoBeaming = ##f % needed for consistent melismata with engravers } \context { @@ -186,6 +185,7 @@ \alias Staff \accepts TabVoice \defaultchild TabVoice + autoBeaming = ##f % needed for consistent melismata with engravers } \context { diff --git a/ly/property-init.ly b/ly/property-init.ly index 8ea9cdbead..1573bf79f9 100644 --- a/ly/property-init.ly +++ b/ly/property-init.ly @@ -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 } |