Il faut intégrer cela dans une fonction pour pouvoir l’utiliser ensuite , par exemple :
(defun my-fnction (liste)
(loop for n from 1 to (1- (length liste)) do
(let ((interval (- (nth n ) (nth (1- n) liste))))
(if (or (> interval 700) (= interval 100) (= interval 600))
(print (nth (1- n) liste))
(print (nth n liste))
)
))
)
Ici liste est l’argument de la fonction : il suffit de lappeler ensuite en avec la bonne valuer. Par exemple
(my-function '(1000 1200 1300 1400))
Pour l’utiliser dans un patch il sufit de taper
cl-user::my-function comme nom de fonction après double-click
=> http://support.ircam.fr/docs/om/om6-manual/co/AddingBoxes.html
Ici, comme la fonction n’est pas dans un menu, vous devez entere vous même le nom de la fonction (voir en bas de la page)
Vous pouvez aussi utiliser une boite “LISP” dans laquelle vous copiez le corps de la fonction sous forme de “lambda expression” :
(lambda (liste)
(loop for n from 1 to (1- (length liste)) do
(let ((interval (- (nth n ) (nth (1- n) liste))))
(if (or (> interval 700) (= interval 100) (= interval 600))
(print (nth (1- n) liste))
(print (nth n liste))
)
))
)
[ voir http://support.ircam.fr/docs/om/om6-manual/co/LispFunctions.html ]
Si vous n’êtes pas à l’aise avec Lisp, il est aussi possible de faire tout en graphique (mais OMLoop n’est pas le plus facile pour débuter)
=> http://support.ircam.fr/docs/om/om6-manual/co/LoopGeneral.html