David Sumbler
2018-12-07 17:24:10 UTC
A few weeks back I wrote asking about a problem with a passage where
one instrument is playing at a different speed from the rest, and with
barlines that do not align with those in the other instruments.
Now I have a similar passage, but it has thrown up another difficulty,
which I can't so far find a solution to.
In this passage, one instrument (harpsichord) plays 8 bars in 4/4 time,
consisting mainly of semiquavers (sixteenths). It has to be played in
strict time at its own tempo (4 = 108) which is quicker than the rest
of the orchestra is playing.
Although the harpsichord part must appear in the score, it is important
that it is clear that it doesn't "fit" with the other instruments. It
starts at a common barline, but thereafter it does its own thing, so
the positioning of the notes in the score is merely a suggestion of
what is going on: in performance it won't necessarily fit precisely as
it is shown in the score, and does not need to.
By using scaled durations etc. I can get roughly the effect I want.
But is it spoiled by one thing: there is a 4/4 time signature in all
instruments (including the harpsichord) at the beginning of the
passage, but there are also a couple of further time changes in the
orchestra only. It is easy enough to prevent these from appearing in
the harpsichord part; but because Lilypond is actually synchronising
things vertically (just as one wants it to 99.99% of the time) in this
case it ruins the effect. There is a gap between successive notes in
the harpsichord to allow for the time signature displayed in all the
other staves.
I can illustrate the problem with the code below.
%%%%%%%%%%%%%%%%%%%%%%%%%
\version "2.19.82"
\paper {
ragged-right = ##f }
harps = { \time 2/4
\scaleDurations 8/11 { b16[ b b b] b[ b b b] \bar "|"
\noBreak b[ b b \bar"" }
\noBreak
\override Staff.TimeSignature.stencil = ##f
\time 3/8
\scaleDurations 3/4 { b16] b[ b b b] \bar "|" \noBreak b[ b b
\bar"" }
\noBreak
\time 5/8
\scaleDurations 10/13 { b16] b[ b b b] \bar"|" \noBreak b[ b b
b] b[ b b b] } }
\score {
\new Staff {
\time 2/4 \repeat unfold 32 b16 } }
\score {
\new Staff { \harps } }
\score {
<< \new Staff { \harps }
\new Staff {
\time 2/4 b4 b |
\time 3/8 b4 b8 |
\time 5/8 b4 b b8 | }
\layout {
\context { \Score
\remove "Timing_translator"
\remove "Default_bar_line_engraver"
}
\context {
\Staff
\consists "Timing_translator"
\consists "Default_bar_line_engraver"
}
}
}
%%%%%%%%%%%%%%%%%%%%%%%%%
I attach a png file of the output of the above code.
The first line of the output shows how I would like it to appear. The
second line shows how it appears when I apply the scaled durations -
this also is entirely satisfactory: the slight differences in
positioning would be unnoticeable without the preceding line for
comparison.
The final version shows what happens when the "orchestra" lines are
added. This is not satisfactory, because the distortions in the upper
line suggest that the notes in the upper line should be precisely
synchronised with the other line, which is not the case at all. Of
course I can put a verbal instruction in the score (and the parts), but
it would be nice to illustrate this more clearly in the musical
notation.
Can anyone think of a way of getting Lilypond to space the harpsichord
line(s) over the width between margins on each page - or possibly from
barline to barline of the lower stave(s) if that is easier - without
regard to the detail of what is happening in those other staves?
The only approach I can think of at the moment is to treat the line of
harpsichord notes as a completely separate score from the rest, and
then somehow join them into one system with a vertical line at the
left. This would make generating the score for this passage very
complicated, even if I knew how to do it!
Am hoping for Lilypond to do something which it can't possibly be made
to do?
David
one instrument is playing at a different speed from the rest, and with
barlines that do not align with those in the other instruments.
Now I have a similar passage, but it has thrown up another difficulty,
which I can't so far find a solution to.
In this passage, one instrument (harpsichord) plays 8 bars in 4/4 time,
consisting mainly of semiquavers (sixteenths). It has to be played in
strict time at its own tempo (4 = 108) which is quicker than the rest
of the orchestra is playing.
Although the harpsichord part must appear in the score, it is important
that it is clear that it doesn't "fit" with the other instruments. It
starts at a common barline, but thereafter it does its own thing, so
the positioning of the notes in the score is merely a suggestion of
what is going on: in performance it won't necessarily fit precisely as
it is shown in the score, and does not need to.
By using scaled durations etc. I can get roughly the effect I want.
But is it spoiled by one thing: there is a 4/4 time signature in all
instruments (including the harpsichord) at the beginning of the
passage, but there are also a couple of further time changes in the
orchestra only. It is easy enough to prevent these from appearing in
the harpsichord part; but because Lilypond is actually synchronising
things vertically (just as one wants it to 99.99% of the time) in this
case it ruins the effect. There is a gap between successive notes in
the harpsichord to allow for the time signature displayed in all the
other staves.
I can illustrate the problem with the code below.
%%%%%%%%%%%%%%%%%%%%%%%%%
\version "2.19.82"
\paper {
ragged-right = ##f }
harps = { \time 2/4
\scaleDurations 8/11 { b16[ b b b] b[ b b b] \bar "|"
\noBreak b[ b b \bar"" }
\noBreak
\override Staff.TimeSignature.stencil = ##f
\time 3/8
\scaleDurations 3/4 { b16] b[ b b b] \bar "|" \noBreak b[ b b
\bar"" }
\noBreak
\time 5/8
\scaleDurations 10/13 { b16] b[ b b b] \bar"|" \noBreak b[ b b
b] b[ b b b] } }
\score {
\new Staff {
\time 2/4 \repeat unfold 32 b16 } }
\score {
\new Staff { \harps } }
\score {
<< \new Staff { \harps }
\new Staff {
\time 2/4 b4 b |
\time 3/8 b4 b8 |
\time 5/8 b4 b b8 | }
\layout {
\context { \Score
\remove "Timing_translator"
\remove "Default_bar_line_engraver"
}
\context {
\Staff
\consists "Timing_translator"
\consists "Default_bar_line_engraver"
}
}
}
%%%%%%%%%%%%%%%%%%%%%%%%%
I attach a png file of the output of the above code.
The first line of the output shows how I would like it to appear. The
second line shows how it appears when I apply the scaled durations -
this also is entirely satisfactory: the slight differences in
positioning would be unnoticeable without the preceding line for
comparison.
The final version shows what happens when the "orchestra" lines are
added. This is not satisfactory, because the distortions in the upper
line suggest that the notes in the upper line should be precisely
synchronised with the other line, which is not the case at all. Of
course I can put a verbal instruction in the score (and the parts), but
it would be nice to illustrate this more clearly in the musical
notation.
Can anyone think of a way of getting Lilypond to space the harpsichord
line(s) over the width between margins on each page - or possibly from
barline to barline of the lower stave(s) if that is easier - without
regard to the detail of what is happening in those other staves?
The only approach I can think of at the moment is to treat the line of
harpsichord notes as a completely separate score from the rest, and
then somehow join them into one system with a vertical line at the
left. This would make generating the score for this passage very
complicated, even if I knew how to do it!
Am hoping for Lilypond to do something which it can't possibly be made
to do?
David