diff --git a/functions.ly b/functions.ly deleted file mode 100644 index c66515c..0000000 --- a/functions.ly +++ /dev/null @@ -1,177 +0,0 @@ - - -stripArticulations = #(define-scheme-function - (music) - (ly:music?) - - (define (strip-articulations-i o) - (define (f l) - (if (null? l) - '() - (let ((o (car l))) - (if (music-is-of-type? o 'articulation-event) - (f (cdr l)) - (cons o (f (cdr l))))) - )) - - (let ((els (ly:music-property o 'elements))) - (map strip-articulations-i els)) - - (let ((arts (ly:music-property o 'articulations))) - (cond ((not (null? arts)) - (let ((n-arts (f arts))) - (ly:music-set-property! o 'articulations n-arts))))) - - o) - - (strip-articulations-i (ly:music-deep-copy music)) - ) - -forceAccidental = #(define-scheme-function - (on_off music) - (index? ly:music?) - - (let ((yn (if (= on_off 0) #f #t))) - (define (force-accidental-i o) - (define (f o) - (cond ((music-is-of-type? o 'note-event) - (ly:music-set-property! o 'force-accidental yn))) - (force-accidental-i o) - o - ) - - (let ((els (ly:music-property o 'elements))) - (map f els)) - - (let ((arts (ly:music-property o 'articulations))) - (map f arts)) - - o - ) - - (force-accidental-i (ly:music-deep-copy music)) - ) - ) - -rmtext = #(define-scheme-function - (o) - (ly:music?) - (define (f o) - (ly:music-set-property! o 'text "") - (ly:music-set-property! o 'span-text "") - (let ((t (ly:music-property o 'name))) - (let ((els (ly:music-property o 'elements))) - (if (null? els) - (let ((arts (ly:music-property o 'articulations))) - (map (lambda (a) - (f a)) - arts)) - (map (lambda (e) - (f e) - ) - els)))) - ) - (let ((oo (ly:music-deep-copy o))) - (f oo) - oo) - ) - -withDuration = #(define-scheme-function - (music duration adjusts) - (ly:music? number? number?) - (define (with-duration-internal m duration) - (cond - ((or (music-is-of-type? m 'note-event) (music-is-of-type? m 'rest-event) (music-is-of-type? m 'skip-event)) - (ly:music-set-property! m 'duration (apply ly:make-duration duration))) - ((music-is-of-type? m 'event-chord) - (map (lambda (n) (with-duration-internal n duration)) - (ly:music-property m 'elements))) - (else (ly:warning "Neither note event nor chord")) - ) - m - ) - (with-duration-internal (ly:music-deep-copy music) (list duration adjusts)) - ) - -flattenPitch = #(define-scheme-function - (music) - (ly:music?) - - (define (adjust-first l) - (if (null? l) - 'done - (let ((e (car l))) - (if (music-is-of-type? e 'note-event) - (adjust-pitch-i e) - (adjust-first (cdr l)))) - ) - ) - - (define (adjust-pitch-i m) - (cond - ((music-is-of-type? m 'note-event) - (let* ((p (ly:music-property m 'pitch)) - (pa (ly:pitch-alteration p)) - (pn (ly:pitch-notename p)) - (pp (ly:make-pitch -1 pn pa)) - ) - (ly:music-set-property! m 'pitch pp)) - ) - ((or (music-is-of-type? m 'event-chord) - (music-is-of-type? m 'any)) - (adjust-first (ly:music-property m 'elements)) - ) - ) - m - ) - - (adjust-pitch-i (ly:music-deep-copy music)) - ) - -rep = #(define-scheme-function - (n m) - (index? ly:music?) - (let ((nn (- n 1)) - (mm (flattenPitch (rmtext m))) - ) - (if (> nn 0) - #{ - $m \repeat unfold $nn $mm - #} - #{ - $m - #} - ) - ) - ) - -fr = #(define-scheme-function - (n) - (ly:music?) - (rep 4 n)) - -frr = #(define-scheme-function - (n) - (ly:music?) - (rep 8 n) - ) - -none = #(define-scheme-function - (n1 n2 n3 n4 n5 n6 n7 n8 n9) - (ly:music? ly:music? ly:music? - ly:music? ly:music? ly:music? - ly:music? ly:music? ly:music?) - #{ \times 2/3 { $n1 $n2 $n3 } - \times 2/3 { $n4 $n5 $n6 } - \times 2/3 { $n7 $n8 $n9 } - #} - ) - - -tri = #(define-scheme-function - (n1 n2 n3) - (ly:music? ly:music? ly:music?) - #{ - \times 2/3 { $n1 $n2 $n3 } - #} - ) \ No newline at end of file