Re: MIDI and Volta repeats in parallel music

2014-11-22 Thread Michael Ellis
On Wed, Nov 19, 2014 at 10:54 AM, Michael Ellis 
wrote:

>
>
> ​
> I find it advantageous when working with multiple voices to keep
> 'structural' information (meter, tempo, etc.) in a separate voice that gets
> combined with the other voices as illustrated in the image and code below.
> In this example, the pdf layout is correct and the MIDI output honors the
> tempo change, but doesn't repeat the second measure despite using a
> separate score block with \unfoldRepeats.
>
>
After some further research, it appears that there is no general solution
(other than copying the volte into each voice) so I'm dropping the question.

I have another question that's somewhat related.  If my example  contained
notes above the middle line, you would notice that the stem directions
would still be up because I designated \music as \voiceOne and \structure
as \VoiceTwo.


> music = \relative c' { c4 d e | f g a b  }
>
> structure = {
> \time 3/4 \tempo 4=60 s2.
> \time 4/4 \tempo 4=120 \repeat volta 2 { s1 }
>  }
>
> \score {
>   \new Staff = "Music" {
>   <<
> \new Voice = "Music" { \voiceOne \music }
> \new Voice = "Structure" { \voiceTwo \structure }
>   >>
>   }
> }
>
>
Is there a way to tell LilyPond to apply the usual single voice rules for
stem direction to \music?
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: MIDI and Volta repeats in parallel music

2014-11-22 Thread Urs Liska


Am 22.11.2014 17:12, schrieb Michael Ellis:
I have another question that's somewhat related.  If my example 
 contained notes above the middle line, you would notice that the stem 
directions would still be up because I designated \music as \voiceOne 
and \structure as \VoiceTwo.


music = \relative c' { c4 d e | f g a b  }

structure = {
\time 3/4 \tempo 4=60 s2.
\time 4/4 \tempo 4=120 \repeat volta 2 { s1 }
 }

\score {
  \new Staff = "Music" {
  <<
\new Voice = "Music" { \voiceOne \music }
\new Voice = "Structure" { \voiceTwo \structure }
  >>
  }
}


Is there a way to tell LilyPond to apply the usual single voice rules 
for stem direction to \music?





Well, in this case you don't have any conflicting music in the two Voice 
contexts (because the \structure isn't a printed music voice).

So you can simply leave out the \voiceXXX commands and you're ready.

using \voiceOne and \voiceTwo is not mandatory at all to manage two 
voices. These commands only give LilyPond the necessary clues how to 
deal with potential collision events and how to typeset the voices (e.g. 
the stem direction you noticed, but also which voice would move to which 
direction in case of collisions etc.).


HTH
Urs
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: MIDI and Volta repeats in parallel music

2014-11-22 Thread Michael Ellis
On Sat, Nov 22, 2014 at 11:16 AM, Urs Liska  wrote:

>
>
> Well, in this case you don't have any conflicting music in the two Voice
> contexts (because the \structure isn't a printed music voice).
> So you can simply leave out the \voiceXXX commands and you're ready.
>
> using \voiceOne and \voiceTwo is not mandatory at all to manage two
> voices. These commands only give LilyPond the necessary clues how to deal
> with potential collision events and how to typeset the voices (e.g. the
> stem direction you noticed, but also which voice would move to which
> direction in case of collisions etc.).
>

Works beautifully. Thanks, Urs!

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


Re: MIDI and Volta repeats in parallel music

2014-11-23 Thread peter
> "Michael" == Michael Ellis  writes:


>> 
>> 
>> Well, in this case you don't have any conflicting music in the two
>> Voice contexts (because the \structure isn't a printed music
>> voice).  So you can simply leave out the \voiceXXX commands and
>> you're ready.

What's more, is there a reason to have the structure in a different
voice?

If you have it in the *same* voice, voltas will get unfolded properly
too:

   \score {
  \unfoldAllRepeats \new Staff = "Music" {
 \new Voice = "Music" <<
 \music 
 \structure
  >>
  }
  

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


Re: MIDI and Volta repeats in parallel music

2014-11-23 Thread Michael Ellis
On Sun, Nov 23, 2014 at 4:46 PM,  wrote:

> What's more, is there a reason to have the structure in a different
> voice?
>
>
>


Good question. For me,  it's mostly about the DRY principle (don't repeat
yourself).  I'm in the process of writing a program that tries to maximize
one's opportunities to exploit the repetitive aspects of most compositions
when entering the notation for multiple voices.  It's a work in progress,
but if you're curious it lives at
https://github.com/Michael-F-Ellis/TransLily

As for the whole \repeat unfold business, I'd love to understand why LP can
merge repeats in the PDF but can't do it MIDI.  I know the developers are
really smart folks,  so it must be way more challenging than I'm imagining.
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: MIDI and Volta repeats in parallel music

2014-11-23 Thread Peter Chubb
> "Michael" == Michael Ellis  writes:

Michael> On Sun, Nov 23, 2014 at 4:46 PM, 
Michael> wrote:
>> What's more, is there a reason to have the structure in a different
>> voice?

Michael> Good question. For me, it's mostly about the DRY principle
Michael> (don't repeat yourself).  I'm in the process of writing a
Michael> program that tries to maximize one's opportunities to exploit
Michael> the repetitive aspects of most compositions when entering the
Michael> notation for multiple voices.  It's a work in progress, but
Michael> if you're curious it lives at
Michael> https://github.com/Michael-F-Ellis/TransLily

My point I think is that the structure is the structure of the voice,
not the structure of the staff.  Which is why, BTW, the MIDI repeats
don't unfold.

Visibly the structure voice shows the repeats, but the repeats aren't
actually in the music voice.


So when you unfold you get:
   <<
 \music
 { \structure \structure \structure }
   >>
   

I
Michael> As for the whole \repeat unfold business, I'd love to
Michael> understand why LP can merge repeats in the PDF but can't do
Michael> it MIDI.  I know the developers are really smart folks, so it
Michael> must be way more challenging than I'm imagining.

t can't merge them in the PDF either.  But when it prints them as
repeat symbols, you can't tell from the printout.

Try this:
---
\version "2.18.0"

music= <<
\new Staff <<
  \new Voice \relative c' { c4 c c c }
  \new Voice \relative c' { \repeat volta 2 { s1 }}
>>
>>

\score {
  \music
}

\score {
  \unfoldRepeats \music
}


---
And look at the PDF.  The second system shows the unfolded structure.

Peter C

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


Re: MIDI and Volta repeats in parallel music

2014-11-23 Thread Michael Ellis
On Sun, Nov 23, 2014 at 10:33 PM, Peter Chubb 
wrote:

> My point I think is that the structure is the structure of the voice,
> not the structure of the staff.  Which is why, BTW, the MIDI repeats
> don't unfold.
>
> Visibly the structure voice shows the repeats, but the repeats aren't
> actually in the music voice.
>

I do understand that and it makes sense for LP to support almost any crazy
thing a composer might do.  As practical matter, however,  having volte in
one voice and not another is extremely rare.  I don't think I've ever seen
that in a score.

I haven't looked at the LilyPond code for \repeat, so I'm just guessing
here, but it seems to me that  maybe \repeat unfold is wrong tool for job
since it operates at the level of music expressions.   Maybe what's needed
is lower level code that operates at the level of midi file timing.  I
think it's analogous to what LP has to do to put the repeat bars and other
staff-level annotations from one voice in the right spatial location to
relative to another voice's.  That's a non-trivial task in itself, without
even getting into what LP does to avoid vertical collisions.

So it if were up to me (and it certainly isn't), I'd like to see some
effort put into developing a new command to designated one voice as a
'master' in the midi block, so that one might write something like

\score {
  << \structure \\ voiceA \\ voiceB  ... >>
  \midi {
  \master \structure
  }
}

to tell LP "Keep track of the repeats in the master and copy/paste as
needed in the other voices to make it so."

This is a good discussion and I hope we can continue it.  I'm going to be
traveling for the next 2 days so if my responses aren't immediate it
doesn't mean I'm not interested.

Cheers,
Mike
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user