| | |
| | | |
| | | ;====================================== |
| | | ;OM-Lead, 2022-2024 |
| | | ; |
| | | ;Library for Rule-based Voice-Leading |
| | | ;Author: Lorenz Lehmann |
| | | ;Supervision: Marlon Schumacher |
| | | ;====================================== |
| | | |
| | | |
| | | (in-package :omlead) |
| | | |
| | | |
| | |
| | | |
| | | |
| | | ;;;;;;;;;;;;;;;;;;negativ |
| | | (reverse (loop for i in (if (or (eq 'hold mode) (eq 'hold-mirror mode)) |
| | | (hold_oml negativ) (circular_oml negativ)) ;;endless down-list |
| | | (reverse (loop for counter |
| | | for i = (if (or (eq 'hold mode) (eq 'hold-mirror mode)) |
| | | (hold-list negativ counter) (circular-list negativ counter)) ;;endless down-list |
| | | sum i into total |
| | | until (> range-min (- fundamental total)) |
| | | collect (- fundamental total) |
| | |
| | | |
| | | ;;;;;;;;;;;;;;;;;;positiv |
| | | |
| | | (loop for i in (if (or (eq 'hold mode) (eq 'hold-mirror mode)) |
| | | (hold_oml positiv) (circular_oml positiv)) ;;endless up-list |
| | | (loop for counter |
| | | for i = (if (or (eq 'hold mode) (eq 'hold-mirror mode)) |
| | | (hold-list positiv counter) (circular-list positiv counter)) ;;endless up-list |
| | | sum i into total |
| | | until (< range-max (+ fundamental total)) |
| | | collect (+ fundamental total))))))) |
| | |
| | | |
| | | (harmonies |
| | | (if (car filter-harmonies) |
| | | (let ((filter-list harmonies)) |
| | | (remove nil (loop for filter-box in filter-harmonies |
| | | append (loop for rule in (second filter-box) |
| | | append (loop for harmony in harmonies |
| | | collect (if (tester_oml |
| | | (lambda (x) (and (<= (list-min_oml (third filter-box)) x) (>= (list-max_oml (third filter-box)) x))) |
| | | harmony) |
| | | (if (funcall rule (first filter-box) harmony) harmony) harmony))))) |
| | | |
| | | |
| | | (loop for filter-box in filter-harmonies |
| | | do (loop for rule in (second filter-box) |
| | | |
| | | do (loop for harmony in filter-list |
| | | do (if (tester_oml |
| | | (lambda (x) (and (<= (list-min_oml (third filter-box)) x) (>= (list-max_oml (third filter-box)) x))) |
| | | harmony) |
| | | (if (not (funcall rule (first filter-box) harmony)) |
| | | (delete harmony filter-list)))))) |
| | | filter-list) |
| | | harmonies)) |
| | | harmonies)) |
| | | |
| | | ;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| | | |
| | |
| | | |
| | | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
| | | |
| | | |
| | | |
| | | (let ((a '(1))) |
| | | (delete 1 a)) |
| | | |