[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Condensing single-bar rests into a multi-measure rest
From: |
David Sumbler |
Subject: |
Re: Condensing single-bar rests into a multi-measure rest |
Date: |
Sun, 04 Jan 2015 00:16:23 +0000 |
From: Urs Liska <address@hidden>
To: address@hidden
Subject: Re: Condensing single-bar rests into a multi-measure rest
Date: Sat, 03 Jan 2015 18:59:17 +0100
> >
Am 03.01.2015 um 18:45 schrieb David Sumbler:
>> From: Urs Liska <address@hidden>
>> To: address@hidden
>> 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
I have now corrected my version of the combineMMRests function, but
unfortunately it still leaves my output unaffected.
I can see how something like this could work - unfortunately my
understanding at this stage of Scheme and Lilypond internals is
insufficient for me to see where the problem might be or to write
something similar from scratch.
I can't see why \parallelMusic should cause a problem: presumably it
just returns exactly what the individual parts would produce if they
were not interleaved in the parallelMusic structure.
David