[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: \deadNote doesn't work when setting TabNoteHead to a font other than

From: David Kastrup
Subject: Re: \deadNote doesn't work when setting TabNoteHead to a font other than Feta
Date: Thu, 17 Apr 2014 07:37:29 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4.50 (gnu/linux)

Federico Bruni <address@hidden> writes:

> Three  years ago I didn't follow up to this proposal of Carl:
> http://lists.gnu.org/archive/html/lilypond-user/2011-04/msg00326.html
> I wonder if you can add an issue now.
> Description of the problem
> ===================
> If I use a different font for TabNoteHead
> \override TabStaff.TabNoteHead #'font-name = #"Nimbus Sans L Bold"
> when a score contains \deadNote I'm forced to comment the line above
> and switch back to Feta, otherwise lilypond can't find noteheads.s2cross
> (the Feta glyph for dampened notes) and no TabNoteHead is printed. This is
> the warning:
> warning: none of note heads `noteheads.s' or `noteheads.u' found
> The two solutions proposed by Carl in the link above didn't work back then
> and don't work now.
> Carl's proposal
> ===========
> "Probably the right way to fix this is to have \deadNotesOn set the font to
> Feta, and \deadNotesOff set the font to a saved font.  But we don't have
> that capability currently implemented.
> We also ought to have \deadNote (or better yet, xNote) use a tweak, instead
> of an override, to set the Feta font.  The \once \override construct will
> set *all* the noteheads at that timestep to use the Feta font.
> I'd love to fix this for you, but right now I just don't have time.
> If you'll post a report on bug-lilypond, I'll try to get to it as soon as I
> can."

Well, font overrides are not really standard so I'd not want to see them
taken into account by default: if we did that, we would have to do all
sorts of other overrides not normally useful.

But you can easily enough do it manually:

\version "2.18.0"

deadNotesOn = { \deadNotesOn
                \temporary \override TabStaff.TabNoteHead.font-name = #"Feta" }
deadNotesOff = \undo \deadNotesOn
#(define-music-function (parser location item) (symbol-list-or-music?)
  #{ \single \deadNotesOn #item #})

music = \relative c' {
  % try any font in your system other than Feta
  \override TabStaff.TabNoteHead.font-name = #"Helvetica"
  c4 d \deadNote dis e |

\score {
  \new StaffGroup <<
    \new Staff { \clef "G_8" \music }
    \new TabStaff { \clef "moderntab" \music }
Of course, this does not work either, but that appears to be solely the
responsibility of "Feta" being the wrong font name as well.  Also
\deadNote will no longer work on an entire chord as it tweaks
exclusively in this implementation.  You have to use \once\deadNotesOn
instead then.

David Kastrup

reply via email to

[Prev in Thread] Current Thread [Next in Thread]