lilypond-user
[Top][All Lists]
Advanced

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

Re: (no subject)


From: Simon Bailey
Subject: Re: (no subject)
Date: Wed, 15 Jan 2014 10:59:44 +0100

hi,

On Wed, Jan 15, 2014 at 9:53 AM, jensgc <address@hidden> wrote:
> thanks for the answer. I am aware of the possibility to have the dynamics in
> a separate voice - and it might be the solution here. I am however not fond
> of having to enter dynamics in a voice "without music" - for the score in
> question I have 16 voices each with their own (polyphonic) dynamic markings
> - and in a score where the time signature changes frequently, it is not
> trivial to write spacers until bar 125 to be able to put a dynamic mark in
> bar 126.
>
> The overall tempo markings are currently defined in the first of the
> "active" voices in that particular bar - and the displayed tempo marking is
> automatically placed on top of the system. But when I try to make more
> dynamic tempo adjustments (ritardando, stringendo etc.) - that just as well
> as an overall tempo marking implicitly has a scope of the entire system -
> the displayed marking goes to the staff and not the system.
>
> Are there any plans on making a "SystemSpanner" or similar that will combine
> the flexibility from the TextSpanner with the "only on top of system"
> property from \tempo and \mark ?
> What I'd like to do is to write a command that puts the output of
> TextSpanner to the top staff in the system, regardless of which staff it is
> defined in. Is it possible by tweaking something or do I need to make the
> dynamics voice separate?

this is untested, but what might work would be to set up your score
with a Dynamics context at the top. Don't be mislead by it being
called Dynamics, you can put ANYTHING in there, doesn't have to be
Dynamics (I use one for putting pedal markings in piano staves for
instance).

%%% SNIP SNAP %%%
\version 2.18.0
global = {
  %% put tempo, rehearsal marks, meter changes etc. in this
  %% variable and reuse everywhere
  %% you'll need this anyway to keep the Dynamics context alive
  \tempo "funky"
  \time 4/4
  s1*18
  \tempo "Super fast"
  \time 3/8
  s4.*3
  \tempo "Miles Davies feel"
  \time 5/4
  s4*4*12
  \tempo "Laid back"
  \time 4/4
  %% etc., you get the idea
}

\score {
<<
  \new Dynamics = "TopSpanner" { \global}
  \new Staff = "s" { \soprano }
  \new Staff = "a" { \alto }
  \new Staff = "t" { \tenor }
  \new Staff = "b" { \bass }
>>
%%% SNAP SNIP %%%

then in any voice define the text spanner in temporary polyphony:

%%% SNIPP SNAPP %%%
\version 2.18.0
ritardandoSpannerDefinitions = {
  \once \override TextSpanner.bound-details.left.text = \markup
\italic "ritardando"
  \once \override TextSpanner.bound-details.left-broken.text = \markup
\italic \small "(rit.)"
  \once \override TextSpanner.bound-details.right.text = \markup \italic "al"
}

tenor = \relative c' {
  % lots of music
  % up to bar 125
  <<
    \context Dynamics = "TopSpanner" { \ritardandoSpannerDefinitions
s4\startTextSpan s2. | s2. s4\stopTextSpan }
    { % 2 bars of tenor music }
  >>
  % lots more music
  % to end of piece
}
%%% SNAPP SNIPP %%%

This is the same principle as used for Ossia staves:
http://lilypond.org/doc/v2.18/Documentation/notation/modifying-single-staves#ossia-staves
(read the bit starting with "If many isolated ossia staves are
needed[...]" -- 3rd example in that section).

Like I said, this is completely untested and may or may not work
directly via copy/paste, but I think you get the idea. The syntax for
the TextSpanner is for 2.17 and later, so if you're using 2.16, you'll
have to use the following syntax: \override TextSpanner
#'(bound-details left text) = "rit."

Hope this helps, regards,
sb



reply via email to

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