On 8 November 2017 at 18:15, David Kastrup <d...@gnu.org> wrote:

> Gianmaria Lari <gianmarial...@gmail.com> writes:
>
> > Talking about midi, is there any way to to reduce or increase the tempo
> of
> > some measures by a certain percentage instead of setting it to an
> absolute
> > value?
> >
> > For example instead of:
> >
> > \tempo 4=100 a b c d
> > \tempo 4=110 e f g a
> >
> >
> > something like
> >
> > \tempo 4=100 a b c d
> > \tempo 4=currentTempo*1.1 e f g a
> >
>
> Well, it's not pretty (but then one can try wrapping the prettiness into
> a music function), but here goes:
>

I tried to make it pretties. Here it is the code:

\version "2.19.80"
increaseTempo =
#(define-music-function (factor)(number?) #{
  \context Timing \applyContext
  #(lambda (c)
       (set! (ly:context-property c 'tempoWholesPerMinute)
             (ly:moment-mul (ly:context-property c 'tempoWholesPerMinute)
               (ly:make-moment factor))))

   #} )

\score {
  {
    \tempo 4=100
    a b c' d'
    \increaseTempo 3
    e' f' g' a'
  }
  \midi {}
  \layout {}
}

This works ok only when \increaseTempo argument is integer. If i try
\increaseTempo 2.5 it doesn't work. How to fix it?

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

Reply via email to