OpenMusic-Library zur regelbasierten Harmonie und Stimmführung.
Lorenz Lehmann
20.03.24 0c8e98ff2d259d0aba9ff173779997e87201284d
sources/gen-harmonies.lisp
@@ -235,14 +235,6 @@
(defun sum_oml (liste &optional (start 0))
 (cond ((null liste) start)
       (t (sum_oml (cdr liste) (+ start (car liste))))))
(defun circular_oml (items) 
(setf (cdr (last items)) items)
items)
@@ -277,16 +269,6 @@
(defun get-pos_oml (positions seq)
  (let ((positions (if (atom positions) (list positions) positions)))
    (mapcar #'(lambda (it) (nth it seq)) seq)))
(defun permutations_oml (bag)
(if (null bag)
@@ -299,44 +281,6 @@
(defun modulo_oml (pos liste)
(append
(nthcdr pos liste)
(butlast liste (- (length liste) pos))))
(defun register-permut_oml (register-list)
(remove-duplicates
                           (om::flat
                            (loop for r in register-list
                                  collect
                                  (mapcar #'(lambda (l) (permutations_oml
                                                         (append (make-list l :initial-element r)
                                                                 (make-list (- (length register-list) l) :initial-element 0))))
                                          (loop for x from 1 to (length register-list)
                                                collect x))) 2) :test 'equal))
(defun find-pos_oml (item seq)
  (remove nil (loop for s in seq
        for x
        collect (if (equal item s) x))))
(defun sum_oml (liste)
  (if (null (cdr liste))
      (car liste)
    (+ (car liste)
       (sum_oml (cdr liste)))))
(defun variations_oml (liste pcl)
@@ -344,14 +288,6 @@
         (liste (make-list pcl :initial-element liste)))
    (apply #'alexandria:map-product #'list liste)))
(defun find-dups_oml (lst)
  (cond ((null lst) '())
        ((member (car lst) (cdr lst)) (cons (car lst) (find-dups_oml (cdr lst))))
        (t (find-dups_oml (cdr lst)))))
@@ -369,3 +305,5 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;