[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: mmrest-of-length and partial measures/time chnages
From: |
Jan-Peter Voigt |
Subject: |
Re: mmrest-of-length and partial measures/time chnages |
Date: |
Mon, 12 Dec 2016 09:47:48 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.5.1 |
Hi Urs,
this is a problem, I also had to deal with once in a while.
As it is no daily problem, I hacked it as needed, but did build a
generic solution yet.
But it might be doable, *if* the music is "complete" and has a \partial
command in it, which is
#(make-music 'PartialSet 'duration (ly:make-duration 2))
so one can fetch that music-expression and build a rest with that duration.
In my hacks, I usually used a command which receives pre- and post-music
expressions (e.g. the needed rests) and decreased the duration for the
multi-measure-rest accordingly.
If there is a \partial, you will need a function, that translates an
arbitrary duration to a reasonable sequence of rests. \partial 4 is
easy, but \partial 2.. or whatever needs special handling also regarding
timesig.
A command \multimeasureRest <pre> <music> <post> should be doable.
HTH
Best
Jan-Peter
Am 12.12.2016 um 09:24 schrieb Urs Liska:
Hi all,
I have a set-up where pausing sections in a part can be handled by
automatically inserting multimeasure rests whose length is determined by
a meta variable for the sections.
As a MWE this looks like this:
\version "2.19.52"
sectionOne = {
c,1 |
c,1
}
{
#(mmrest-of-length sectionOne)
}
which nicely prints a staff with two measures of rest.
However, when the referenced variable starts with (or actually contains)
a partial measure, LilyPond gets confused:
sectionTwo = {
\partial 8
c'8 |
c'1 |
c'1
}
{
#(mmrest-of-length sectionTwo)
}
Of course the multi-measure rest now is 17/8 long but doesn't know about
the partial and consequently gives me barcheck errors and wrong output.
The same is true when the referenced variable contains music in other
than 4/4 time signature because mmrest-of-length by default seems to
produce 4/4 rests.
I can't simply add a \time command in front of the mmrest because this
is actually a complex set-up where the variables are retrieved from
previously parsed music expressions.
So my question is: is there a reliable and more or less convenient way
to produce a "rest" part/section from a referenced section, regardless
of what's in there. I think basically there are two approaches:
a)
analyse the music expression for partials and time changes
b)
copying the music but replace everything with rests.
Any pointers would be appreciated
Best
Urs
_______________________________________________
lilypond-user mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/lilypond-user