Am 09.06.2018 um 14:21 schrieb Thomas Morley:
2018-06-08 21:26 GMT+02:00 Urs Liska <[email protected]>:Hi, is there anything wrong with adding an arbitrary property to a SequentialMusic like that: \version "2.19.80" someNote = { c' d' } #(set! (ly:music-property someNote 'foo) "bar") \displayMusic \someNote ? The following is a MWE of a new extension I plan for scholarLY, and it seems to work. \sic and \corr add such an arbitrary property to the music while \choice uses that to retrieve one element out of a list of music expressions. \version "2.19.80" #(define selection 'sic) %#(define selection 'corr) choice = #(define-music-function (mus) (ly:music?) (let* ((elts (map (lambda (expr) (cons (ly:music-property expr 'choiceType) expr)) (ly:music-property mus 'elements))) (chosen (assq-ref elts selection))) (if chosen chosen (first (ly:music-property mus 'elements))))) tagMusic = #(define-void-function (mus tag)(ly:music? symbol?) (set! (ly:music-property mus 'choiceType) tag)) sic = #(define-music-function (mus) (ly:music?) (tagMusic mus 'sic) mus) corr = #(define-music-function (mus) (ly:music?) (tagMusic mus 'corr) mus) \relative { c' c g' g | \choice { \sic { g } \corr { a } } a g2 } But before proceeding I'd like to know if I'm not doing anything stupid by injecting two list items like so: (make-music 'SequentialMusic 'choiceType 'sic 'elements (list (make-music 'NoteEvent 'pitch (ly:make-pitch -1 4) 'duration (ly:make-duration 2)))) UrsHi Urs, this looks more or less the same as with custom-grob-properties. Probably a bit safer, if you register them in `all-music-properties' calling `music-property-description'. Look at http://lsr.di.unimi.it/LSR/Item?id=977 for an example Cheers, Harm
You mean I should use set-object-property! rather than set! (ly:music-property .... ? Does that also work with whole music expressions (vs. single grobs)? I want to "tag" the whole (sequential) music expression.
Best Urs _______________________________________________ lilypond-user mailing list [email protected] https://lists.gnu.org/mailman/listinfo/lilypond-user
