From 0c8e98ff2d259d0aba9ff173779997e87201284d Mon Sep 17 00:00:00 2001
From: Lorenz Lehmann <lorenz.lehmann@students.muho-mannheim.de>
Date: Wed, 20 Mar 2024 18:39:44 +0100
Subject: [PATCH] chore (sources): delete obsolete helper functions

---
 sources/gen-sequence.lisp |  871 ++++++++++++++++++++++++++++++++-------------------------
 1 files changed, 488 insertions(+), 383 deletions(-)

diff --git a/sources/gen-sequence.lisp b/sources/gen-sequence.lisp
index f9c2de7..d8424ff 100644
--- a/sources/gen-sequence.lisp
+++ b/sources/gen-sequence.lisp
@@ -36,133 +36,119 @@
           (loop repeat (- number-of-harmonies 1)
                 for database in database
                                     
-                for voice-tie1 in (cond ((atom voice-tie1) (loop repeat number-of-harmonies collect voice-tie1))
-                                        ((< (length voice-tie1) number-of-harmonies) 
-                                         (append voice-tie1 (loop repeat (- number-of-harmonies (length voice-tie1)) collect (car (reverse voice-tie1)))))
+                for voice-tie1 in (cond ((atom voice-tie1) (loop repeat (1- number-of-harmonies) collect voice-tie1))
+                                        ((< (length voice-tie1) (1- number-of-harmonies)) 
+                                         (append voice-tie1 (loop repeat (- (1- number-of-harmonies) (length voice-tie1)) collect (car (reverse voice-tie1)))))
                                         (t voice-tie1))
-                for voice-tie2 in (cond ((atom voice-tie2) (loop repeat number-of-harmonies collect voice-tie2))
-                                        ((< (length voice-tie2) number-of-harmonies) 
-                                         (append voice-tie2 (loop repeat (- number-of-harmonies (length voice-tie2)) collect (car (reverse voice-tie2)))))
+                for voice-tie2 in (cond ((atom voice-tie2) (loop repeat (1- number-of-harmonies) collect voice-tie2))
+                                        ((< (length voice-tie2) (1- number-of-harmonies)) 
+                                         (append voice-tie2 (loop repeat (- (1- number-of-harmonies) (length voice-tie2)) collect (car (reverse voice-tie2)))))
                                 (t voice-tie2))
-                for voice-tie3 in (cond ((atom voice-tie3) (loop repeat number-of-harmonies collect voice-tie3))
-                                        ((< (length voice-tie3) number-of-harmonies) 
-                                         (append voice-tie3 (loop repeat (- number-of-harmonies (length voice-tie3)) collect (car (reverse voice-tie3)))))
+                for voice-tie3 in (cond ((atom voice-tie3) (loop repeat (1- number-of-harmonies) collect voice-tie3))
+                                        ((< (length voice-tie3) (1- number-of-harmonies)) 
+                                         (append voice-tie3 (loop repeat (- (1- number-of-harmonies) (length voice-tie3)) collect (car (reverse voice-tie3)))))
                                 (t voice-tie3))
-                for voice-tie4 in (cond ((atom voice-tie4) (loop repeat number-of-harmonies collect voice-tie4))
-                                        ((< (length voice-tie4) number-of-harmonies) 
-                                         (append voice-tie4 (loop repeat (- number-of-harmonies (length voice-tie4)) collect (car (reverse voice-tie4)))))
+                for voice-tie4 in (cond ((atom voice-tie4) (loop repeat (1- number-of-harmonies) collect voice-tie4))
+                                        ((< (length voice-tie4) (1- number-of-harmonies)) 
+                                         (append voice-tie4 (loop repeat (- (1- number-of-harmonies) (length voice-tie4)) collect (car (reverse voice-tie4)))))
                                 (t voice-tie4))
 
                 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-                for voice-interval1 in (cond ((atom (car voice-interval1)) (loop repeat number-of-harmonies collect voice-interval1))
-                                             ((< (length voice-interval1) number-of-harmonies) 
-                                              (append voice-interval1 (loop repeat (- number-of-harmonies (length voice-interval1)) collect (car (reverse voice-interval1)))))
+                for voice-interval1 in (cond ((atom (car voice-interval1)) (loop repeat (1- number-of-harmonies) collect voice-interval1))
+                                             ((< (length voice-interval1) (1- number-of-harmonies)) 
+                                              (append voice-interval1 (loop repeat (- (1- number-of-harmonies) (length voice-interval1)) collect (car (reverse voice-interval1)))))
                                              (t voice-interval1))
-                for voice-interval2 in (cond ((atom (car voice-interval2)) (loop repeat number-of-harmonies collect voice-interval2))
-                                             ((< (length voice-interval2) number-of-harmonies) 
-                                              (append voice-interval2 (loop repeat (- number-of-harmonies (length voice-interval2)) collect (car (reverse voice-interval2)))))
+                for voice-interval2 in (cond ((atom (car voice-interval2)) (loop repeat (1- number-of-harmonies) collect voice-interval2))
+                                             ((< (length voice-interval2) (1- number-of-harmonies)) 
+                                              (append voice-interval2 (loop repeat (- (1- number-of-harmonies) (length voice-interval2)) collect (car (reverse voice-interval2)))))
                                              (t voice-interval2))
-                for voice-interval3 in (cond ((atom (car voice-interval3)) (loop repeat number-of-harmonies collect voice-interval3))
-                                             ((< (length voice-interval3) number-of-harmonies) 
-                                              (append voice-interval3 (loop repeat (- number-of-harmonies (length voice-interval3)) collect (car (reverse voice-interval3)))))
+                for voice-interval3 in (cond ((atom (car voice-interval3)) (loop repeat (1- number-of-harmonies) collect voice-interval3))
+                                             ((< (length voice-interval3) (1- number-of-harmonies)) 
+                                              (append voice-interval3 (loop repeat (- (1- number-of-harmonies) (length voice-interval3)) collect (car (reverse voice-interval3)))))
                                              (t voice-interval3))
-                for voice-interval4 in (cond ((atom (car voice-interval4)) (loop repeat number-of-harmonies collect voice-interval4))
-                                             ((< (length voice-interval4) number-of-harmonies) 
-                                              (append voice-interval4 (loop repeat (- number-of-harmonies (length voice-interval4)) collect (car (reverse voice-interval4)))))
+                for voice-interval4 in (cond ((atom (car voice-interval4)) (loop repeat (1- number-of-harmonies) collect voice-interval4))
+                                             ((< (length voice-interval4) (1- number-of-harmonies)) 
+                                              (append voice-interval4 (loop repeat (- (1- number-of-harmonies) (length voice-interval4)) collect (car (reverse voice-interval4)))))
                                              (t voice-interval4))
 
                 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-                for voice-counter1 in (if (eq nil voice-counter1) (loop repeat number-of-harmonies collect nil)
-                                        
-                                        (mat-trans_oml (list (cond ((not (listp (caar voice-counter1))) (loop repeat number-of-harmonies collect (car voice-counter1)))
-                                                                   ((< (length (car voice-counter1)) number-of-harmonies) 
-                                                                    (append (car voice-counter1) (loop repeat (- number-of-harmonies (length (car voice-counter1)))
-                                                                                                       collect (car (reverse (car voice-counter1))))))
-                                                                   (t (car voice-counter1)))
-                                                             (cond ((< (length (cadr voice-counter1)) number-of-harmonies)
-                                                                    (append (cadr voice-counter1) (loop repeat (- number-of-harmonies (length (cadr voice-counter1))) 
-                                                                                                        collect (car (reverse (cadr voice-counter1))))))
-                                                                   (t (cadr voice-counter1))))))
-                for voice-counter2 in (if (eq nil voice-counter2) (loop repeat number-of-harmonies collect nil)
-                                        
-                                        (mat-trans_oml (list (cond ((not (listp (caar voice-counter2))) (loop repeat number-of-harmonies collect (car voice-counter2)))
-                                                                   ((< (length (car voice-counter2)) number-of-harmonies) 
-                                                                    (append (car voice-counter2) (loop repeat (- number-of-harmonies (length (car voice-counter2)))
-                                                                                                       collect (car (reverse (car voice-counter2))))))
-                                                                   (t (car voice-counter2)))
-                                                             (cond ((< (length (cadr voice-counter2)) number-of-harmonies)
-                                                                    (append (cadr voice-counter2) (loop repeat (- number-of-harmonies (length (cadr voice-counter2))) 
-                                                                                                        collect (car (reverse (cadr voice-counter2))))))
-                                                                   (t (cadr voice-counter2))))))
-                for voice-counter3 in (if (eq nil voice-counter3) (loop repeat number-of-harmonies collect nil)
-                                        
-                                        (mat-trans_oml (list (cond ((not (listp (caar voice-counter3))) (loop repeat number-of-harmonies collect (car voice-counter3)))
-                                                                   ((< (length (car voice-counter3)) number-of-harmonies) 
-                                                                    (append (car voice-counter3) (loop repeat (- number-of-harmonies (length (car voice-counter3)))
-                                                                                                       collect (car (reverse (car voice-counter3))))))
-                                                                   (t (car voice-counter3)))
-                                                             (cond ((< (length (cadr voice-counter3)) number-of-harmonies)
-                                                                    (append (cadr voice-counter3) (loop repeat (- number-of-harmonies (length (cadr voice-counter3))) 
-                                                                                                        collect (car (reverse (cadr voice-counter3))))))
-                                                                   (t (cadr voice-counter3))))))
-                for voice-counter4 in (if (eq nil voice-counter4) (loop repeat number-of-harmonies collect nil)
-                                        
-                                        (mat-trans_oml (list (cond ((not (listp (caar voice-counter4))) (loop repeat number-of-harmonies collect (car voice-counter4)))
-                                                                   ((< (length (car voice-counter4)) number-of-harmonies) 
-                                                                    (append (car voice-counter4) (loop repeat (- number-of-harmonies (length (car voice-counter4)))
-                                                                                                       collect (car (reverse (car voice-counter4))))))
-                                                                   (t (car voice-counter4)))
-                                                             (cond ((< (length (cadr voice-counter4)) number-of-harmonies)
-                                                                    (append (cadr voice-counter4) (loop repeat (- number-of-harmonies (length (cadr voice-counter4))) 
-                                                                                                        collect (car (reverse (cadr voice-counter4))))))
-                                                                   (t (cadr voice-counter4))))))
-                for voice-counter5 in (if (eq nil voice-counter5) (loop repeat number-of-harmonies collect nil)
-                                        
-                                        (mat-trans_oml (list (cond ((not (listp (caar voice-counter5))) (loop repeat number-of-harmonies collect (car voice-counter5)))
-                                                                   ((< (length (car voice-counter5)) number-of-harmonies) 
-                                                                    (append (car voice-counter5) (loop repeat (- number-of-harmonies (length (car voice-counter5)))
-                                                                                                       collect (car (reverse (car voice-counter5))))))
-                                                                   (t (car voice-counter5)))
-                                                             (cond ((< (length (cadr voice-counter5)) number-of-harmonies)
-                                                                    (append (cadr voice-counter5) (loop repeat (- number-of-harmonies (length (cadr voice-counter5))) 
-                                                                                                        collect (car (reverse (cadr voice-counter5))))))
-                                                                   (t (cadr voice-counter5))))))
-                for voice-counter6 in (if (eq nil voice-counter6) (loop repeat number-of-harmonies collect nil)
-                                        
-                                        (mat-trans_oml (list (cond ((not (listp (caar voice-counter6))) (loop repeat number-of-harmonies collect (car voice-counter6)))
-                                                                   ((< (length (car voice-counter6)) number-of-harmonies) 
-                                                                    (append (car voice-counter6) (loop repeat (- number-of-harmonies (length (car voice-counter6)))
-                                                                                                       collect (car (reverse (car voice-counter6))))))
-                                                                   (t (car voice-counter6)))
-                                                             (cond ((< (length (cadr voice-counter6)) number-of-harmonies)
-                                                                    (append (cadr voice-counter6) (loop repeat (- number-of-harmonies (length (cadr voice-counter6))) 
-                                                                                                        collect (car (reverse (cadr voice-counter6))))))
-                                                                   (t (cadr voice-counter6))))))
+                for voice-counter1 in (cond ((atom voice-counter1) 
+                                             (loop repeat (1- number-of-harmonies) collect voice-counter1)) 
+                                            ((listp (caar voice-counter1)) 
+                                             (if (< (length voice-counter1) (1- number-of-harmonies)) 
+                                                 (loop repeat (- (1- number-of-harmonies) (length voice)) collect (car voice-counter1))
+                                               voice-counter1))
+                                            (t (loop repeat (1- number-of-harmonies) collect voice-counter1)))
+            
+      
+                for voice-counter2 in (cond ((atom voice-counter2) 
+                                             (loop repeat (1- number-of-harmonies) collect voice-counter2)) 
+                                            ((listp (caar voice-counter2)) 
+                                             (if (< (length voice-counter2) (1- number-of-harmonies)) 
+                                                 (loop repeat (- (1- number-of-harmonies) (length voice)) collect (car voice-counter2))
+                                               voice-counter2))
+                                            (t (loop repeat (1- number-of-harmonies) collect voice-counter2)))
+
+
+                for voice-counter3 in (cond ((atom voice-counter3) 
+                                             (loop repeat (1- number-of-harmonies) collect voice-counter3)) 
+                                            ((listp (caar voice-counter3)) 
+                                             (if (< (length voice-counter3) (1- number-of-harmonies)) 
+                                                 (loop repeat (- (1- number-of-harmonies) (length voice)) collect (car voice-counter3))
+                                               voice-counter3))
+                                            (t (loop repeat (1- number-of-harmonies) collect voice-counter3)))
+
+
+                for voice-counter4 in (cond ((atom voice-counter4) 
+                                             (loop repeat (1- number-of-harmonies) collect voice-counter4)) 
+                                            ((listp (caar voice-counter4)) 
+                                             (if (< (length voice-counter4) (1- number-of-harmonies)) 
+                                                 (loop repeat (- (1- number-of-harmonies) (length voice)) collect (car voice-counter4))
+                                               voice-counter4))
+                                            (t (loop repeat (1- number-of-harmonies) collect voice-counter4)))
+
+
+                for voice-counter5 in (cond ((atom voice-counter5) 
+                                             (loop repeat (1- number-of-harmonies) collect voice-counter5)) 
+                                            ((listp (caar voice-counter5)) 
+                                             (if (< (length voice-counter5) (1- number-of-harmonies)) 
+                                                 (loop repeat (- (1- number-of-harmonies) (length voice)) collect (car voice-counter5))
+                                               voice-counter5))
+                                            (t (loop repeat (1- number-of-harmonies) collect voice-counter5)))
+
+
+                for voice-counter6 in (cond ((atom voice-counter6) 
+                                             (loop repeat (1- number-of-harmonies) collect voice-counter6)) 
+                                            ((listp (caar voice-counter6)) 
+                                             (if (< (length voice-counter6) (1- number-of-harmonies)) 
+                                                 (loop repeat (- (1- number-of-harmonies) (length voice)) collect (car voice-counter6))
+                                               voice-counter6))
+                                            (t (loop repeat (1- number-of-harmonies) collect voice-counter6)))
 
                 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-                for counter-interval1 in (cond ((atom (car counter-interval1)) (loop repeat number-of-harmonies collect counter-interval1))
-                                               ((< (length counter-interval1) number-of-harmonies) 
-                                                (append counter-interval1 (loop repeat (- number-of-harmonies (length counter-interval1)) collect (car (reverse counter-interval1)))))
+                for counter-interval1 in (cond ((atom (car counter-interval1)) (loop repeat (1- number-of-harmonies) collect counter-interval1))
+                                               ((< (length counter-interval1) (1- number-of-harmonies)) 
+                                                (append counter-interval1 (loop repeat (- (1- number-of-harmonies) (length counter-interval1)) collect (car (reverse counter-interval1)))))
                                                (t counter-interval1))
-                for counter-interval2 in (cond ((atom (car counter-interval2)) (loop repeat number-of-harmonies collect counter-interval2))
-                                               ((< (length counter-interval2) number-of-harmonies) 
-                                                (append counter-interval2 (loop repeat (- number-of-harmonies (length counter-interval2)) collect (car (reverse counter-interval2)))))
+                for counter-interval2 in (cond ((atom (car counter-interval2)) (loop repeat (1- number-of-harmonies) collect counter-interval2))
+                                               ((< (length counter-interval2) (1- number-of-harmonies)) 
+                                                (append counter-interval2 (loop repeat (- (1- number-of-harmonies) (length counter-interval2)) collect (car (reverse counter-interval2)))))
                                                (t counter-interval2))
-                for counter-interval3 in (cond ((atom (car counter-interval3)) (loop repeat number-of-harmonies collect counter-interval3))
-                                               ((< (length counter-interval3) number-of-harmonies) 
-                                                (append counter-interval3 (loop repeat (- number-of-harmonies (length counter-interval3)) collect (car (reverse counter-interval3)))))
+                for counter-interval3 in (cond ((atom (car counter-interval3)) (loop repeat (1- number-of-harmonies) collect counter-interval3))
+                                               ((< (length counter-interval3) (1- number-of-harmonies)) 
+                                                (append counter-interval3 (loop repeat (- (1- number-of-harmonies) (length counter-interval3)) collect (car (reverse counter-interval3)))))
                                                (t counter-interval3))
-                for counter-interval4 in (cond ((atom (car counter-interval4)) (loop repeat number-of-harmonies collect counter-interval4))
-                                             ((< (length counter-interval4) number-of-harmonies) 
-                                              (append counter-interval4 (loop repeat (- number-of-harmonies (length counter-interval4)) collect (car (reverse counter-interval4)))))
+                for counter-interval4 in (cond ((atom (car counter-interval4)) (loop repeat (1- number-of-harmonies) collect counter-interval4))
+                                             ((< (length counter-interval4) (1- number-of-harmonies)) 
+                                              (append counter-interval4 (loop repeat (- (1- number-of-harmonies) (length counter-interval4)) collect (car (reverse counter-interval4)))))
                                              (t counter-interval4))
-                for counter-interval5 in (cond ((atom (car counter-interval5)) (loop repeat number-of-harmonies collect counter-interval5))
-                                               ((< (length counter-interval5) number-of-harmonies) 
-                                                (append counter-interval5 (loop repeat (- number-of-harmonies (length counter-interval5)) collect (car (reverse counter-interval5)))))
+                for counter-interval5 in (cond ((atom (car counter-interval5)) (loop repeat (1- number-of-harmonies) collect counter-interval5))
+                                               ((< (length counter-interval5) (1- number-of-harmonies)) 
+                                                (append counter-interval5 (loop repeat (- (1- number-of-harmonies) (length counter-interval5)) collect (car (reverse counter-interval5)))))
                                                (t counter-interval5))
-                for counter-interval6 in (cond ((atom (car counter-interval6)) (loop repeat number-of-harmonies collect counter-interval6))
-                                               ((< (length counter-interval6) number-of-harmonies) 
-                                                (append counter-interval6 (loop repeat (- number-of-harmonies (length counter-interval6)) collect (car (reverse counter-interval6)))))
+                for counter-interval6 in (cond ((atom (car counter-interval6)) (loop repeat (1- number-of-harmonies) collect counter-interval6))
+                                               ((< (length counter-interval6) (1- number-of-harmonies)) 
+                                                (append counter-interval6 (loop repeat (- (1- number-of-harmonies) (length counter-interval6)) collect (car (reverse counter-interval6)))))
                                                (t counter-interval6))
                 
 
@@ -170,33 +156,45 @@
 
 
                 collect
-                (let* ((second (nconc (list first-harmony) external-list))
+                (let* ((second (append (list first-harmony) (reverse external-list)))
                        (first (car (last second)));6000 6700
                        (second (let* ((temp-base database)
                                       
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-                          (temp-base (cond (avoid-repetitions (setq looplist 
-                                                                    (remove nil (loop for a in temp-base
-                                                                                      collect (if 
-                                                                                                  (car 
-                                                                                                   (remove nil 
-                                                                                                           (mapcar #'(lambda (l) (eq (car l) (cadr l)))
-                                                                                                                   (mat-trans_oml (list first a))))) nil a))))
-                                                                    
-                                             (if (null looplist) (list (loop repeat (length (first temp-base)) collect -1)) looplist))
-                                           (t temp-base))) 
+                          (temp-base (cond (avoid-repetitions 
+                                            (let* ((tie-list (mapcar '1- (remove nil (list voice-tie1 voice-tie2 voice-tie3 voice-tie4))))
+                                                    (sub-list (cond
+                                                               (tie-list (flat_oml (mapcar #'(lambda (l) (subs-posn_oml (loop repeat (length first) collect -2) l -1)) tie-list)))
+                                                               (t '(-2 -2 -2 -2))))
+                                                    
+                                                    
+                                                    (looplist
+                                                     (remove nil (loop for a in temp-base
+                                                                       collect (let ((harmony
+                                                                                      (remove nil (loop for i in sub-list
+                                                                                                        for n1 in first
+                                                                                                        for n2 in a
+                                                                                                        collect (if (cond ((eq i -1) (eq n1 n2))
+                                                                                                                          (t (not (eq n1 n2))))
+                                                                                                                    
+                                                                                                                    n2))))) 
+                                                                                 
+                                                                                 (if (eq (length first) (length harmony)) harmony))))))
+                                              
+                                              (if (null looplist) (list (loop repeat (length (first temp-base)) collect -1)) looplist)))
+                                            (t temp-base)))  
 
 
                          (temp-base (cond (voice-tie1 
-                                           (let ((voice-tie1 (- voice-tie1 1)))
-                                           (setq looplist (remove nil
+                                           (let* ((voice-tie1 (- voice-tie1 1))
+                                                  (looplist (remove nil
                                            (loop for a in temp-base 
                                                  collect 
-                                                 
+
                                                  (cond ((eq (nth voice-tie1 a) (nth voice-tie1 first)) a)
-                                                       ((eq (nth voice-tie1 a) -1) a)
-                                                       (t nil)))))
+                                                       ((eq (nth voice-tie1 first) -1) a)
+                                                       (t nil))))))
                                            (if (null looplist)
                                                (loop for a in temp-base
                                                      collect
@@ -205,14 +203,14 @@
                                           (t temp-base)))
 
                          (temp-base (cond (voice-tie2 
-                                           (let ((voice-tie2 (- voice-tie2 1)))
-                                           (setq looplist (remove nil
+                                           (let* ((voice-tie2 (- voice-tie2 1))
+                                                  (looplist (remove nil
                                            (loop for a in temp-base 
                                                  collect 
                                                  
                                                  (cond ((eq (nth voice-tie2 a) (nth voice-tie2 first)) a)
-                                                       ((eq (nth voice-tie2 a) -1) a)
-                                                       (t nil)))))
+                                                       ((eq (nth voice-tie2 first) -1) a)
+                                                       (t nil))))))
                                            (if (null looplist)
                                                (loop for a in temp-base
                                                      collect
@@ -221,14 +219,14 @@
                                           (t temp-base)))
 
                          (temp-base (cond (voice-tie3 
-                                           (let ((voice-tie3 (- voice-tie3 1)))
-                                           (setq looplist (remove nil
+                                           (let* ((voice-tie3 (- voice-tie3 1))
+                                                  (looplist (remove nil
                                            (loop for a in temp-base 
                                                  collect 
                                                  
                                                  (cond ((eq (nth voice-tie3 a) (nth voice-tie3 first)) a)
-                                                       ((eq (nth voice-tie3 a) -1) a)
-                                                       (t nil)))))
+                                                       ((eq (nth voice-tie3 first) -1) a)
+                                                       (t nil))))))
                                            (if (null looplist)
                                                (loop for a in temp-base
                                                      collect
@@ -237,14 +235,14 @@
                                           (t temp-base)))
 
                          (temp-base (cond (voice-tie4 
-                                           (let ((voice-tie4 (- voice-tie4 1)))
-                                           (setq looplist (remove nil
+                                           (let* ((voice-tie4 (- voice-tie4 1))
+                                                  (looplist (remove nil
                                            (loop for a in temp-base 
                                                  collect 
                                                  
                                                  (cond ((eq (nth voice-tie4 a) (nth voice-tie4 first)) a)
-                                                       ((eq (nth voice-tie4 a) -1) a)
-                                                       (t nil)))))
+                                                       ((eq (nth voice-tie4 first) -1) a)
+                                                       (t nil))))))
                                            (if (null looplist)
                                                (loop for a in temp-base
                                                      collect
@@ -252,314 +250,421 @@
                                              looplist)))
                                           (t temp-base)))
 
-
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
                          (temp-base (cond (voice-interval1 
-                                          (setq looplist (remove nil (loop for a in temp-base
+                                          (let ((looplist (remove nil (loop for a in temp-base
                                                                            collect
                                                                                  (if (or (find (- (nth 0 a) (nth 0 first)) voice-interval1)
-                                                                                           (eq (nth 0 first) -1)) a))))
+                                                                                           (eq (nth 0 first) -1)) a)))))
                                           (if (null looplist)
                                               (loop for a in temp-base
                                                     collect
-                                                    (subs-posn_oml a 0 -1)) looplist))
+                                                    (subs-posn_oml a 0 -1)) looplist)))
                                     (t temp-base)))
 
                          (temp-base (cond (voice-interval2 
-                                           (setq looplist (remove nil (loop for a in temp-base
+                                           (let ((looplist (remove nil (loop for a in temp-base
                                                                             collect
                                                                             (if (or (find (- (nth 1 a) (nth 1 first)) voice-interval2)
-                                                                                    (eq (nth 1 first) -1)) a))))
+                                                                                    (eq (nth 1 first) -1)) a)))))
                                            (if (null looplist)
                                                (loop for a in temp-base
                                                      collect
-                                                     (subs-posn_oml a 1 -1)) looplist))
+                                                     (subs-posn_oml a 1 -1)) looplist)))
                                           (t temp-base)))
                          
                          (temp-base (cond (voice-interval3 
-                                           (setq looplist (remove nil (loop for a in temp-base
+                                           (let ((looplist (remove nil (loop for a in temp-base
                                                                             collect
                                                                             (if (or (find (- (nth 2 a) (nth 2 first)) voice-interval3)
-                                                                                    (eq (nth 2 first) -1)) a))))
+                                                                                    (eq (nth 2 first) -1)) a)))))
                                            (if (null looplist)
                                                (loop for a in temp-base
                                                      collect
-                                                     (subs-posn_oml a 2 -1)) looplist))
+                                                     (subs-posn_oml a 2 -1)) looplist)))
                                           (t temp-base)))
 
                          (temp-base (cond (voice-interval4 
-                                           (setq looplist (remove nil (loop for a in temp-base
+                                           (let ((looplist (remove nil (loop for a in temp-base
                                                                             collect
                                                                             (if (or (find (- (nth 3 a) (nth 3 first)) voice-interval4)
-                                                                                    (eq (nth 3 first) -1)) a))))
+                                                                                    (eq (nth 3 first) -1)) a)))))
                                            (if (null looplist)
                                                (loop for a in temp-base
                                                      collect
-                                                     (subs-posn_oml a 3 -1)) looplist))
+                                                     (subs-posn_oml a 3 -1)) looplist)))
                                           (t temp-base)))
 
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;                           
                          (temp-base (cond (voice-counter1
-                                           (setq looplist (remove nil
-                                                                 (loop for a in temp-base 
-                                                                       collect
-                                                                       (let* ((instr-a (1- (first (car voice-counter1)))) ;0
-                                                                              (instr-b (1- (second (car voice-counter1)))) ;1
-                                                                              (delta-a (- (nth instr-a a) (nth instr-a first)))
-                                                                              (delta-b (- (nth instr-b a) (nth instr-b first)))
-                                                                              (rule (second voice-counter1)))
-                                                                        (cond (counter-interval1 
-                                                                                (if (eq rule (cond ((and (or (and (< 0 delta-a) (< 0 delta-b)) 
-                                                                                                             (and (> 0 delta-a) (> 0 delta-b)) 
-                                                                                                             (and (= 0 delta-a) (= 0 delta-b)))
-                                                                                                         (find (- (nth instr-b a) (nth instr-a a)) counter-interval1)) 'parallel)
-                                                                                                   ((and (or (and (< 0 delta-a) (> 0 delta-b)) 
-                                                                                                             (and (> 0 delta-a) (< 0 delta-b)))
-                                                                                                         (find (- (nth instr-b a) (nth instr-a a)) counter-interval1)) 'contrary)
-                                                                                                   ((and (or (and (or (< 0 delta-a) (> 0 delta-a)) (= 0 delta-b))
-                                                                                                              (and (= 0 delta-a) (or (< 0 delta-b) (> 0 delta-b))))
-                                                                                                         (find (- (nth instr-b a) (nth instr-a a)) counter-interval1)) 'seiten)))
-                                                                                    a))
-                                                                                
-                                                                                
-                                                                               (t (if (equal rule (cond ((or (and (< 0 delta-a) (< 0 delta-b)) 
-                                                                                                              (and (> 0 delta-a) (> 0 delta-b)) 
-                                                                                                              (and (= 0 delta-a) (= 0 delta-b))) 'parallel)
-                                                                                                         ((or (and (< 0 delta-a) (> 0 delta-b)) 
-                                                                                                              (and (> 0 delta-a) (< 0 delta-b))) 'contrary)
-                                                                                                         ((or (and (or (< 0 delta-a) (> 0 delta-a)) (= 0 delta-b))
-                                                                                                              (and (= 0 delta-a) (or (< 0 delta-b) (> 0 delta-b)))) 'seiten)))
-                                                                             a)))))))
 
-                                          
-                                          
-                                          (if (null looplist)
-                                              (loop for a in temp-base 
-                                                    collect 
-                                                    (subs-posn_oml a (1- (first (car voice-counter1))) -1)) looplist))
-                                                            
-                                                                
-                                                  
-                                         (t temp-base)))
+                                           (cond ((and (or (eq -1 (nth (1- (first (car voice-counter1))) first))
+                                                           (eq -1 (nth (1- (second (car voice-counter1))) first))) counter-interval1) 
 
-                         (temp-base (cond (voice-counter2
-                                           (setq looplist (remove nil
-                                                                  (loop for a in temp-base 
-                                                                        collect
-                                                                        (let* ((instr-a (1- (first (car voice-counter2)))) ;0
-                                                                               (instr-b (1- (second (car voice-counter2)))) ;1
-                                                                               (delta-a (- (nth instr-a a) (nth instr-a first)))
-                                                                               (delta-b (- (nth instr-b a) (nth instr-b first)))
-                                                                               (rule (second voice-counter2)))
-                                                                          (cond (counter-interval2 
-                                                                                 (if (eq rule (cond ((and (or (and (< 0 delta-a) (< 0 delta-b)) 
-                                                                                                              (and (> 0 delta-a) (> 0 delta-b)) 
-                                                                                                              (and (= 0 delta-a) (= 0 delta-b)))
-                                                                                                          (find (- (nth instr-b a) (nth instr-a a)) counter-interval2)) 'parallel)
-                                                                                                    ((and (or (and (< 0 delta-a) (> 0 delta-b)) 
-                                                                                                              (and (> 0 delta-a) (< 0 delta-b)))
-                                                                                                          (find (- (nth instr-b a) (nth instr-a a)) counter-interval2)) 'contrary)
-                                                                                                    ((and (or (and (or (< 0 delta-a) (> 0 delta-a)) (= 0 delta-b))
-                                                                                                              (and (= 0 delta-a) (or (< 0 delta-b) (> 0 delta-b))))
-                                                                                                          (find (- (nth instr-b a) (nth instr-a a)) counter-interval2)) 'seiten)))
-                                                                                     a))
-                                                                                
-                                                                                
-                                                                                (t (if (equal rule (cond ((or (and (< 0 delta-a) (< 0 delta-b)) 
-                                                                                                              (and (> 0 delta-a) (> 0 delta-b)) 
-                                                                                                              (and (= 0 delta-a) (= 0 delta-b))) 'parallel)
-                                                                                                         ((or (and (< 0 delta-a) (> 0 delta-b)) 
-                                                                                                              (and (> 0 delta-a) (< 0 delta-b))) 'contrary)
-                                                                                                         ((or (and (or (< 0 delta-a) (> 0 delta-a)) (= 0 delta-b))
-                                                                                                              (and (= 0 delta-a) (or (< 0 delta-b) (> 0 delta-b)))) 'seiten)))
-                                                                                       a)))))))
+                                                  (remove nil (loop for a in temp-base
+                                                                    collect (let* ((instr-a (1- (first (car voice-counter1)))) ;0
+                                                                                   (instr-b (1- (second (car voice-counter1))))
+                                                                                   (voice-i (- (nth instr-b a) (nth instr-a a))) ) 
+                                                                              (if (find voice-i counter-interval1) a)))))
 
+                                                 ((or (eq -1 (nth (1- (first (car voice-counter1))) first))
+                                                      (eq -1 (nth (1- (second (car voice-counter1))) first))) temp-base)
+                                                                              
+                                                 (t  (let ((looplist (remove nil
+                                                                            (loop for a in temp-base 
+                                                                                  collect
+                                                                                    (let* ((instr-a (1- (first (car voice-counter1)))) ;0
+                                                                                           (instr-b (1- (second (car voice-counter1)))) ;1
+                                                                                           (delta-a (- (nth instr-a a) (nth instr-a first)))
+                                                                                           (delta-b (- (nth instr-b a) (nth instr-b first)))
+                                                                                           (rule (second voice-counter1)))
+                                                                                      (cond 
+                                                                                       
+                                                                                       
+                                                                                       
+                                                                                       
+                                                                                       (counter-interval1 
+                                                                                        (if (eq rule (cond ((and (or (and (< 0 delta-a) (< 0 delta-b)) 
+                                                                                                                     (and (> 0 delta-a) (> 0 delta-b)) 
+                                                                                                                     (and (= 0 delta-a) (= 0 delta-b)))
+                                                                                                                 (find (- (nth instr-b a) (nth instr-a a)) counter-interval1)) 'parallel)
+                                                                                                           ((and (or (and (< 0 delta-a) (> 0 delta-b)) 
+                                                                                                                     (and (> 0 delta-a) (< 0 delta-b)))
+                                                                                                                 (find (- (nth instr-b a) (nth instr-a a)) counter-interval1)) 'contrary)
+                                                                                                           ((and (or (and (or (< 0 delta-a) (> 0 delta-a)) (= 0 delta-b))
+                                                                                                                     (and (= 0 delta-a) (or (< 0 delta-b) (> 0 delta-b))))
+                                                                                                                 (find (- (nth instr-b a) (nth instr-a a)) counter-interval1)) 'seiten)))
+                                                                                            a))
+                                                                                       
+                                                                                       
+                                                                                       (t (if (eq rule (cond ((or (and (< 0 delta-a) (< 0 delta-b)) 
+                                                                                                                     (and (> 0 delta-a) (> 0 delta-b)) 
+                                                                                                                     (and (= 0 delta-a) (= 0 delta-b))) 'parallel)
+                                                                                                                ((or (and (< 0 delta-a) (> 0 delta-b)) 
+                                                                                                                     (and (> 0 delta-a) (< 0 delta-b))) 'contrary)
+                                                                                                                ((or (and (or (< 0 delta-a) (> 0 delta-a)) (= 0 delta-b))
+                                                                                                                     (and (= 0 delta-a) (or (< 0 delta-b) (> 0 delta-b)))) 'seiten)))
+                                                                                              a))))))))
+                                                     
+                                                     
+                                                     
+                                                     (if (null looplist)
+                                                         (loop for a in temp-base 
+                                                               collect 
+                                                                 (subs-posn_oml a (1- (first (car voice-counter1))) -1)) looplist)))))
                                           
                                           
-                                           (if (null looplist)
-                                               (loop for a in temp-base 
-                                                     collect 
-                                                     (subs-posn_oml a (1- (first (car voice-counter2))) -1)) looplist))
                                           
-                                                                
-                                                  
                                           (t temp-base)))
                          
-                         (temp-base (cond (voice-counter3
-                                           (setq looplist (remove nil
-                                                                 (loop for a in temp-base 
-                                                                       collect
-                                                                       (let* ((instr-a (1- (first (car voice-counter3)))) ;0
-                                                                              (instr-b (1- (second (car voice-counter3)))) ;1
-                                                                              (delta-a (- (nth instr-a a) (nth instr-a first)))
-                                                                              (delta-b (- (nth instr-b a) (nth instr-b first)))
-                                                                              (rule (second voice-counter3)))
-                                                                        (cond (counter-interval3 
-                                                                                (if (eq rule (cond ((and (or (and (< 0 delta-a) (< 0 delta-b)) 
-                                                                                                             (and (> 0 delta-a) (> 0 delta-b)) 
-                                                                                                             (and (= 0 delta-a) (= 0 delta-b)))
-                                                                                                         (find (- (nth instr-b a) (nth instr-a a)) counter-interval3)) 'parallel)
-                                                                                                   ((and (or (and (< 0 delta-a) (> 0 delta-b)) 
-                                                                                                             (and (> 0 delta-a) (< 0 delta-b)))
-                                                                                                         (find (- (nth instr-b a) (nth instr-a a)) counter-interval3)) 'contrary)
-                                                                                                   ((and (or (and (or (< 0 delta-a) (> 0 delta-a)) (= 0 delta-b))
-                                                                                                              (and (= 0 delta-a) (or (< 0 delta-b) (> 0 delta-b))))
-                                                                                                         (find (- (nth instr-b a) (nth instr-a a)) counter-interval3)) 'seiten)))
-                                                                                    a))
-                                                                                
-                                                                                
-                                                                               (t (if (equal rule (cond ((or (and (< 0 delta-a) (< 0 delta-b)) 
-                                                                                                              (and (> 0 delta-a) (> 0 delta-b)) 
-                                                                                                              (and (= 0 delta-a) (= 0 delta-b))) 'parallel)
-                                                                                                         ((or (and (< 0 delta-a) (> 0 delta-b)) 
-                                                                                                              (and (> 0 delta-a) (< 0 delta-b))) 'contrary)
-                                                                                                         ((or (and (or (< 0 delta-a) (> 0 delta-a)) (= 0 delta-b))
-                                                                                                              (and (= 0 delta-a) (or (< 0 delta-b) (> 0 delta-b)))) 'seiten)))
-                                                                             a)))))))
+(temp-base (cond (voice-counter2
 
+                                           (cond ((and (or (eq -1 (nth (1- (first (car voice-counter2))) first))
+                                                           (eq -1 (nth (1- (second (car voice-counter2))) first))) counter-interval2) 
+
+                                                  (remove nil (loop for a in temp-base
+                                                                    collect (let* ((instr-a (1- (first (car voice-counter2)))) ;0
+                                                                                   (instr-b (1- (second (car voice-counter2))))
+                                                                                   (voice-i (- (nth instr-b a) (nth instr-a a))) ) 
+                                                                              (if (find voice-i counter-interval2) a)))))
+
+                                                 ((or (eq -1 (nth (1- (first (car voice-counter2))) first))
+                                                      (eq -1 (nth (1- (second (car voice-counter2))) first))) temp-base)
+                                                                              
+                                                 (t  (let ((looplist (remove nil
+                                                                            (loop for a in temp-base 
+                                                                                  collect
+                                                                                    (let* ((instr-a (1- (first (car voice-counter2)))) ;0
+                                                                                           (instr-b (1- (second (car voice-counter2)))) ;1
+                                                                                           (delta-a (- (nth instr-a a) (nth instr-a first)))
+                                                                                           (delta-b (- (nth instr-b a) (nth instr-b first)))
+                                                                                           (rule (second voice-counter2)))
+                                                                                      (cond 
+                                                                                       
+                                                                                       
+                                                                                       
+                                                                                       
+                                                                                       (counter-interval2 
+                                                                                        (if (eq rule (cond ((and (or (and (< 0 delta-a) (< 0 delta-b)) 
+                                                                                                                     (and (> 0 delta-a) (> 0 delta-b)) 
+                                                                                                                     (and (= 0 delta-a) (= 0 delta-b)))
+                                                                                                                 (find (- (nth instr-b a) (nth instr-a a)) counter-interval2)) 'parallel)
+                                                                                                           ((and (or (and (< 0 delta-a) (> 0 delta-b)) 
+                                                                                                                     (and (> 0 delta-a) (< 0 delta-b)))
+                                                                                                                 (find (- (nth instr-b a) (nth instr-a a)) counter-interval2)) 'contrary)
+                                                                                                           ((and (or (and (or (< 0 delta-a) (> 0 delta-a)) (= 0 delta-b))
+                                                                                                                     (and (= 0 delta-a) (or (< 0 delta-b) (> 0 delta-b))))
+                                                                                                                 (find (- (nth instr-b a) (nth instr-a a)) counter-interval2)) 'seiten)))
+                                                                                            a))
+                                                                                       
+                                                                                       
+                                                                                       (t (if (eq rule (cond ((or (and (< 0 delta-a) (< 0 delta-b)) 
+                                                                                                                     (and (> 0 delta-a) (> 0 delta-b)) 
+                                                                                                                     (and (= 0 delta-a) (= 0 delta-b))) 'parallel)
+                                                                                                                ((or (and (< 0 delta-a) (> 0 delta-b)) 
+                                                                                                                     (and (> 0 delta-a) (< 0 delta-b))) 'contrary)
+                                                                                                                ((or (and (or (< 0 delta-a) (> 0 delta-a)) (= 0 delta-b))
+                                                                                                                     (and (= 0 delta-a) (or (< 0 delta-b) (> 0 delta-b)))) 'seiten)))
+                                                                                              a))))))))
+                                                     
+                                                     
+                                                     
+                                                     (if (null looplist)
+                                                         (loop for a in temp-base 
+                                                               collect 
+                                                                 (subs-posn_oml a (1- (first (car voice-counter2))) -1)) looplist)))))
                                           
                                           
-                                          (if (null looplist)
-                                              (loop for a in temp-base 
-                                                    collect 
-                                                    (subs-posn_oml a (1- (first (car voice-counter3))) -1)) looplist))
-                                                            
-                                                                
-                                                  
-                                         (t temp-base)))
+                                          
+                                          (t temp-base)))
+                         
+ (temp-base (cond (voice-counter3
 
+                                           (cond ((and (or (eq -1 (nth (1- (first (car voice-counter3))) first))
+                                                           (eq -1 (nth (1- (second (car voice-counter3))) first))) counter-interval3) 
 
-                         (temp-base (cond (voice-counter4
-                                           (setq looplist (remove nil
-                                                                 (loop for a in temp-base 
-                                                                       collect
-                                                                       (let* ((instr-a (1- (first (car voice-counter4)))) ;0
-                                                                              (instr-b (1- (second (car voice-counter4)))) ;1
-                                                                              (delta-a (- (nth instr-a a) (nth instr-a first)))
-                                                                              (delta-b (- (nth instr-b a) (nth instr-b first)))
-                                                                              (rule (second voice-counter4)))
-                                                                        (cond (counter-interval4 
-                                                                                (if (eq rule (cond ((and (or (and (< 0 delta-a) (< 0 delta-b)) 
-                                                                                                             (and (> 0 delta-a) (> 0 delta-b)) 
-                                                                                                             (and (= 0 delta-a) (= 0 delta-b)))
-                                                                                                         (find (- (nth instr-b a) (nth instr-a a)) counter-interval4)) 'parallel)
-                                                                                                   ((and (or (and (< 0 delta-a) (> 0 delta-b)) 
-                                                                                                             (and (> 0 delta-a) (< 0 delta-b)))
-                                                                                                         (find (- (nth instr-b a) (nth instr-a a)) counter-interval4)) 'contrary)
-                                                                                                   ((and (or (and (or (< 0 delta-a) (> 0 delta-a)) (= 0 delta-b))
-                                                                                                              (and (= 0 delta-a) (or (< 0 delta-b) (> 0 delta-b))))
-                                                                                                         (find (- (nth instr-b a) (nth instr-a a)) counter-interval4)) 'seiten)))
-                                                                                    a))
-                                                                                
-                                                                                
-                                                                               (t (if (equal rule (cond ((or (and (< 0 delta-a) (< 0 delta-b)) 
-                                                                                                              (and (> 0 delta-a) (> 0 delta-b)) 
-                                                                                                              (and (= 0 delta-a) (= 0 delta-b))) 'parallel)
-                                                                                                         ((or (and (< 0 delta-a) (> 0 delta-b)) 
-                                                                                                              (and (> 0 delta-a) (< 0 delta-b))) 'contrary)
-                                                                                                         ((or (and (or (< 0 delta-a) (> 0 delta-a)) (= 0 delta-b))
-                                                                                                              (and (= 0 delta-a) (or (< 0 delta-b) (> 0 delta-b)))) 'seiten)))
-                                                                             a)))))))
+                                                  (remove nil (loop for a in temp-base
+                                                                    collect (let* ((instr-a (1- (first (car voice-counter3)))) ;0
+                                                                                   (instr-b (1- (second (car voice-counter3))))
+                                                                                   (voice-i (- (nth instr-b a) (nth instr-a a))) ) 
+                                                                              (if (find voice-i counter-interval3) a)))))
 
+                                                 ((or (eq -1 (nth (1- (first (car voice-counter3))) first))
+                                                      (eq -1 (nth (1- (second (car voice-counter3))) first))) temp-base)
+                                                                              
+                                                 (t  (let ((looplist (remove nil
+                                                                            (loop for a in temp-base 
+                                                                                  collect
+                                                                                    (let* ((instr-a (1- (first (car voice-counter3)))) ;0
+                                                                                           (instr-b (1- (second (car voice-counter3)))) ;1
+                                                                                           (delta-a (- (nth instr-a a) (nth instr-a first)))
+                                                                                           (delta-b (- (nth instr-b a) (nth instr-b first)))
+                                                                                           (rule (second voice-counter3)))
+                                                                                      (cond 
+                                                                                       
+                                                                                       
+                                                                                       
+                                                                                       
+                                                                                       (counter-interval3 
+                                                                                        (if (eq rule (cond ((and (or (and (< 0 delta-a) (< 0 delta-b)) 
+                                                                                                                     (and (> 0 delta-a) (> 0 delta-b)) 
+                                                                                                                     (and (= 0 delta-a) (= 0 delta-b)))
+                                                                                                                 (find (- (nth instr-b a) (nth instr-a a)) counter-interval3)) 'parallel)
+                                                                                                           ((and (or (and (< 0 delta-a) (> 0 delta-b)) 
+                                                                                                                     (and (> 0 delta-a) (< 0 delta-b)))
+                                                                                                                 (find (- (nth instr-b a) (nth instr-a a)) counter-interval3)) 'contrary)
+                                                                                                           ((and (or (and (or (< 0 delta-a) (> 0 delta-a)) (= 0 delta-b))
+                                                                                                                     (and (= 0 delta-a) (or (< 0 delta-b) (> 0 delta-b))))
+                                                                                                                 (find (- (nth instr-b a) (nth instr-a a)) counter-interval3)) 'seiten)))
+                                                                                            a))
+                                                                                       
+                                                                                       
+                                                                                       (t (if (eq rule (cond ((or (and (< 0 delta-a) (< 0 delta-b)) 
+                                                                                                                     (and (> 0 delta-a) (> 0 delta-b)) 
+                                                                                                                     (and (= 0 delta-a) (= 0 delta-b))) 'parallel)
+                                                                                                                ((or (and (< 0 delta-a) (> 0 delta-b)) 
+                                                                                                                     (and (> 0 delta-a) (< 0 delta-b))) 'contrary)
+                                                                                                                ((or (and (or (< 0 delta-a) (> 0 delta-a)) (= 0 delta-b))
+                                                                                                                     (and (= 0 delta-a) (or (< 0 delta-b) (> 0 delta-b)))) 'seiten)))
+                                                                                              a))))))))
+                                                     
+                                                     
+                                                     
+                                                     (if (null looplist)
+                                                         (loop for a in temp-base 
+                                                               collect 
+                                                                 (subs-posn_oml a (1- (first (car voice-counter3))) -1)) looplist)))))
                                           
                                           
-                                          (if (null looplist)
-                                              (loop for a in temp-base 
-                                                    collect 
-                                                    (subs-posn_oml a (1- (first (car voice-counter4))) -1)) looplist))
-                                                            
-                                                                
-                                                  
-                                         (t temp-base)))
+                                          
+                                          (t temp-base)))
 
 
-                         (temp-base (cond (voice-counter5
-                                           (setq looplist (remove nil
-                                                                 (loop for a in temp-base 
-                                                                       collect
-                                                                       (let* ((instr-a (1- (first (car voice-counter5)))) ;0
-                                                                              (instr-b (1- (second (car voice-counter5)))) ;1
-                                                                              (delta-a (- (nth instr-a a) (nth instr-a first)))
-                                                                              (delta-b (- (nth instr-b a) (nth instr-b first)))
-                                                                              (rule (second voice-counter5)))
-                                                                        (cond (counter-interval5 
-                                                                                (if (eq rule (cond ((and (or (and (< 0 delta-a) (< 0 delta-b)) 
-                                                                                                             (and (> 0 delta-a) (> 0 delta-b)) 
-                                                                                                             (and (= 0 delta-a) (= 0 delta-b)))
-                                                                                                         (find (- (nth instr-b a) (nth instr-a a)) counter-interval5)) 'parallel)
-                                                                                                   ((and (or (and (< 0 delta-a) (> 0 delta-b)) 
-                                                                                                             (and (> 0 delta-a) (< 0 delta-b)))
-                                                                                                         (find (- (nth instr-b a) (nth instr-a a)) counter-interval5)) 'contrary)
-                                                                                                   ((and (or (and (or (< 0 delta-a) (> 0 delta-a)) (= 0 delta-b))
-                                                                                                              (and (= 0 delta-a) (or (< 0 delta-b) (> 0 delta-b))))
-                                                                                                         (find (- (nth instr-b a) (nth instr-a a)) counter-interval5)) 'seiten)))
-                                                                                    a))
-                                                                                
-                                                                                
-                                                                               (t (if (equal rule (cond ((or (and (< 0 delta-a) (< 0 delta-b)) 
-                                                                                                              (and (> 0 delta-a) (> 0 delta-b)) 
-                                                                                                              (and (= 0 delta-a) (= 0 delta-b))) 'parallel)
-                                                                                                         ((or (and (< 0 delta-a) (> 0 delta-b)) 
-                                                                                                              (and (> 0 delta-a) (< 0 delta-b))) 'contrary)
-                                                                                                         ((or (and (or (< 0 delta-a) (> 0 delta-a)) (= 0 delta-b))
-                                                                                                              (and (= 0 delta-a) (or (< 0 delta-b) (> 0 delta-b)))) 'seiten)))
-                                                                             a)))))))
+ (temp-base (cond (voice-counter4
 
+                                           (cond ((and (or (eq -1 (nth (1- (first (car voice-counter4))) first))
+                                                           (eq -1 (nth (1- (second (car voice-counter4))) first))) counter-interval4) 
+
+                                                  (remove nil (loop for a in temp-base
+                                                                    collect (let* ((instr-a (1- (first (car voice-counter4)))) ;0
+                                                                                   (instr-b (1- (second (car voice-counter4))))
+                                                                                   (voice-i (- (nth instr-b a) (nth instr-a a))) ) 
+                                                                              (if (find voice-i counter-interval4) a)))))
+
+                                                 ((or (eq -1 (nth (1- (first (car voice-counter4))) first))
+                                                      (eq -1 (nth (1- (second (car voice-counter4))) first))) temp-base)
+                                                                              
+                                                 (t  (let ((looplist (remove nil
+                                                                            (loop for a in temp-base 
+                                                                                  collect
+                                                                                    (let* ((instr-a (1- (first (car voice-counter4)))) ;0
+                                                                                           (instr-b (1- (second (car voice-counter4)))) ;1
+                                                                                           (delta-a (- (nth instr-a a) (nth instr-a first)))
+                                                                                           (delta-b (- (nth instr-b a) (nth instr-b first)))
+                                                                                           (rule (second voice-counter4)))
+                                                                                      (cond 
+                                                                                       
+                                                                                       
+                                                                                       
+                                                                                       
+                                                                                       (counter-interval4 
+                                                                                        (if (eq rule (cond ((and (or (and (< 0 delta-a) (< 0 delta-b)) 
+                                                                                                                     (and (> 0 delta-a) (> 0 delta-b)) 
+                                                                                                                     (and (= 0 delta-a) (= 0 delta-b)))
+                                                                                                                 (find (- (nth instr-b a) (nth instr-a a)) counter-interval4)) 'parallel)
+                                                                                                           ((and (or (and (< 0 delta-a) (> 0 delta-b)) 
+                                                                                                                     (and (> 0 delta-a) (< 0 delta-b)))
+                                                                                                                 (find (- (nth instr-b a) (nth instr-a a)) counter-interval4)) 'contrary)
+                                                                                                           ((and (or (and (or (< 0 delta-a) (> 0 delta-a)) (= 0 delta-b))
+                                                                                                                     (and (= 0 delta-a) (or (< 0 delta-b) (> 0 delta-b))))
+                                                                                                                 (find (- (nth instr-b a) (nth instr-a a)) counter-interval4)) 'seiten)))
+                                                                                            a))
+                                                                                       
+                                                                                       
+                                                                                       (t (if (eq rule (cond ((or (and (< 0 delta-a) (< 0 delta-b)) 
+                                                                                                                     (and (> 0 delta-a) (> 0 delta-b)) 
+                                                                                                                     (and (= 0 delta-a) (= 0 delta-b))) 'parallel)
+                                                                                                                ((or (and (< 0 delta-a) (> 0 delta-b)) 
+                                                                                                                     (and (> 0 delta-a) (< 0 delta-b))) 'contrary)
+                                                                                                                ((or (and (or (< 0 delta-a) (> 0 delta-a)) (= 0 delta-b))
+                                                                                                                     (and (= 0 delta-a) (or (< 0 delta-b) (> 0 delta-b)))) 'seiten)))
+                                                                                              a))))))))
+                                                     
+                                                     
+                                                     
+                                                     (if (null looplist)
+                                                         (loop for a in temp-base 
+                                                               collect 
+                                                                 (subs-posn_oml a (1- (first (car voice-counter4))) -1)) looplist)))))
                                           
                                           
-                                          (if (null looplist)
-                                              (loop for a in temp-base 
-                                                    collect 
-                                                    (subs-posn_oml a (1- (first (car voice-counter5))) -1)) looplist))
-                                                            
-                                                                
-                                                  
-                                         (t temp-base)))
+                                          
+                                          (t temp-base)))
 
 
-                         (temp-base (cond (voice-counter6
-                                           (setq looplist (remove nil
-                                                                 (loop for a in temp-base 
-                                                                       collect
-                                                                       (let* ((instr-a (1- (first (car voice-counter6)))) ;0
-                                                                              (instr-b (1- (second (car voice-counter6)))) ;1
-                                                                              (delta-a (- (nth instr-a a) (nth instr-a first)))
-                                                                              (delta-b (- (nth instr-b a) (nth instr-b first)))
-                                                                              (rule (second voice-counter6)))
-                                                                        (cond (counter-interval6 
-                                                                                (if (eq rule (cond ((and (or (and (< 0 delta-a) (< 0 delta-b)) 
-                                                                                                             (and (> 0 delta-a) (> 0 delta-b)) 
-                                                                                                             (and (= 0 delta-a) (= 0 delta-b)))
-                                                                                                         (find (- (nth instr-b a) (nth instr-a a)) counter-interval6)) 'parallel)
-                                                                                                   ((and (or (and (< 0 delta-a) (> 0 delta-b)) 
-                                                                                                             (and (> 0 delta-a) (< 0 delta-b)))
-                                                                                                         (find (- (nth instr-b a) (nth instr-a a)) counter-interval6)) 'contrary)
-                                                                                                   ((and (or (and (or (< 0 delta-a) (> 0 delta-a)) (= 0 delta-b))
-                                                                                                              (and (= 0 delta-a) (or (< 0 delta-b) (> 0 delta-b))))
-                                                                                                         (find (- (nth instr-b a) (nth instr-a a)) counter-interval6)) 'seiten)))
-                                                                                    a))
-                                                                                
-                                                                                
-                                                                               (t (if (equal rule (cond ((or (and (< 0 delta-a) (< 0 delta-b)) 
-                                                                                                              (and (> 0 delta-a) (> 0 delta-b)) 
-                                                                                                              (and (= 0 delta-a) (= 0 delta-b))) 'parallel)
-                                                                                                         ((or (and (< 0 delta-a) (> 0 delta-b)) 
-                                                                                                              (and (> 0 delta-a) (< 0 delta-b))) 'contrary)
-                                                                                                         ((or (and (or (< 0 delta-a) (> 0 delta-a)) (= 0 delta-b))
-                                                                                                              (and (= 0 delta-a) (or (< 0 delta-b) (> 0 delta-b)))) 'seiten)))
-                                                                             a)))))))
+ (temp-base (cond (voice-counter5
 
+                                           (cond ((and (or (eq -1 (nth (1- (first (car voice-counter5))) first))
+                                                           (eq -1 (nth (1- (second (car voice-counter5))) first))) counter-interval5) 
+
+                                                  (remove nil (loop for a in temp-base
+                                                                    collect (let* ((instr-a (1- (first (car voice-counter5)))) ;0
+                                                                                   (instr-b (1- (second (car voice-counter5))))
+                                                                                   (voice-i (- (nth instr-b a) (nth instr-a a))) ) 
+                                                                              (if (find voice-i counter-interval5) a)))))
+
+                                                 ((or (eq -1 (nth (1- (first (car voice-counter5))) first))
+                                                      (eq -1 (nth (1- (second (car voice-counter5))) first))) temp-base)
+                                                                              
+                                                 (t  (let ((looplist (remove nil
+                                                                            (loop for a in temp-base 
+                                                                                  collect
+                                                                                    (let* ((instr-a (1- (first (car voice-counter5)))) ;0
+                                                                                           (instr-b (1- (second (car voice-counter5)))) ;1
+                                                                                           (delta-a (- (nth instr-a a) (nth instr-a first)))
+                                                                                           (delta-b (- (nth instr-b a) (nth instr-b first)))
+                                                                                           (rule (second voice-counter5)))
+                                                                                      (cond 
+                                                                                       
+                                                                                       
+                                                                                       
+                                                                                       
+                                                                                       (counter-interval5 
+                                                                                        (if (eq rule (cond ((and (or (and (< 0 delta-a) (< 0 delta-b)) 
+                                                                                                                     (and (> 0 delta-a) (> 0 delta-b)) 
+                                                                                                                     (and (= 0 delta-a) (= 0 delta-b)))
+                                                                                                                 (find (- (nth instr-b a) (nth instr-a a)) counter-interval5)) 'parallel)
+                                                                                                           ((and (or (and (< 0 delta-a) (> 0 delta-b)) 
+                                                                                                                     (and (> 0 delta-a) (< 0 delta-b)))
+                                                                                                                 (find (- (nth instr-b a) (nth instr-a a)) counter-interval5)) 'contrary)
+                                                                                                           ((and (or (and (or (< 0 delta-a) (> 0 delta-a)) (= 0 delta-b))
+                                                                                                                     (and (= 0 delta-a) (or (< 0 delta-b) (> 0 delta-b))))
+                                                                                                                 (find (- (nth instr-b a) (nth instr-a a)) counter-interval5)) 'seiten)))
+                                                                                            a))
+                                                                                       
+                                                                                       
+                                                                                       (t (if (eq rule (cond ((or (and (< 0 delta-a) (< 0 delta-b)) 
+                                                                                                                     (and (> 0 delta-a) (> 0 delta-b)) 
+                                                                                                                     (and (= 0 delta-a) (= 0 delta-b))) 'parallel)
+                                                                                                                ((or (and (< 0 delta-a) (> 0 delta-b)) 
+                                                                                                                     (and (> 0 delta-a) (< 0 delta-b))) 'contrary)
+                                                                                                                ((or (and (or (< 0 delta-a) (> 0 delta-a)) (= 0 delta-b))
+                                                                                                                     (and (= 0 delta-a) (or (< 0 delta-b) (> 0 delta-b)))) 'seiten)))
+                                                                                              a))))))))
+                                                     
+                                                     
+                                                     
+                                                     (if (null looplist)
+                                                         (loop for a in temp-base 
+                                                               collect 
+                                                                 (subs-posn_oml a (1- (first (car voice-counter5))) -1)) looplist)))))
                                           
                                           
-                                          (if (null looplist)
-                                              (loop for a in temp-base 
-                                                    collect 
-                                                    (subs-posn_oml a (1- (first (car voice-counter6))) -1)) looplist))
-                                                            
-                                                                
-                                                  
-                                         (t temp-base)))
+                                          
+                                          (t temp-base)))
+
+
+(temp-base (cond (voice-counter6
+
+                                           (cond ((and (or (eq -1 (nth (1- (first (car voice-counter6))) first))
+                                                           (eq -1 (nth (1- (second (car voice-counter6))) first))) counter-interval6) 
+
+                                                  (remove nil (loop for a in temp-base
+                                                                    collect (let* ((instr-a (1- (first (car voice-counter6)))) ;0
+                                                                                   (instr-b (1- (second (car voice-counter6))))
+                                                                                   (voice-i (- (nth instr-b a) (nth instr-a a))) ) 
+                                                                              (if (find voice-i counter-interval6) a)))))
+
+                                                 ((or (eq -1 (nth (1- (first (car voice-counter6))) first))
+                                                      (eq -1 (nth (1- (second (car voice-counter6))) first))) temp-base)
+                                                                              
+                                                 (t  (let ((looplist (remove nil
+                                                                            (loop for a in temp-base 
+                                                                                  collect
+                                                                                    (let* ((instr-a (1- (first (car voice-counter6)))) ;0
+                                                                                           (instr-b (1- (second (car voice-counter6)))) ;1
+                                                                                           (delta-a (- (nth instr-a a) (nth instr-a first)))
+                                                                                           (delta-b (- (nth instr-b a) (nth instr-b first)))
+                                                                                           (rule (second voice-counter6)))
+                                                                                      (cond 
+                                                                                       
+                                                                                       
+                                                                                       
+                                                                                       
+                                                                                       (counter-interval6 
+                                                                                        (if (eq rule (cond ((and (or (and (< 0 delta-a) (< 0 delta-b)) 
+                                                                                                                     (and (> 0 delta-a) (> 0 delta-b)) 
+                                                                                                                     (and (= 0 delta-a) (= 0 delta-b)))
+                                                                                                                 (find (- (nth instr-b a) (nth instr-a a)) counter-interval6)) 'parallel)
+                                                                                                           ((and (or (and (< 0 delta-a) (> 0 delta-b)) 
+                                                                                                                     (and (> 0 delta-a) (< 0 delta-b)))
+                                                                                                                 (find (- (nth instr-b a) (nth instr-a a)) counter-interval6)) 'contrary)
+                                                                                                           ((and (or (and (or (< 0 delta-a) (> 0 delta-a)) (= 0 delta-b))
+                                                                                                                     (and (= 0 delta-a) (or (< 0 delta-b) (> 0 delta-b))))
+                                                                                                                 (find (- (nth instr-b a) (nth instr-a a)) counter-interval6)) 'seiten)))
+                                                                                            a))
+                                                                                       
+                                                                                       
+                                                                                       (t (if (eq rule (cond ((or (and (< 0 delta-a) (< 0 delta-b)) 
+                                                                                                                     (and (> 0 delta-a) (> 0 delta-b)) 
+                                                                                                                     (and (= 0 delta-a) (= 0 delta-b))) 'parallel)
+                                                                                                                ((or (and (< 0 delta-a) (> 0 delta-b)) 
+                                                                                                                     (and (> 0 delta-a) (< 0 delta-b))) 'contrary)
+                                                                                                                ((or (and (or (< 0 delta-a) (> 0 delta-a)) (= 0 delta-b))
+                                                                                                                     (and (= 0 delta-a) (or (< 0 delta-b) (> 0 delta-b)))) 'seiten)))
+                                                                                              a))))))))
+                                                     
+                                                     
+                                                     
+                                                     (if (null looplist)
+                                                         (loop for a in temp-base 
+                                                               collect 
+                                                                 (subs-posn_oml a (1- (first (car voice-counter6))) -1)) looplist)))))
+                                          
+                                          
+                                          
+                                          (t temp-base)))
 
 
                                             
@@ -578,7 +683,7 @@
                   
                   
                   
-                  (nreverse (push second external-list))
+                  (push second external-list)
                   (values second))))))
                
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

--
Gitblit v1.9.1