Changing polyphonic per-voice rest position

classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

Changing polyphonic per-voice rest position

Dr Nicholas Bailey
Hello!

I'm trying to typeset a piece of polyphonic keyboard music by the
English composer John Bull with version 2.4 and 2.6 (two different
platforms), and I've noticed the positioning of the rests doesn't look
too good. I understand that you can place a rest using a note followed
by \rest, but for much of the score the register of the "sooprano" part
is rather low, and the default rest position for that voice seems to be
at the very top or even above the clef.

Would it be possible to say "Please use the following default vertical
positions for rests for the moment" in the score, to save having to
place rests explicity the whole time? I've read the manual and as far
as I can understand it, it might be possible to set staff-position of
Rest somehow, but as to how to achieve this per-voice, I'm very much
out of my depth I'm afraid.

Any help very much appreciated.

Nick



_______________________________________________
lilypond-user mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/lilypond-user
Reply | Threaded
Open this post in threaded view
|

Re: Changing polyphonic per-voice rest position

Maarten Storm
Nicholas Bailey wrote:

> Hello!
>
> I'm trying to typeset a piece of polyphonic keyboard music by the
> English composer John Bull with version 2.4 and 2.6 (two different
> platforms), and I've noticed the positioning of the rests doesn't look
> too good. I understand that you can place a rest using a note followed
> by \rest, but for much of the score the register of the "sooprano"
> part is rather low, and the default rest position for that voice seems
> to be at the very top or even above the clef.
>
> Would it be possible to say "Please use the following default vertical
> positions for rests for the moment" in the score, to save having to
> place rests explicity the whole time? I've read the manual and as far
> as I can understand it, it might be possible to set staff-position of
> Rest somehow, but as to how to achieve this per-voice, I'm very much
> out of my depth I'm afraid.
>
> Any help very much appreciated.
>
> Nick
>
>
>
> _______________________________________________
> lilypond-user mailing list
> [hidden email]
> http://lists.gnu.org/mailman/listinfo/lilypond-user
>
You could do

\override Rest #'staff-position = #x

where x is a number indicating the position on the staff. Positive above
the middle line, negative under it.
You can find a good example in the regression tests.

In the list of layout objects in the program reference I only found the
staff-position property desribed for MultiMeasureRest. Shouldn't it be
listed for Rest as well?

Maarten.



_______________________________________________
lilypond-user mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/lilypond-user
Reply | Threaded
Open this post in threaded view
|

Re: Changing polyphonic per-voice rest position

Mats Bengtsson-6


Maarten Storm wrote:

> ...


> In the list of layout objects in the program reference I only found
> the staff-position property desribed for MultiMeasureRest. Shouldn't
> it be listed for Rest as well?


The program reference for each layout object only lists the properties
that are set by default. To get the full list of all available
properties that
can be set, you have to browse through all the interfaces listed at the
bottom of the page. For example, if you click on
"staff-symbol-referencer-interface"
you will find the documentation of staff-position.

   /Mats


_______________________________________________
lilypond-user mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/lilypond-user
Reply | Threaded
Open this post in threaded view
|

Re: Changing polyphonic per-voice rest position

Han-Wen Nienhuys
In reply to this post by Maarten Storm
Maarten Storm wrote:

> In the list of layout objects in the program reference I only found the
> staff-position property desribed for MultiMeasureRest. Shouldn't it be
> listed for Rest as well?
>
> Maarten.

it is, if you go to "staff-symbol-referencer-interface". Perhaps we
should add the user settable properties on the grob page as well, though.

--
  Han-Wen Nienhuys - [hidden email] - http://www.xs4all.nl/~hanwen


_______________________________________________
lilypond-user mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/lilypond-user
Reply | Threaded
Open this post in threaded view
|

Re: Changing polyphonic per-voice rest position

Dr Nicholas Bailey
In reply to this post by Maarten Storm

On 3 Jan 2006, at 10:42 am, Maarten Storm wrote:

> You could do
>
> \override Rest #'staff-position = #x
>
> where x is a number indicating the position on the staff. Positive
> above the middle line, negative under it.
> You can find a good example in the regression tests.

Ah, I see, you put it in the polyphonic voice and it really does only
change the rest for that voice. I was using loads of << ... \\ ... >>
constructs, rather than
typing four separate parts like you would with a string quartet or four
voices. Then I'd put the override at the top of the score where of
course it didn't work, so I went off on the tangent of trying to get
something like \override VoiceOne.Rest ... to work (which of course I
couldn't). Thanks for your help with this.

Actually, I think the explicit positioning with eg b'2\rest might be
the thing. The reason is that after typesetting, I'm running the whole
lot through a lex program to convert it to 19-divisions of the octave
(cis != des) which will then be played on a retuned MIDI keyboard so
that each octave covers an octave and a fifth of keys. So if I use the
explicit placement for all the rests, there won't be any nasty
surprises when the version with scordatura tuning version for keyboard
(?!) is typeset.

All this is very unlikely to make any sense at the moment, but I urge
people to come along to the gig if they are interested and around at
the time...

        http://markov.music.gla.ac.uk/cmt-wiki/NextSeminar#nism

If anyone is interested in the 19-divisions-of-the-octave microtonality
stuff, maybe they can email me off list and I'll send them some
resources.

One final tiny little point of interest. I've noticed that the rest
placement is actually much worse in 2.6 (specifically 2.6.3 debian
unstable) than 2.4 on my powerbook, so that there are collisions with
rests in addition the eccentric placement.

The attached snippet shows what I mean. In the first bar, the b
semibreve collides with the minim rest in (the implicit) voiceTwo.

Also, just a very very minor thing, but the braces at the left hand
side of the staff have increased in size since 2.4. This looks fine,
but they collide with the bar numbers now, so you have to increase
their offset to generate really nice output. (I think I know how yo do
this).

I notice I'm a few minor revisions behind the stable release, I'm just
using what's in the debian unstable branch. Here're the first three
bars anyway, with the collision in bar 1 and the very high rest
placement in bar 3.

When I've got the whole thing sorted, I'll put it on Mutopia or
something... I wonder how many people have ill-tempered keyboards so
they can play it though? :)

\version "2.6.3"

\header {
        title    = "Ut, re, mi, fa, sol, la."
        composer = "John Bull"
}

\score {

\new GrandStaff <<
         \new Staff {
           #(set-accidental-style 'voice)

           %% Bar 1
           \time 3/1
                  g1 a  << b \\ {r2 g} >>

                  %% Bar 2
                  \time 4/1
                  << {c'1 d'} \\ {a2 c'~ c' b2:16} >>
                  << {e'1 e'} \\ {c'4 g c'2~ c'4 b g a } >>

                  %% Bar 3
                  << b1 d' >>
                  << a c' >>
                  << {r2 d'~ d' c'~} \\ {b1 a} >>

         }

         \new Staff {
           #(set-accidental-style 'voice)
           \clef bass

           %% Bar 1
                  r2 g~ g f << r1 \\ {e2. d4}  >>

                  %% Bar 2
                  << r2 \\ c2 >>
                  << {g1 f2 e2. d4 c d e c} \\ {e2 d1 c2 a,~ a,4 b, c2} >>

                  %% Bar 3
                  << {g4 d} \\ b,2 >>
                  << {g2~ g4 e fis2} \\ {a,4 g, a,1} >>
                  << g2 \\ {g,4 a,} >>
                  << {g2~ g4 f f2} \\ {b,4 c d2 a,} >>
         }
 >>

\layout {
        \context {
                \Staff
                \remove Time_signature_engraver
        }
}

} % end of score





_______________________________________________
lilypond-user mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/lilypond-user
Reply | Threaded
Open this post in threaded view
|

Re: Changing polyphonic per-voice rest position

Dr Nicholas Bailey
In reply to this post by Maarten Storm
On 3 Jan 2006, at 10:42 am, Maarten Storm wrote:

> You could do
>
> \override Rest #'staff-position = #x
>
> where x is a number indicating the position on the staff. Positive
> above the middle line, negative under it.
> You can find a good example in the regression tests.

Ah, I see, you put it in the polyphonic voice and it really does only
change the rest for that voice. I was using loads of << ... \\ ... >>
constructs, rather than
typing four separate parts like you would with a string quartet or four
voices. Then I'd put the override at the top of the score where of
course it didn't work, so I went off on the tangent of trying to get
something like \override VoiceOne.Rest ... to work (which of course I
couldn't). Thanks for your help with this.

Actually, I think the explicit positioning with eg b'2\rest might be
the thing. The reason is that after typesetting, I'm running the whole
lot through a lex program to convert it to 19-divisions of the octave
(cis != des) which will then be played on a retuned MIDI keyboard so
that each octave covers an octave and a fifth of keys. So if I use the
explicit placement for all the rests, there won't be any nasty
surprises when the version with scordatura tuning version for keyboard
(?!) is typeset.

All this is very unlikely to make any sense at the moment, but I urge
people to come along to the gig if they are interested and around at
the time...

        http://markov.music.gla.ac.uk/cmt-wiki/NextSeminar#nism

If anyone is interested in the 19-divisions-of-the-octave microtonality
stuff, maybe they can email me off list and I'll send them some
resources.

One final tiny little point of interest. I've noticed that the rest
placement is actually much worse in 2.6 (specifically 2.6.3 debian
unstable) than 2.4 on my powerbook, so that there are collisions with
rests in addition the eccentric placement.

The attached snippet shows what I mean. In the first bar, the b
semibreve collides with the minim rest in (the implicit) voiceTwo.

Also, just a very very minor thing, but the braces at the left hand
side of the staff have increased in size since 2.4. This looks fine,
but they collide with the bar numbers now, so you have to increase
their offset to generate really nice output. (I think I know how yo do
this).

I notice I'm a few minor revisions behind the stable release, I'm just
using what's in the debian unstable branch. Here're the first three
bars anyway, with the collision in bar 1 and the very high rest
placement in bar 3.

When I've got the whole thing sorted, I'll put it on Mutopia or
something... I wonder how many people have ill-tempered keyboards so
they can play it though? :)

\version "2.6.3"

\header {
        title    = "Ut, re, mi, fa, sol, la."
        composer = "John Bull"
}

\score {

\new GrandStaff <<
         \new Staff {
           #(set-accidental-style 'voice)

           %% Bar 1
           \time 3/1
                  g1 a  << b \\ {r2 g} >>

                  %% Bar 2
                  \time 4/1
                  << {c'1 d'} \\ {a2 c'~ c' b2:16} >>
                  << {e'1 e'} \\ {c'4 g c'2~ c'4 b g a } >>

                  %% Bar 3
                  << b1 d' >>
                  << a c' >>
                  << {r2 d'~ d' c'~} \\ {b1 a} >>

         }

         \new Staff {
           #(set-accidental-style 'voice)
           \clef bass

           %% Bar 1
                  r2 g~ g f << r1 \\ {e2. d4}  >>

                  %% Bar 2
                  << r2 \\ c2 >>
                  << {g1 f2 e2. d4 c d e c} \\ {e2 d1 c2 a,~ a,4 b, c2} >>

                  %% Bar 3
                  << {g4 d} \\ b,2 >>
                  << {g2~ g4 e fis2} \\ {a,4 g, a,1} >>
                  << g2 \\ {g,4 a,} >>
                  << {g2~ g4 f f2} \\ {b,4 c d2 a,} >>
         }
 >>

\layout {
        \context {
                \Staff
                \remove Time_signature_engraver
        }
}

} % end of score





_______________________________________________
lilypond-user mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/lilypond-user
Reply | Threaded
Open this post in threaded view
|

Re: Changing polyphonic per-voice rest position

Mats Bengtsson-4
In reply to this post by Dr Nicholas Bailey


Nicholas Bailey wrote:

> ..., so I went off on the tangent of trying to get something like
> \override VoiceOne.Rest ... to work (which of course I couldn't).

Of course you can, but not exactly with that syntax. If you read in
"6.6.2 Explicitly instantiating voices", you will learn that the Voice
contexts
created by <<{...} \\ {...} >> are called "1" and "2", respectively. To
do a setting
that always applies to the upper voice when you have polyphony, you have to

- Explicitly instantiating the Voice context "1" in parallel with the
real music,
  already from the top of the score and do the settings there.

- make sure that this context is kept alive over the full score, by adding
  spacer notes corresponding to the full duration of the score.

In your example:

\version "2.6.3"

\header {
    title    = "Ut, re, mi, fa, sol, la."
    composer = "John Bull"
}

\score {

\new GrandStaff <<
     \new Staff <<
        \context Voice = "1" {
           \override Rest #'staff-position = #0
            s1*11
           }
        \context Voice = "2" {
           \override Rest #'staff-position = #-11
            s1*11
           }
        \new Voice {
           #(set-accidental-style 'voice)

           %% Bar 1
           \time 3/1
          g1 a  << b \\ {r2 g} >>

          %% Bar 2
          \time 4/1
          << {c'1 d'} \\ {a2 c'~ c' b2:16} >>
          << {e'1 e'} \\ {c'4 g c'2~ c'4 b g a } >>

          %% Bar 3
          << b1 d' >>
          << a c' >>
          << {r2 d'~ d' c'~} \\ {b1 a} >>

       }
     >>

     \new Staff <<
        \context Voice = "1" {
           \override Rest #'staff-position = #3
            s1*11
           }
        \new Voice {
           #(set-accidental-style 'voice)
           \clef bass

           %% Bar 1
          r2 g~ g f << r1 \\ {e2. d4}  >>

          %% Bar 2
          << r2 \\ c2 >>
          << {g1 f2 e2. d4 c d e c} \\ {e2 d1 c2 a,~ a,4 b, c2} >>

          %% Bar 3
          << {g4 d} \\ b,2 >>
          << {g2~ g4 e fis2} \\ {a,4 g, a,1} >>
          << g2 \\ {g,4 a,} >>
          << {g2~ g4 f f2} \\ {b,4 c d2 a,} >>
       }
     >>
 >>

\layout {
    \context {
        \Staff
        \remove Time_signature_engraver
    }
}

} % end of score



    /Mats


_______________________________________________
lilypond-user mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/lilypond-user
Reply | Threaded
Open this post in threaded view
|

Re: Changing polyphonic per-voice rest position

Mats Bengtsson-4
In reply to this post by Dr Nicholas Bailey


Nicholas Bailey wrote:

> Also, just a very very minor thing, but the braces at the left hand
> side of the staff have increased in size since 2.4. This looks fine,
> but they collide with the bar numbers now, so you have to increase
> their offset to generate really nice output. (I think I know how yo do
> this).

That's a bug in certain versions of 2.6.x, that should be solved in the
latest stable
version, 2.6.5.

   /Mats


_______________________________________________
lilypond-user mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/lilypond-user
Reply | Threaded
Open this post in threaded view
|

Re: Changing polyphonic per-voice rest position

David Raleigh Arnold
In reply to this post by Maarten Storm
On Tuesday 03 January 2006 05:42 am, Maarten Storm wrote:
> Nicholas Bailey wrote:
>
> > Hello!
> >
> > I'm trying to typeset a piece of polyphonic keyboard music by the
> > English composer John Bull with version 2.4 and 2.6 (two different
> > platforms), and I've noticed the positioning of the rests doesn't
look
> > too good. I understand that you can place a rest using a note
followed
> > by \rest, but for much of the score the register of the "sooprano"
> > part is rather low, and the default rest position for that voice
seems
> > to be at the very top or even above the clef.
> >
> > Would it be possible to say "Please use the following default
vertical
> > positions for rests for the moment"

Wouldn't it be better to have \followrests mean that the rest
takes its pitch from the next note in the part?  Rests are
cues and the ideal pitch for a rest if there is more than one
part is the one that leads one's eye to the note.  daveA

--
Free download of technical exercises worth a lifetime of practice:
"Dynamic Guitar Technique": http://www.openguitar.com/instruction.html
email: "David Raleigh Arnold" <[hidden email]>|<[hidden email]>
(Full name in address field is needed to pass filter)



_______________________________________________
lilypond-user mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/lilypond-user
Reply | Threaded
Open this post in threaded view
|

Re: Changing polyphonic per-voice rest position

Dr Nicholas Bailey
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1


On 4 Jan 2006, at 4:33 pm, David Raleigh Arnold wrote:
>
> Wouldn't it be better to have \followrests mean that the rest
> takes its pitch from the next note in the part?  Rests are
> cues and the ideal pitch for a rest if there is more than one
> part is the one that leads one's eye to the note.  daveA
>

Quite right! There is no such thing as \followrests in 2.6 though? (I
couldn't it in
http://lilypond.org/doc/v2.6/Documentation/user/lilypond.html)

I've gone through and manually placed the rests explicily. Throuble is
now, after running my scordatura program, the rests sometimes get
placed on spaces in the staff which makes it look like minim rests and
semibreve ones are swapped, but actually they are just being typeset
half a line off (like I asked for).

I think it'll be best to tackle this by hand for the moment. I'll send
you a PDF of what I've got so far if you're interested...

Nick/.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (Darwin)

iD8DBQFDvBcgFo+kGmUnzkQRAuQNAJ45Ez23F2/YbIKdtnD5veaeEnF/mACdG9lE
cYr9umILhmtn732VoEzF9jQ=
=Rpsb
-----END PGP SIGNATURE-----



_______________________________________________
lilypond-user mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/lilypond-user