lilypond-user
[Top][All Lists]
Advanced

[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





reply via email to

[Prev in Thread] Current Thread [Next in Thread]