[prev in list] [next in list] [prev in thread] [next in thread] 

List:       lilypond-user
Subject:    Re: cadenza_and_accidentals-take2
From:       "bobroff () centrum ! is" <bobroff () centrum ! is>
Date:       2015-03-29 19:30:31
Message-ID: 205689276.1607007.1427657431505.JavaMail.zimbra () centrum ! is
[Download RAW message or body]



----- Original Message -----
> From: "Jim Long" <lilypond@umpquanet.com>
> To: bobroff@centrum.is
> Cc: "Noeck" <noeck.marburg@gmx.de>, lilypond-user@gnu.org
> Sent: Sunday, March 29, 2015 2:51:41 AM
> Subject: Re: cadenza_and_accidentals-take2
> 
> On Sat, Mar 28, 2015 at 07:45:51PM +0000, bobroff@centrum.is wrote:
> > 
> > ----- Original Message -----
> > > From: "Noeck" <noeck.marburg@gmx.de>
> > > 
> > > A naive question: Could the \cadenzaOff command be changed in a way that
> > > it automatically implies the end of a measure at that point.
> > 
> > I can think of instances where the end of a cadenza might not be at the end
> > of a measure.
> 
> I am speculating wildly, and I also am not generally a cadenza
> user, but perhaps \cadenzaOff could also be made to cooperate
> with \partial:
> 
> % simple case, without \partial:
> 
> \cadenzaOn
> 
> % lots of notes go here
> 
> \cadenzaOff
> 
> % a bar line appears here, and beat 1 follows
> 
> > c1
> > c1
> 
> \bar "|."
> 
> Or:
> 
> % a less simple case, using \partial:
> 
> \cadenzaOn
> 
> % lots of notes go here
> 
> \cadenzaOff
> 
> \partial 4.
> 
> b'8 c'' d''
> 
> % a bar line appears here, and beat 1 follows
> 
> > c1
> > c1
> 
> \bar "|."
> 
> 
> 
> 

This discussion got me motivated me to experiment a bit.  I haven't had much cause to \
use cadenzas much, either.  After playing with this I realized that the reason I was \
having accidental troubles following a cadenza was that, in this case, the cadenza \
was at the end of a measure.  Once the measure is full, LilyPond draws a barline even \
if it is invisible.  That leads to potential accidental issues.

Jim's speculation about \cadenzoOff being made to cooperate with \partial is maybe \
second-cousin to my solution below.  I reasoned that the problem with a cadenza at \
the end of a measure is that LilyPond has already drawn the barline.  The solution?  \
Don't *be* at the end of the measure just yet.  Using \scaleDurations I leave a bit \
of measure left at the end of the cadenza, toss in a skip and then Lily draws a \
barline.  No problems with bar numbres or accidentals.

It's a bit of a kludge, but all I have to do is scale the measure, add the skip, and \
everything else takes care of itself.  This might be a bit cumbersome in a large \
score, but I'm only dealing with a single line.

-David


%%%%%
\version "2.18.0"

startCadenza = {
  \cadenzaOn
  \teeny
  \stemUp
}

endCadenza = {
  \cadenzaOff
  \normalsize
  \stemNeutral
}


\score {
  {
    \override Score.BarNumber.break-visibility = ##(#t #t #t)
    c'2.^\markup{ Cadenza in the middle of a bar, no problem }
    \startCadenza
    d'16-[ f' e' g'-] a'-[ g' f' d'-]
    %  \set Timing.measurePosition = #(ly:make-moment 2/4)
    \endCadenza
    g'4
    c'1
  }
}


\score {
  {
    c'1^\markup{ Cadenza at the beginning of a bar, no problem }
    \override Score.BarNumber.break-visibility = ##(#t #t #t)
    \startCadenza
    d'16-[ f' e' g'-] a'-[ g' f' d'-]
    \endCadenza
    cis'2.
    g'4
    c'1
  }
}


\score {
  {
    \override Score.BarNumber.break-visibility = ##(#t #t #t)
    c'1^\markup {
      \column {
        "Cadenza at the end of a bar requires manipulation."
        "Time management still leaves accidental trouble"
        "Bar numbers may also be affected"
      } 
    }
    cis'2.
    \set Timing.measurePosition = #(ly:make-moment 1/4)
    g'4
    %    \bar ""
    \startCadenza
    d'16-[ f' e' g'-] a'-[ g' f' d'-]
    \endCadenza
    \bar "|"
    \set Timing.measurePosition = #(ly:make-moment 0/4)
    c'4 c' c' c'
  }
}

\score {
  {
    \override Score.BarNumber.break-visibility = ##(#t #t #t)
    c'1^\markup {
      \column {
        "Cadenza at the end of a bar requires manipulation."
        "Using \scaleDurations with a skip at the end works well."
        "Bar numbering remains unaffected and accidentals are well-behaved."
      } 
    }
    \scaleDurations 63/64 { % scale the whole mesure down a bit
      cis'2.
      \startCadenza
      d'16-[ f' e' g'-] a'-[ g' f' d'-]
      \endCadenza
      g'4 
      %    \bar ""
      \startCadenza
      d'16-[ f' e' g'-] a'-[ g' f' d'-]
      \endCadenza
    }
    s64 % add a skip at the very end
    \bar "|"
    c'1
  }
}
%%%%%

_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic