lilypond-user
[Top][All Lists]
Advanced

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

Re: 2.21.1 change of behavior of \compressMMRests?


From: Thomas Morley
Subject: Re: 2.21.1 change of behavior of \compressMMRests?
Date: Sun, 3 May 2020 16:52:20 +0200

Am So., 3. Mai 2020 um 14:41 Uhr schrieb David Kastrup <address@hidden>:
>
> Paul Scott <address@hidden> writes:
>
> > I installed 2.19.84 and I believe I just answered the first question
> > below:  Apparently \compressFullBarRests has been deleted from Lily
> > and now we have \compressMMRests which has different functionality.
> >
> > I guessing convert-ly won't handle this and that any time I want to
> > redo any of my hundreds of pieces (not original compositions) I will
> > have to edit them for the new functionality of \compressMMRests.
>
> I have no idea why people "guess convert-ly won't handle this" and break
> into a rant rather than actually trying.
>
> > OTOH I may be able to get the old definition of \compressFullBarRests
> > and put in my several \include files.
>
> Or you could let convert-ly replace it with \compressEmptyMeasures .
>
> --
> David Kastrup
>

Hi Paul,

David already wrote about convert-ly...

Let me provide some test-code and the relevant output of it for
2.19.84, 2.20.0 and 2.21.0

#(use-modules (srfi srfi-39)
              (scm display-lily))

#(define (make-display-pair expr)
  (list
    expr
    (if (defined? expr)
        (let ((evaled-expr (primitive-eval expr)))
          (if (procedure? evaled-expr)
              evaled-expr
              (music->lily-string evaled-expr)
              ))
        (format #f "undefined in ~a" (lilypond-version)))))

#(format #t "For ~a:\n~y"
   (lilypond-version)
   (list
     (make-display-pair 'compressMMRests)
     (make-display-pair 'compressFullBarRests)
     (make-display-pair 'expandFullBarRests)
     (make-display-pair 'compressEmptyMeasures)
     (make-display-pair 'expandEmptyMeasures)))

###################

For 2.19.84:
((compressMMRests
   #<Music function #<procedure #f (music)>>)
 (compressFullBarRests
   "\\set Score.skipBars = ##t
")
 (expandFullBarRests
   "\\set Score.skipBars = ##f
")
 (compressEmptyMeasures "undefined in 2.19.84")
 (expandEmptyMeasures "undefined in 2.19.84"))

#########################

For 2.20.0:
((compressMMRests
   #<Music function #<procedure #f (music)>>)
 (compressFullBarRests
   "\\set Score.skipBars = ##t
")
 (expandFullBarRests
   "\\set Score.skipBars = ##f
")
 (compressEmptyMeasures "undefined in 2.20.0")
 (expandEmptyMeasures "undefined in 2.20.0"))

###################

For 2.21.1:
((compressMMRests
   #<Music function #<procedure #f (music)>>)
 (compressFullBarRests "undefined in 2.21.1")
 (expandFullBarRests "undefined in 2.21.1")
 (compressEmptyMeasures
   "\\set Score.skipBars = ##t
")
 (expandEmptyMeasures
   "\\set Score.skipBars = ##f
"))

################

As you can see compressMMRests is always a music-fuction _requiring_ a
music-argument.
Thus there's no chance any of your initial examples ever worked!
The first example omits any music-argument, thus the error.
The second example gives s1*28 as a musical argument, thus the
function compressMMRests sees no MultiMeasureRest and ofcourse does
nothing with s1*28

Did you confuse compressMMRests with compressFullBarRests (up to
2.20.0) and/or compressEmptyMeasures (since 2.21.0)?

Cheers,
  Harm



reply via email to

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