lilypond-user
[Top][All Lists]
Advanced

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

Re: Text-spanner text repeated at start of line


From: David Sumbler
Subject: Re: Text-spanner text repeated at start of line
Date: Mon, 16 Nov 2015 20:49:18 +0000

Thanks for the help with this problem.  It has taken me until now to
have a chance to experiment further with it.

I ended up not using the \markupMap idea, because I don't in any case
want the "(minim=138) part of the tempo marking to be bold.

So I have ended up with:
accelVivaceText = {
  \override TextSpanner.line-X-offset = #'(0.5 . 0.5)
  \override TextSpanner.line-Y-offset = 0.5
  \addTextSpannerText \lyricmode {
    \markup \upright \bold "accelerando molto" -- 
    \markup \upright \bold al --
    \markup \upright \concat {
      \bold "Vivace (" \general-align #Y #-1 \tiny \note #"2" #UP " = 138)" } } 
}

Some time in the future, a real text-spanner mode would be useful for
this sort of case, so that the problem of wanting the instruction to
appear once in the score and once in each of the parts would be solved,
hopefully, just as it is currently for normal tempo markings.

As it is, the relevant passage in my quartet file looks like this (using
\parallelMusic):
% bar 40
        \tag #'forScore {
          c8 a b a b \accelVivaceText a \startTextSpan gs a \noBreak |
          c8 a b a b a gs a |
          c8 a b a b a gs a |
          c8 a b a b a gs a | }
        \tag #'forPart {
          c8 a b a b \accelVivaceText a \startTextSpan gs a \noBreak |
          c8 a b a b \accelVivaceText a \startTextSpan gs a \noBreak |
          c8 a b a b \accelVivaceText a \startTextSpan gs a \noBreak |
          c8 a b a b \accelVivaceText a \startTextSpan gs a \noBreak | }
% bar 41
        b8_\cresc gs a gs a gs fs gs |
        b8_\cresc gs a gs a gs fs es |
        b8_\cresc gs g gs g fs gs fs |
        b8_\cresc gs g gs g fs e fs |
% bar 42
        a8 fs gs fs gs fs e fs |
        fs8 gs es fs es fs fs es |
        gs8 a gs g a g a g |
        gs8 fs e gs fs gs fs fs |
% bar 43
        gs8 e fs e fs fs es fs |
        fs8 gs es fs es fs fs es |
        fs8 g fs es fs g fs g |
        es8 fs g fs g fs g fs |
% bar 44
        \tag #'forScore {
          g8\ff \stopTextSpan es fs es fs fs fs fs |
          fs8\ff g! es fs es fs fs fs |
          fs8\ff g fs es fs es fs es |
          es8\ff fs g es fs es fs fs | }
        \tag #'forPart {
          g8\ff \stopTextSpan es fs es fs fs fs fs |
          fs8\ff \stopTextSpan g! es fs es fs fs fs |
          fs8\ff \stopTextSpan g fs es fs es fs es |
          es8\ff \stopTextSpan fs g es fs es fs fs | }

Thanks again.

David


On Tue, 2015-11-03 at 11:39 -0600, David Nalesnik wrote:
> Hi David,
> 
> On Tue, Nov 3, 2015 at 11:22 AM, David Sumbler <address@hidden>
> wrote:
>         I have now got around to trying to use
>         text-spanner-inner-text-lyric-mode.ly, as suggested by Pierre.
>         
>         The basic concept is great, but I am having a few difficulties
>         (some of
>         which may be to do with the fact that I have never used
>         \lyricmode
>         before).
>         
>         It has been suggested that a Tempo spanner might be useful
>         eventually.
>         That would certainly have helped me, because I want
>         "accelerando
>         molto----al----Vivace (𝅗𝅥=138)" to appear in each of the four
>         parts of
>         the string quartet, but only once in the score.  I have got
>         around this
>         problem for now by using tags named "forScore" and forPart".
>         
>         My second problem is that I want upright, bold text - the
>         style that is
>         usually used for tempo markings.  Unfortunately, I have not
>         found a way
>         of doing this, other than using \markup \upright \bold for
>         each distinct
>         part of the text, thus:
>         
>         \addTextSpannerText \lyricmode {
>                 \markup \upright \bold "accelerando molto" --
>                 \markup \upright \bold al --
>                 \markup \upright \bold "Vivace (2 = 138)" }
>         
>         I can't help feeling that there must be a way of formatting
>         lyrics
>         globally, but I haven't managed to find it in the manual yet.
> 
> 
> In this case you'd need to address the TextSpanner grob.  Check the
> properties here:
> http://lilypond.org/doc/v2.19/Documentation/internals/textspanner
> Listed is a 'font-shape property, set by default to 'italic.  So all
> you'd need to do is:
> \override TextSpanner.font-shape = #'upright
> 
> 
> TextSpanner supports the font-interface which has the property
> 'font-series and you could set that to bold:
> \override TextSpanner.font-series = #'bold
> (See http://lilypond.org/doc/v2.19/Documentation/internals/font_002dinterface)
> 
> 
>         
>         The third problem is the minim for the tempo marking at the
>         end.  I
>         can't use \note #"2", because that will be treated as a
>         separate markup
>         and be spaced away from "Vivace(" and "= 138)".
>         
>         Is there a way of achieving what I want?
> 
> 
> Sure.  You'd just need to use \concat or some such.  There may be a
> special "format a markup like a tempo" function somewhere that you
> could use, but my memory fails me.
> 
> 
> Hope this helps,
> DN

On Tue, 2015-11-03 at 18:50 +0100, David Kastrup wrote:

> David Sumbler <address@hidden> writes:
> 
> > I have now got around to trying to use
> > text-spanner-inner-text-lyric-mode.ly, as suggested by Pierre.
> >
> > The basic concept is great, but I am having a few difficulties (some
> of
> > which may be to do with the fact that I have never used \lyricmode
> > before).
> >
> > It has been suggested that a Tempo spanner might be useful
> eventually.
> > That would certainly have helped me, because I want "accelerando
> > molto----al----Vivace (&#119134=138)" to appear in each of the four
> parts of
> > the string quartet, but only once in the score.  I have got around
> this
> > problem for now by using tags named "forScore" and forPart".
> >
> > My second problem is that I want upright, bold text - the style that
> is
> > usually used for tempo markings.  Unfortunately, I have not found a
> way
> > of doing this, other than using \markup \upright \bold for each
> distinct
> > part of the text, thus:
> >
> > \addTextSpannerText \lyricmode {
> >       \markup \upright \bold "accelerando molto" -- 
> >       \markup \upright \bold al -- 
> >       \markup \upright \bold "Vivace (2 = 138)" }
> >
> > I can't help feeling that there must be a way of formatting lyrics
> > globally, but I haven't managed to find it in the manual yet.
> 
> You could try
> 
> \addTextSpannerText \markupMap LyricEvent.text
>                     \markup \upright \bold \etc
>                     \lyricmode { "accelerando molto --
>                                  al --
>                                  "Vivace (2 = 138)" }
> 
> This is not particularly fabulous I'll readily admit and requires a
> suitably current version.  But you could put the bulk in a macro
> 
> \addTempoText =
> \addTextSpannerText \markupMap LyricEvent.text
>   \markup \upright \bold \etc \etc
> 
> Uh, maybe?
> 
> > The third problem is the minim for the tempo marking at the end.  I
> > can't use \note #"2", because that will be treated as a separate
> markup
> > and be spaced away from "Vivace(" and "= 138)".
> 
> \concat { "Vivace (" \note #"2" " = 138)" }
> 
> -- 
> David Kastrup





reply via email to

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