diff --git a/private_includes/base/transposition.ily b/private_includes/base/transposition.ily index e5335bc..a244b88 100644 --- a/private_includes/base/transposition.ily +++ b/private_includes/base/transposition.ily @@ -2,7 +2,12 @@ TRANSPOSITION = #(cons #f #f) transposeGlobal = #(define-void-function (from to) (ly:pitch? ly:pitch?) - (set! TRANSPOSITION (cons from to))) + (if (not (car TRANSPOSITION)) + (set! TRANSPOSITION (cons from to)) + (let ((current_to (cdr TRANSPOSITION)) + (interval (ly:pitch-diff to from))) + (set! TRANSPOSITION (cons (car TRANSPOSITION) + (ly:pitch-transpose current_to interval)))))) transposable = #(define-music-function (fromto music) (pair? ly:music?)