Paul Morris wrote > Well, here's where the climb gets steep in trying to make this more > robust. See below where I added a "music-filter" step that filters out > the bar checks.
On second thought, forget the music-filter version and the ones before that. The one below has the better approach, more robust. Cheers, -Paul %%%%%%%%%%%%%%%% \version "2.18.2" dronify = #(define-music-function (parser location drone-pitch melody) (ly:pitch? ly:music?) (let ((art '()) (prev-note-or-rest #{ #})) (music-map (lambda (m) (if (and (music-is-of-type? m 'note-event) (ly:pitch? (ly:music-property m 'pitch))) ;; ...but do note events ever not have a pitch? ;; ...but are there any other kinds of events to dronify? (begin (ly:music-set-property! m 'pitch drone-pitch) (if (music-is-of-type? prev-note-or-rest 'note-event) ;; add tie to previous note, don't overwrite existing articulations (begin (set! art (ly:music-property prev-note-or-rest 'articulations '())) (ly:music-set-property! prev-note-or-rest 'articulations (append art (list (make-music 'TieEvent)))))))) (if (or (music-is-of-type? m 'note-event) (music-is-of-type? m 'rest-event)) ;; ...but should there be more types of events here? (set! prev-note-or-rest m)) m) melody))) melody = \relative f' { c4 d r e | \grace c f r g a | b c r e | f r g a | b } \score { << \melody \dronify g \melody >> \layout {} \midi {} } -- View this message in context: http://lilypond.1069038.n5.nabble.com/Function-to-add-a-drone-staff-tp174261p174420.html Sent from the User mailing list archive at Nabble.com. _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user