On Wed, 2015-08-26 at 14:10 +0200, David Kastrup wrote:
> David Sumbler <da...@aeolia.co.uk> writes:
> 
> > is it
> > possible to have repeats starting and ending within a bar when using
> > \parallelMusic?
> >
> > \version "2.18.0"
> >
> > \parallelMusic #'(Vone Vtwo) {
> > %bar 1
> >     \repeat volta 2 {
> >     d''2 d'' |
> >     f'2 f' |
> > %bar 2    
> >     c''2 c'' |
> >     e'2 e' |
> >     }
> > %bar 3
> >     g''1 |
> >     c''1 |
> > }
> >
> > \score { <<
> >     \new Staff { \Vone }
> >     \new Staff { \Vtwo }
> >     >> }
> >
> > That, of course, works fine.
> >
> > But suppose that the repeat should start in the middle of bar 1 and end
> > in the middle of bar 2.  This is easily done when setting the parts
> > separately; but can it be done within a \parallelMusic structure?  On
> > the face of it, the answer would seem to be "no".
> >
> > Or is it?
> 
> Any reason you neither try it out nor add any template to demonstrate
> on?  A user list is primarily a knowledge resource: making use of the
> different knowledge and skill levels of the participants for overcoming
> hurdles, not for running the whole track.
> 
> It should be easy enough for yourself to modify the example such that
> the repeats are on partial measure positions.

With respect, I could see no obvious way in which it could be done,
which is why I asked.  I suppose it was the proverbial "stupid
question".

Anyway, after trying several more (im)possibilities, I found a method
that worked but produced error messages.  Then I remembered Stephen
MacNeil's helpful suggestion a few months ago regarding incomplete final
bars.  An example is:

\version "2.18.0"

\parallelMusic #'(Vone Vtwo) {
%bar 1
    \set Score.measureLength = #(ly:make-moment 3/4) c''2. |
    \set Score.measureLength = #(ly:make-moment 3/4) e'2. |
    \repeat volta 2 {
        \set Score.measureLength = #(ly:make-moment 1/4) d''4 |
        \set Score.measureLength = #(ly:make-moment 1/4) f'4 |
%bar 2
        \set Score.measureLength = #(ly:make-moment 4/4) e''1 |
        \set Score.measureLength = #(ly:make-moment 4/4) g'1 |
%bar 3
        d''1 |
        f'1 |
%bar 4    
        \set Score.measureLength = #(ly:make-moment 3/4) c''2. |
        \set Score.measureLength = #(ly:make-moment 3/4) e'2. |
    }
    \set Score.measureLength = #(ly:make-moment 1/4) b'4 |
    \set Score.measureLength = #(ly:make-moment 1/4) d'4 |
%bar 5
    \set Score.measureLength = #(ly:make-moment 4/4) c''1 |
    \set Score.measureLength = #(ly:make-moment 4/4) e'1 |
}

\score {
    <<
        \new Staff { \Vone }
        \new Staff { \Vtwo }
    >>
}

Not exactly succinct, but it works.  I am sending this to the list (a)
so that I can find it again when I actually need it (b) in case somebody
knows a neater solution to the problem.

David


_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to