Hello Ruben,
C’est un problème intéressant et qui revient souvent de la part des utilisateurs. Une bonne solution consiste, non pas à connaitre les index mais plutôt à traiter (filtrer) les deux listes ensemble dès le départ. Il faut associer les hauteurs et les amplitudes dans un premier temps, par exemple avec un MAT-TRANS, de sorte à obtenir une liste ((midic1 vel1) (midic2 vel2) …).
Au lieu de LIST-FILTER, qui parcourt la liste en profondeur, il sera alors plus facile d’utiliser la fonction Lisp REMOVE-IF (ou REMOVE-IF-NOT) en utilisant le keyword “:KEY” qui permet de “cibler” l’objet du test : ici le 2e élément de chaque item (soit la fonction SECOND ou CADR).
Avec un deuxième MAT-TRANS, on sépare à nouveau les éléments pour retrouver nos listes de midics et velocities.
Jean