On 2019-11-17 12:38 pm, Paolo Prete wrote:
Hello, is it possible to revert a tempo change to the previous tempo setting, without explicitly writing this previous one? Something like (pseudo-code): \tempo 4 = 120 { ...some music .... } \temporaryTempo 4 = 160 { ... some other music .... } \unset \temporaryTempo
Not sure if this is really the right way to do things: %%%% \version "2.19.83" #(define tempoStack '()) pushTempo = #(define-music-function () () (define (pushTempoHelper ctx) (let ((tempo (ly:context-property ctx 'tempoWholesPerMinute #f))) (set! tempoStack (cons tempo tempoStack)))) #{ \context Score \applyContext $pushTempoHelper #}) popTempo = #(define-music-function () () (define (popTempoHelper ctx) (let ((tempo (car tempoStack))) (ly:context-set-property! ctx 'tempoWholesPerMinute tempo) (set! tempoStack (cdr tempoStack)))) #{ \context Score \applyContext $popTempoHelper #}) \score { { \markLengthOn \bar "||" \tempo "Andante" 4=90 \repeat unfold 2 { b'4 4 4 4 } \bar "||" \pushTempo \tempo "Allegro" 4=140 \repeat unfold 2 { b'4 4 4 4 } \bar "||" \popTempo \tempo "a tempo" \repeat unfold 2 { b'4 4 4 4 } } \layout {} \midi {} } %%%% -- Aaron Hill