Am 03.01.2015 um 18:45 schrieb David Sumbler:
From: Urs Liska <u...@openlilylib.org>
To: lilypond-user@gnu.org
Subject: Re: Condensing single-bar rests into a multi-measure rest
Date: Sat, 03 Jan 2015 16:45:27 +0100
Am 03.01.2015 um 16:36 schrieb David Sumbler:
I have now finished setting the saxophone quartet, which is the first
substantial multi-instrument piece I have attempted with Lilypond.
I am very pleased with the result, and I am now at the stage of tweaking
the appearance of the output.
Searching in the Lilypond documentation, one problem I have not been
able to find a solution to is this: in the piece there are a few places
where one instrument is silent for several consecutive bars. In the
score these obviously appear as single bar rests, but in the relevant
instrumental part I should like them to appear as a "multi-measure
rest".
The problem may be that I have used \parallelMusic for the whole score:
this seems an obvious way of doing things for a piece such as this with
a small number of instruments. It has certainly been far easier to find
my way around the file than in my previous Lilypond efforts (e.g. a
piece for flute and piano), even though they were a lot shorter than
this one.
But looking at the documentation, I can only see multi-measure rests
appearing if they are entered as multi-measure quantities - e.g. R1*6.
If this is true, then the only way I can see to get the result I want,
would be to deconstruct my whole file and reassemble it as 4 separate
sections, one for each instrument. This in itself will be a tedious
chore, but it also means the resulting file(s) will be much less easily
navigable when I make further additions and modifications.
Is there any way to get the result I want whilst still keeping the
\parallelMusic layout?
LilyPond by default only interprets single entities as combinable rests
(i.e. R1*6), while consecutive rests (e.g. R1 R1) are separated by
\compressFullBarRests.
I recently had the same problem and got a file from the list which I
tweaked to work well in a quite similar case.
You can find the file at
https://git.ursliska.de/beautifulscores/das-trunkne-lied/blob/master/library/ly/to-lilylib/combineMultimeasureRests.ily
I'm not sure if it is really straightforward to use in other contexts
but I suspect you should be able to use it.
You have to remove the conditional expression in the last function
\combineMMRests (because that's project specific), but I expect the file
to work smoothly once you've done that.
To use it include the file and surround your music by \combineMMRests
\yourMusic.
HTH
Urs
Thanks for that. I have tried the file, and although it does not
produce any errors, it does not seem to change the output at all. So it
may be that I am doing something wrong. Here is what I have done.
Firstly, the final function now reads:
combineMMRests =
#(define-music-function (parser location music) (ly:music?)
(condense music)
music)
I'm not entirely sure I have got this right!
No, that's not right. The "result" of a Scheme function is the result of
the last expression, and that is "music" in your case, so you're
returning the unaltered music argument.
I think (without testing) that
combineMMRests =
#(define-music-function (parser location music) (ly:music?)
(condense music))
should be right.
Secondly, in the section of my main file which produces a part for a
instrument, I have:
\score {
\combineMMRests {
\myMusic
}
\layout {
}
}
Is this correct?
That looks correct, although you don't need the curly braces around
\myMusic in this case.
However, I don't know if parallelMusic is interfering here additionally.
HTH
Urs
At the top of my file, of course, I have:
\include "combineMultimeasureRests.ily"
David
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user