Many thanks for the responses, Thomas and David. And sorry for the messy code layout… I’ll see if I can change that. Yours, Simon
Am 08.07.2014 15:50, schrieb Thomas Morley:
2014-07-08 13:39 GMT+02:00 Simon Albrecht <[email protected]>:Hello everybody, I just wrote a music function to mark grobs as editorial addition by colouring them grey. See the code and an example: \version "2.19.8" ed = #(let ((string-or-list? (lambda (grob) (or (string? grob) (list? grob))))) (define-music-function (parser location grob mus) (string-or-list? ly:music?) #{ \override $grob . color = #(x11-color 'grey40) $mus \revert $grob . color #} ) ) \relative { \ed NoteHead c' \ed #'(Staff Accidental) { cis dis } es } %%%%%%%%%%%%% The 2.18 changes document says that #'(Staff Accidental) and Staff.Accidental were now interchangeable, however if I replace it in the second function call, I get errors (unexpected "." etc.). Is there a way to avoid this in the coding of the function or should it be considered a bug? Best regards, SimonHi, use the predicate symbol-list-or-symbol? Below a working version, displaying some info as well: \version "2.19.8" ed = #(define-music-function (parser location grob mus) (symbol-list-or-symbol? ly:music?) ;; displaying some info: (format #t "\nI'm the list: \t\t\t~a My first entry is: \t~a My next entry is: \t~a My first entry is a symbol? \t~a My next entry is a symbol? \t~a" grob (car grob) (if (not (null? (cdr grob))) (cadr grob) "none") (symbol? (car grob)) (if (not (null? (cdr grob))) (symbol? (cadr grob)) "none found")) (newline) ;; coloring the grob(s) #{ \override $grob . color = #(x11-color 'grey40) $mus \revert $grob . color #}) \relative { \ed NoteHead c' \ed #'(Staff Accidental) { cis dis } es } \relative { \ed NoteHead c' \ed Staff.Accidental { cis dis } es } HTH, Harm
_______________________________________________ lilypond-user mailing list [email protected] https://lists.gnu.org/mailman/listinfo/lilypond-user
