don't know if this already exists in the library
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; chord-multiplication like boulez ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun chord-multiplication (chord1 chord2 &key (chord 'nil))
(let ((liste (sort-asc (remove-duplicates (loop for i in chord1
append (pitch-transpose-start i chord2))))))
(if (equal chord 't)
(chordize liste)
(append liste))))
(defun all-chord-multiplications (liste &key (chord 'nil))
(let ((liste (loop for i in (combination 2 liste)
collect (chord-multiplication (first i) (second i)))))
(if (equal chord 't)
(chordize liste)
(append liste))))
;;; EXAMPLES
;;; with 2 chords
(chord-multiplication '(eb4 a4 d5) '(ab4 g5) :chord 't)
;;; all possible multiplications (combinations of 2) in a diveded list
(setf divided-list '((eb4 a4 d5) (ab4 g5) (e4 gs4 db4) (b3 f4 bb4 c5)))
(all-chord-multiplications divided-list :chord 't)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;