bug-lilypond
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: \cadenzaOff and accidentals


From: David Bobroff
Subject: Re: \cadenzaOff and accidentals
Date: Mon, 05 Mar 2012 17:19:09 +0000
User-agent: Mozilla/5.0 (Windows NT 5.1; rv:10.0.2) Gecko/20120216 Thunderbird/10.0.2

On 3/5/2012 4:41 PM, David Kastrup wrote:
James<address@hidden>  writes:

Hello,

On 5 March 2012 15:20, David Kastrup<address@hidden>  wrote:
Neil Thornock<address@hidden>  writes:

In my mind, the real bug is that \cadenzaOff does not seem to turn the
cadenza off immediately, but rather one measure later.  I'm not sure
why it behaves as it does.
It resets timing to normal, and "normal" does not mean the end of a
measure.

Normal from what perspective? Where it left off before \cadenzaOn or
simply that it starts back at '0' immediately \cadenzaOff

I'm wondering if we need something (a sentence of two) in the NR to
avoid what is obviously something that does confuse people.
I still have not figured out the exact reasoning behind this.  But it
does not seem to be much more than "stop advancing time in measure"
"start advancing time in measure again".  If there is no material left
to fill the bar, the measure will not get full.


I've tried a couple things:

The first example uses Neil T's idea of setting \cadenzaOff a measure before it ends. It is intentionally awkward timing-wise. Note that it was necessary to used \cadenzaOff one note later than \cadenzaOn and that I also had to add a skip to be sure the barline was in the right place. It seems kludgy/ugly to me:

%%%
\version "2.14.2"

{
  \time 4/4
  c1
  \cadenzaOn
  c4 ~ \cadenzaOff c8 s32
  c16-[ c c c-] c4 c32-[ c c c c c c-] c8
  \bar "|"
  c4 c4 c
}

%% This one tests David K's comment regarding
%% time stops/time starts

\relative c'
{
  c1
c2 \cadenzaOn \teeny f32-[ a c f, a c f, a c-] \cadenzaOff \normalsize c2
  c1
}
%%%


The result I get from the second one strongly indicates that \cadenzaOn means time stops but that \cadenzaOff means, "Once a full measure has passed *from this point* the next one starts." If it was as simple as time stops/starts (the way I'm intepreting it) then the first part of measure two of the second example would be counted and the last half would be counted and nothing inside the cadenza would be counted. This is not what happens, though. It would be necessary to use 'c2*2' at the end of that bar as David K suggested earlier. It works and is much less ugly than the top example but strikes me as less than satisfactory.

I'm trying to avoid being a choosy beggar here as I certainly don't have the programming chops to dig in and fix this myself. I suspect, however, that "remembering" the portion of a measure preceding \cadenzaOn and then adding it to what comes after \cadenzaOff could be complicated. I can also easily imagine a situation where that approach would fail. Instead, would it not be useful to have some way to signal that the measure is over and a new measure is to begin, complete with barline and accidental behavior? I can also well imagine a scenario where having \cadenzaOff doing this would also fail. I'm thinking something like '\endMeasure' to accomplish this. I know that's only syntax and not a solution. I'm just wondering if leaving \cadenzaOn \cadenzaOff as they are and having another mechanism take care of initiating the next measure would be the solution.

In the meantime, I'll just have to remember these workarounds.

-David



reply via email to

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