I'm newbie in commonlisp. I did not figure out how to collect (or output) in my loop only in the "else do" section.
Code: Select all
(defun make-duration (listpitch)
; remove duplication and add duration
(setf at (first (first listpitch)))
(setf nt (second (first listpitch)))
(setf dur 0)
(loop for (a b c) in listpitch
; si nous avons la meme note repete : equal true
when (equal b nt)
do
(setf dur (+ dur (- a at)))
(setf at a nt b)
(setf debut a notep b)
; si lesnotes ne sont pas les memes : equal nil
else do
(setf dur (+ dur (- a at)))
(setf temps dur)
(setf at a nt b dur 0)
collect (list debut notep temps)
)
)
best,
Mathieu