lilypond-user
[Top][All Lists]
Advanced

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

Re: different tempi


From: Werner LEMBERG
Subject: Re: different tempi
Date: Wed, 10 Sep 2008 12:34:55 +0200 (CEST)

> Werner's original image, you'll see that the moments are not exactly
> matched for these staves, but the notes in the Vla staff are
> positioned separately from all other staves. This makes all staves
> look good.
> 
> Now, I think (yes, that means I'm just guessing and not knowing ;-)
> ) that something like that is really not possible in LilyPond right
> now...

Yes.  Which comes nearest currently is to use a (partially) empty
staff and to put a \markup with an embedded score at the right place
(within this empty staff), manually adjusting the length of the score
and the position of the markup.  I can imagine that lilypond does this
automatically:

   1. lilypond breaks the music as done within the example.

   2. lilypond looks at a staff property, say, `format-independently',
      whether another run should be done for the whole line (or a span
      in it).

   3. The span is emptied, and its contents is put into a separate
      \score attached to the empty line with \markup.

   4. lilypond processes this separate score and inserts the result
      similar to a markup.

Step 1 is still hairy since you would manually have to insert
invisible bars for line breaking, but this is something I can live
with.


    Werner


======================================================================


\version "2.11.57"

\paper {
   ragged-right = ##f
}

vl = \relative c' {
  \time 5/4 as8[ c d f]~ f[ as, c d] f[ as] |
  \time 3/2 ces[ as f es] r des[ es f] as[ f] r4 |
}

vla = \relative c''
{
  \time 2/4 g8[( f] as[ a,!]) |
  \time 6/4 r4 e'4( f,) cis'4.( d,) |
  \time 6/4 r4 e'( f,)
}

vlc = \relative c {
  \time 5/4 R4*5 |
  \time 3/2 R1. |
}

cb = \relative c, {
  \time 5/4 bes4 c as g f |
  \time 3/2 des r g r r d' |
}

\layout
{
  \context {
    \Score
    \remove "Default_bar_line_engraver"
    \remove "Timing_translator"
    \remove "Span_bar_engraver"
  }
  \context {
    \StaffGroup
    \remove "Default_bar_line_engraver"
    \remove "Span_bar_engraver"
    \remove "Timing_translator"
  }
  \context {
    \InnerStaffGroup
    \remove "System_start_delimiter_engraver"
    \consists "Timing_translator"
    \consists "Default_bar_line_engraver"
  }
}

\markup { "Without" \typewriter "\markup" }

\score {
  \new StaffGroup <<
    \new InnerStaffGroup <<
      \new Staff { \vl }
      \new Staff { \vl }
    >>

    \new Staff \with {
      \consists "Default_bar_line_engraver"
      \consists "Timing_translator"
    } { \clef "alto" \vla }

    \new InnerStaffGroup <<
      \new Staff { \clef "bass" \vlc }
      \new Staff { \clef "bass_8" \cb }
    >>
  >>
}


\markup { "With" \typewriter "\markup" }

\score {
  \new StaffGroup <<
    \new InnerStaffGroup <<
      \new Staff { \vl }
      \new Staff { \vl }
    >>

    \new Staff \with {
      \remove "Staff_symbol_engraver"
      \remove "Time_signature_engraver"
      \remove "Clef_engraver"
      \consists "Timing_translator"
    } {
      \time 5/4
      \once \override TextScript #'extra-offset = #'(-17.2 . -2)
                s4*5^\markup {
%
%
        \score {
          \new Staff \with {
            \consists "Default_bar_line_engraver"
            \consists "Timing_translator"
          } { \clef "alto" \vla }
          \layout { }
        }
%
%
                              } |
      \time 3/2 s1.
    }

    \new InnerStaffGroup <<
      \new Staff { \clef "bass" \vlc }
      \new Staff { \clef "bass_8" \cb }
    >>
  >>
}




reply via email to

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