From your answer I gather that getting this information this way is fine. The other, more implicit question: has this change been overlooked when creating the changes documentation (http://lilypond.org/doc/v2.20/Documentation/changes-big-page.html)?
cheers Maurits > Op 3 sep. 2020, om 21:07 heeft Aaron Hill <[email protected]> het > volgende geschreven: > > On 2020-09-03 5:03 am, Maurits Lamers wrote: >> Hi all, >> I finally figured out what goes wrong here. The issue is that I get >> the key signature and the last key signature from the context in the >> following way: >> (ly:context-property (ly:translator-context engraver) 'keySignature)) >> (ly:context-property (ly:translator-context engraver) 'lastKeySignature)) >> which works in 2.14 up to 2.18. In 2.20 these properties seem to have >> been renamed to keyAlterations and lastKeyAlterations (according to >> http://lilypond.org/doc/v2.20/Documentation/internals/key_005fengraver) >> What would be the best way to support both 2.18 and 2.20? Is there a >> better / more reliable method of getting this information? > > You could check to see which symbol exists as a translator property: > > ;;;; > (define (translator-property? symbol) > (memq symbol all-translation-properties)) > > ;; ... > > (ly:context-property > (ly:translator-context engraver) > (car (filter translator-property? '(keyAlterations keySignature))) > '()) > ;;;; > > > -- Aaron Hill >
