Author: ksprotte Date: Sun Jul 15 10:27:06 2007 New Revision: 23
Modified: trunk/morphologie.asd trunk/src/morphologie.lisp trunk/src/utils.lisp Log: file-dialog and external-format :latin-1
Modified: trunk/morphologie.asd ============================================================================== --- trunk/morphologie.asd (original) +++ trunk/morphologie.asd Sun Jul 15 10:27:06 2007 @@ -1,5 +1,8 @@ (in-package :asdf)
+;; This is a hack to read latin-1 instead of utf-8 +#+sbcl (setq sb-impl::*default-external-format* :latin-1) + (defsystem :morphologie :version "3.0" :components
Modified: trunk/src/morphologie.lisp ============================================================================== --- trunk/src/morphologie.lisp (original) +++ trunk/src/morphologie.lisp Sun Jul 15 10:27:06 2007 @@ -5,12 +5,15 @@ ;;;* IRCAM, Paris, november 1998 for Morphologie 1.0 * ;;;* may 1999 for Morphologie 2.0 * ;;;* * -;;;* Fonctions d'analyse, reconnaissance de pattern et classification morphologiques des profiles géometriques * +;;;* Fonctions d'analyse, reconnaissance de pattern et classification morphologiques des profiles g�ometriques * ;;;* Analysis fonctions, pattern recognition and morphological classification of geometric profiles * ;;;* * ;;;************************************************************************************************************* ;;;
+;;; the encoding of this file is latin-1 +;;; that's the best common demoninator + (in-package :morph)
;;; watch out for functions like OM::.... @@ -142,7 +145,7 @@
(define-box pattern-ridond ((lista nil) &optional (n nil)) "Restituisce tutte le ripetizioni di tutti i sotto-pattern in - cui può essere scomposta la sequenza in lista." + cui pu� essere scomposta la sequenza in lista." :non-generic t (let ((ris nil) (x (scom lista n)) y) (loop :while x @@ -244,8 +247,8 @@ (step nil) (set nil)) "Avance dans la sequence LIST avec avec une taille de fenetre WINDW et un pas d'avancement (optionnel) STEP . -Renvoie pour chaque fenêtre le nombre d'occurrences d'un élément. -L'entrée optionnelle SET specifie les segments recherches dans LIST>" +Renvoie pour chaque fen�tre le nombre d'occurrences d'un �l�ment. +L'entr�e optionnelle SET specifie les segments recherches dans LIST>" :non-generic t (count-ptrn-win list windw step set))
@@ -348,8 +351,8 @@ les segments d'elements et leurs positions dans la sequence. optionnels : - LENGTH : longueur des segments. 2 par defaut. -- PTRN : segment dont les permutations sont recherchés. -tous par défaut. desactive LENGTH> +- PTRN : segment dont les permutations sont recherch�s. +tous par d�faut. desactive LENGTH>
Returns all permutations of two elements in SEQ with their respective positions in seq. @@ -446,7 +449,7 @@ (defparameter **alpha** (quote (#\A #\B #\C #\D #\E #\F #\G #\H #\I #\J #\K #\L #\M #\N #\O #\P #\Q #\R #\S #\T #\U #\V #\W #\X #\Y #\Z - #\°))) + #\�)))
(defparameter **num** (quote (#\0 #\1 #\2 #\3 #\4 #\5 #\6 #\7 #\8 #\9)))
@@ -736,24 +739,24 @@
(define-box structure-1 ((seq (a b c a b c d a c c d a a b c a)) &optional (alpha? :alpha) (smooth? :yes) (result :extend) (levels 1) (smth2? :no)) - "Donne toutes les structures possibles d'une séquence de nombres ou de symboles -selon une segmentation contrastive, et ce de manière récursive. + "Donne toutes les structures possibles d'une s�quence de nombres ou de symboles +selon une segmentation contrastive, et ce de mani�re r�cursive.
INPUT -seq : séquence de symboles ou nombres (liste); -alpha? : résultat en mode alphabétique ou numérique (YES NO), optional; +seq : s�quence de symboles ou nombres (liste); +alpha? : r�sultat en mode alphab�tique ou num�rique (YES NO), optional; lisse? : optional YES : suppression des elements repetes immediatements dans seq . -result : menu déroulant, quatre possibilités : - short = liste des critères de segmentation et leur segmentation respective; - exten = analyse détaillée; +result : menu d�roulant, quatre possibilit�s : + short = liste des crit�res de segmentation et leur segmentation respective; + exten = analyse d�taill�e;
- save = analyse détaillée écrite en un fichier texte. + save = analyse d�taill�e �crite en un fichier texte.
OUTPUT en mode short, pour le traitement de l'analyse, liste de liste selon le format :
-((critères de segmentation) -(forme selon critère)...)" +((crit�res de segmentation) +(forme selon crit�re)...)" :non-generic t :menu (alpha? :alpha :num) :menu (smooth? :yes :no) @@ -1111,10 +1114,10 @@ (define-box rma-1 ((seq nil) (smoo1 1) (levels 1) &optional (smoo2 0) (alpha? 1) (result 0)) " -même fonction que structure-1, mais récursive : -s'applique aussi aux structures trouvées, avec LEVELS +m�me fonction que structure-1, mais r�cursive : +s'applique aussi aux structures trouv�es, avec LEVELS comme niveau de recursion. -memes caractéristiques que structure-1 +memes caract�ristiques que structure-1 Recursive Mark Analysis. Returns only found structures." :non-generic t (when (< levels 1) @@ -1874,7 +1877,7 @@ The classe number is arbitrary" (class-1 (l-matrix matrix) n alpha? centers verbose))
-(defun CENTRE-GRAVIT\é (x) +(defun CENTRE-GRAVIT\� (x) (let (sum g (n (nth 1 (array-dimensions x))) @@ -1886,9 +1889,9 @@ (setf (aref g 0 i) (float (/ sum m))))))
(define-box matrix-center ((matrix nil)) - "Donne les coordonnées du centre de gravité d'une matrice - des coordonnées de points en n-dimensions (utiliser l-matrix -pour convertir une liste de coordonnées de points en matrice). + "Donne les coordonn�es du centre de gravit� d'une matrice + des coordonn�es de points en n-dimensions (utiliser l-matrix +pour convertir une liste de coordonn�es de points en matrice). " :non-generic t (let (sum @@ -1902,18 +1905,18 @@ (setf (aref g 0 i) (float (/ sum m))))))
-(defun X-CENTR\éE (x) - (let ((g (CENTRE-GRAVIT\é x)) +(defun X-CENTR\�E (x) + (let ((g (CENTRE-GRAVIT\� x)) (n (nth 1 (array-dimensions x))) (m (nth 0 (array-dimensions x))) - CENTR\éE) - (setq CENTR\éE (make-array (list m n))) - (dotimes (i m CENTR\éE) - (dotimes (j n) (setf (aref CENTR\éE i j) (aref g 0 j)))) - (setf CENTR\éE (subtract-two-matrices x CENTR\éE)))) + CENTR\�E) + (setq CENTR\�E (make-array (list m n))) + (dotimes (i m CENTR\�E) + (dotimes (j n) (setf (aref CENTR\�E i j) (aref g 0 j)))) + (setf CENTR\�E (subtract-two-matrices x CENTR\�E))))
(defun dist-grav (x) - (let ((grav (CENTRE-GRAVIT\é x)) + (let ((grav (CENTRE-GRAVIT\� x)) d-grav diff (m (nth 0 (array-dimensions x))) @@ -1989,7 +1992,7 @@ collect (aref mat-dist i j)))))
(defun rand-classes (m n) - "crée une m-liste aléatoire de n nombres différents" + "cr�e une m-liste al�atoire de n nombres diff�rents" (let ((alea nil) (alea-test nil)) (dotimes (a m alea) (push (random n) alea)) (setf alea-test (remove-duplicates alea)) @@ -1997,7 +2000,7 @@
(defun centre-classes (x classes *m* *n* *n-cl*) "input = matrice des points - liste-vecteur des classes attribuées à chaque point + liste-vecteur des classes attribu�es � chaque point output = matrice des centres de chaque classe" (let (nuage point c tc centres) (setf centres (make-array (list *n-cl* *n*))) @@ -2012,7 +2015,7 @@ (cond ((eq (nth a classes) b) (setf point (+ point 1)) (dotimes (d *n*) (setf (aref nuage (- point 1) d) (aref x a d))) - (setf tc (CENTRE-GRAVIT\é nuage))))) + (setf tc (CENTRE-GRAVIT\� nuage))))) (dotimes (d *n*) (setf (aref centres b d) (aref tc 0 d))))))
(define-box class-center ((matrix nil) (classes nil)) @@ -2042,7 +2045,7 @@ (setf point (+ point 1)) (dotimes (d *n*) (setf (aref nuage (- point 1) d) (aref matrix a d))) - (setf tc (CENTRE-GRAVIT\é nuage))))) + (setf tc (CENTRE-GRAVIT\� nuage))))) (dotimes (d *n*) (setf (aref centres b d) (aref tc 0 d))))))
@@ -2066,7 +2069,7 @@ data : list of classes distribution (typically data from class-1; OUT Shannon entropie value, 0 <= entropie <= (log n 2). -Cf. J. Wasemberg : L âme de la méduse, idées sur la complexité du monde, +Cf. J. Wasemberg : L �me de la m�duse, id�es sur la complexit� du monde, Seuil, Paris, 1997." (let ((cl (remove-duplicates data)) (n (length data)) (p nil)) (dolist (ci cl (- 0 (apply #'+ (mapcar #'(lambda (x) (* x (log x 2))) p)))) @@ -2081,7 +2084,7 @@ Shannon entropie value 0 <= entropy <= (log n 2) if res = absolute; 0 <= entropy <= 1.0 if res = relative. -Cf. J. Wasemberg : L âme de la méduse, idées sur la complexité du monde, +Cf. J. Wasemberg : L �me de la m�duse, id�es sur la complexit� du monde, Seuil, Paris, 1997." :menu (res (:abs "absolute") (:rel "relative")) (declare (ignore class res)) @@ -2095,7 +2098,7 @@ Shannon entropie value 0 <= entropy <= (log n 2) if res = absolute; 0 <= entropy <= 1.0 if res = relative. -Cf. J. Wasemberg : L âme de la méduse, idées sur la complexité du monde, +Cf. J. Wasemberg : L �me de la m�duse, id�es sur la complexit� du monde, Seuil, Paris, 1997." (cond ((not (member 'nil (mapcar #'atom class))) (if (equalp res :abs) (setf res 1) (setf res 0)) @@ -2117,7 +2120,7 @@ Shannon entropie value 0 <= entropy <= (log n 2) if res = absolute; 0 <= entropy <= 1.0 if res = relative. -Cf. J. Wasemberg : L âme de la méduse, idées sur la complexité du monde, +Cf. J. Wasemberg : L �me de la m�duse, id�es sur la complexit� du monde, Seuil, Paris, 1997." (setf class (str->symb class)) (entropy class res)) @@ -2148,8 +2151,8 @@
(defun normalize-class (classes) "reordonne les classes de class-1. -L'ordre de la classe étant le numéro de sa première occurence dans la liste des classes. -Se connecte typiquement après class-1 ou meta-class1." +L'ordre de la classe �tant le num�ro de sa premi�re occurence dans la liste des classes. +Se connecte typiquement apr�s class-1 ou meta-class1." (let ((set nil) (r nil) (marker -1) (tempset nil) n) (when (stringp classes) (setf classes (str->symb classes))) (setf n (length (remove-duplicates classes))) @@ -2164,8 +2167,8 @@
(define-box norm-class ((classes nil)) "reordonne les classes de class-1. -L'ordre de la classe étant le numéro de sa première occurence dans la liste des classes. -Se connecte typiquement après class-1 ou meta-class1. +L'ordre de la classe �tant le num�ro de sa premi�re occurence dans la liste des classes. +Se connecte typiquement apr�s class-1 ou meta-class1. IN : string or list (of symbols or lists or strings)." :non-generic t (if (or (stringp classes) (not (listp (car classes)))) @@ -2453,23 +2456,23 @@ 6800 8300 5900)) (result 1) &optional (d-cte nil)) "analyse une sequence en detectant trois formes primitives: -minima: element précédé et suivi par un élément +minima: element pr�c�d� et suivi par un �l�ment de valeur plus grande. -maxima: element précédé et suivi par un élément +maxima: element pr�c�d� et suivi par un �l�ment de valeur plus petite -flex: element précédé et suivi par un élément -de valeur égale +flex: element pr�c�d� et suivi par un �l�ment +de valeur �gale
ex : (10 8 8 6 6 5 2 2 2 1) OM->(pure-flex- (8 2) (6 2) (2 3)) -le premier chiffre indique la valeur répétée - et le deuxième terme de la liste indique son nombre d'occurrences. -la deuxième entrée est un menu WHICH qui permet de selectionner +le premier chiffre indique la valeur r�p�t�e + et le deuxi�me terme de la liste indique son nombre d'occurrences. +la deuxi�me entr�e est un menu WHICH qui permet de selectionner les informations: prim: succession des primitives -prof: succession des primitives et profondeur en nombre d'éléments de +prof: succession des primitives et profondeur en nombre d'�l�ments de chaque primitive -vals: idem que prof + valeur correspondant à chaque primitive +vals: idem que prof + valeur correspondant � chaque primitive every: idem que vals + position de chaque primitive" :non-generic t :menu (result (1 "prim") (2 "prof") (3 "vals") (4 "every")) @@ -2495,7 +2498,7 @@ (define-box 1-0-1-reconst ((list nil)) "fonction dx->x d'OM : renvoie une liste de points depuis une liste - d'intervalles . commence à zero" + d'intervalles . commence � zero" :non-generic t (OM::dx->x 0 list))
@@ -2558,7 +2561,7 @@
(define-box reconst-prim+prof ((list nil)) "Ricostruisce la lista usando min, max, flex - più eventualmente l'indice di profondità" + pi� eventualmente l'indice di profondit�" :non-generic t (let ((ris nil) (start 0)) (dolist (y list @@ -2580,8 +2583,8 @@ ris))))
-(defun rec-st-2 (struct |N°| &optional seq) - (let* ((rs (nth |N°| struct)) +(defun rec-st-2 (struct |N�| &optional seq) + (let* ((rs (nth |N�| struct)) (risultato (mapcar #'(lambda (x) (OM::flat (nth x (cadr rs)))) (mapcar #'1- (cadar rs))))) @@ -2590,27 +2593,27 @@ (OM::flat risultato))))
(define-box struct2-to-seq ((struct nil) (n nil) &optional ptrns) - "Reconstruit une séquence correspondant à la structure donnée en struct. - Optional : reconstruit une séquence de même structure avec les patterns - donnés en ptrns." + "Reconstruit une s�quence correspondant � la structure donn�e en struct. + Optional : reconstruit une s�quence de m�me structure avec les patterns + donn�s en ptrns." (declare (ignore struct n)) (error "default method. should not be called."))
(defmethod struct2-to-seq ((struct list) (n integer) &optional ptrns) - "Reconstruit une séquence correspondant à la structure donnée en struct. - Optional : reconstruit une séquence de même structure avec les patterns - donnés en ptrns." + "Reconstruit une s�quence correspondant � la structure donn�e en struct. + Optional : reconstruit une s�quence de m�me structure avec les patterns + donn�s en ptrns." (rec-st-2 struct n ptrns))
(defmethod struct2-to-seq ((struct list) (n list) &optional ptrns) - "Reconstruit une séquence correspondant à la structure donnée en struct. - Optional : reconstruit une séquence de même structure avec les patterns - donnés en ptrns." + "Reconstruit une s�quence correspondant � la structure donn�e en struct. + Optional : reconstruit une s�quence de m�me structure avec les patterns + donn�s en ptrns." (mapcar #'(lambda (i) (rec-st-2 struct i ptrns)) n))
(define-box reconst-prim+prof+val ((list nil) (start 6000)) "Ricostruisce la lista usando min, max, flex - più eventualmente l'indice di profondità" + pi� eventualmente l'indice di profondit�" :non-generic t (let ((ris nil)) (dotimes (x (length list) (OM::flat (nreverse ris))) @@ -2640,7 +2643,7 @@
(define-box pos+prim+prof+val ((list nil) (start 6000)) "Ricostruisce la lista usando min, max, flex - più eventualmente l'indice di profondità" + pi� eventualmente l'indice di profondit�" :non-generic t (let ((ris nil) (valore nil)) (dotimes (x (length list) @@ -2722,7 +2725,7 @@
(define-box controlla-ottave ((list1 nil) (list2 nil) (modul 12)) "studia i casi particolari della melodia in questione se questa - è trasposta più o meno esattamente" + � trasposta pi� o meno esattamente" :non-generic t (let* ((ris nil) (ros nil) @@ -2993,9 +2996,9 @@
(define-box multi-distance ((seq1 nil) (seq2 nil) (change 1) (ins/sup 1) (wgth (1 1 1 1)) &optional (inex nil)) - "Applique la distance d'édition à une liste - de séquences avec une pondération (entre 0 et 1) - pour chaque élément (ou position) des listes." + "Applique la distance d'�dition � une liste + de s�quences avec une pond�ration (entre 0 et 1) + pour chaque �l�ment (ou position) des listes." :non-generic t (if inex (dist-2-ldl seq1 seq2 change ins/sup inex wgth) @@ -3024,8 +3027,8 @@
(define-box resemblance ((a nil) (b nil) (wocc 1.0) (wref 1.0) &optional (diff :res)) - "Calcule une valeur de ressemblance entre 0 et 100 entre deux séquences -de symboles selon le critère de leur structure interne. + "Calcule une valeur de ressemblance entre 0 et 100 entre deux s�quences +de symboles selon le crit�re de leur structure interne. Wocc : poids de la structure d'occurence; Wref : poids de la structure de repetition." :menu (diff :res :diss) @@ -3034,8 +3037,8 @@
(defmethod resemblance ((a list) (b list) (wocc float) (wref float) &optional diff) - "Calcule une valeur de ressemblance entre 0 et 100 entre deux séquences -de symboles selon le critère de leur structure interne. + "Calcule une valeur de ressemblance entre 0 et 100 entre deux s�quences +de symboles selon le crit�re de leur structure interne. Wocc : poids de la structure d'occurence; Wref : poids de la structure de repetition." (let* ((ma (resemblance-match a a)) @@ -3076,13 +3079,13 @@ (dotimes (x (- (length lista) 1) (nreverse ris)) (push (/ (+ (nth x lista) (nth (1+ x) lista)) 2) ris))))
-(define-box mean-derivation ((list nil) (GR\° 0) &optional (note? nil)) +(define-box mean-derivation ((list nil) (GR\� 0) &optional (note? nil)) "" :non-generic t (let* ((calcolo - (if (= 1 GR\°) + (if (= 1 GR\�) (med-fix list) - (mean-derivation (med-fix list) (- GR\° 1) note?))) + (mean-derivation (med-fix list) (- GR\� 1) note?))) (con-note (when note? (notes-change calcolo note? 48)))) (if note? con-note calcolo)))
@@ -3103,13 +3106,13 @@ (push (/ (apply '+ (nth x calcolo)) (length (nth x calcolo))) ris))))
-(define-box variable-derivation ((lista nil) (windw 2) (GR\° 1)) +(define-box variable-derivation ((lista nil) (windw 2) (GR\� 1)) "Restituisce le dirivate variabili successive secondo il valore scelto in GRADO. N rappresenta il valore con cui effettuare la media." :non-generic t - (if (= 1 GR\°) + (if (= 1 GR\�) (med-var lista windw) - (variable-derivation (med-var lista windw) (- GR\° 1) windw))) + (variable-derivation (med-var lista windw) (- GR\� 1) windw)))
(define-box notes-change ((pits 6000) (scale 6000) &optional (mod 12)) @@ -3140,7 +3143,7 @@
(define-box octave ((midic 6000)) - "retourne l'octave à partir de c3=octave 3" + "retourne l'octave � partir de c3=octave 3" :non-generic t (let ((midic (list! midic))) (mapcar #'(lambda (x) (OM::om- (OM::om// x 1200) 2)) @@ -3148,14 +3151,14 @@
(define-box makenote ((index 60) (octave 3) &optional (mod 12)) - " construction d'une note à partir des données + " construction d'une note � partir des donn�es de index, octave e modulo du index" :non-generic t (+ (/ (* index 100 12) mod) (* (+ 2 octave) 1200)))
(defun lettura-modulare (lista1 lista2) - "Se la prima lista è più grande della seconda lista, allora legge + "Se la prima lista � pi� grande della seconda lista, allora legge modularmente la seconda lista restituendo un length uguale al length di lista1." (let ((ros nil)) @@ -3184,10 +3187,10 @@
(define-box prof-inter ((list1 nil) (list2 nil) (total 1)) - "Restituisce l'interposizione di list1 con list2. Se list1 è più piccola + "Restituisce l'interposizione di list1 con list2. Se list1 � pi� piccola di list2 allora la funzione crea un'interposizione di n elementi di list2 dove (= n (- (length list1) 1)). In questo caso si puo' decidere con il - menù se avere la prima ricorsione per completare list2." + men� se avere la prima ricorsione per completare list2." :non-generic t :menu (total (1 "ltd") (2 "copl")) (case total @@ -3198,14 +3201,14 @@ (otherwise (error "Got ~s, was expecting one of 1, 2." total))))
-(define-box interlock ((list1 nil) (list2 nil) (GR\° 1)) +(define-box interlock ((list1 nil) (list2 nil) (GR\� 1)) "Interpone una lista2 alla lista1 e prende aleatoriamente le note della lista2" :non-generic t - (if (= GR\° 1) + (if (= GR\� 1) (inter-profile list1 (OM::permut-random list2)) (interlock (inter-profile list1 (OM::permut-random list2)) - (permut-circ list2 (1- (length list1))) (- GR\° 1)))) + (permut-circ list2 (1- (length list1))) (- GR\� 1))))
(define-box new-inter-profile ((list1 nil) (list2 nil)) @@ -3229,14 +3232,14 @@ (last list1)))))
-(define-box new-interlock ((list1 nil) (list2 nil) (GR\° 1)) +(define-box new-interlock ((list1 nil) (list2 nil) (GR\� 1)) "Interpone una lista2 alla lista1 e prende aleatoriamente le note della lista2" :non-generic t - (if (= GR\° 1) + (if (= GR\� 1) (new-inter-profile list1 (OM::permut-random list2)) (new-interlock (new-inter-profile list1 (OM::permut-random list2)) - (permut-circ list2 (1- (length list1))) (- GR\° 1)))) + (permut-circ list2 (1- (length list1))) (- GR\� 1))))
(defun int-com-ottava (lista) @@ -3279,9 +3282,9 @@
(define-box correttore ((elmt 1) (range nil)) "Restituisce un elemento se questo compare all'interno del range. - Se l'elemento è escluso allora lo traspone in modo tale che sia - il più vicino possibile o al limite superiore o a quello inferiore. - Se il limite è DO-SOL allora Mi viene incluso, SI viene trasposto + Se l'elemento � escluso allora lo traspone in modo tale che sia + il pi� vicino possibile o al limite superiore o a quello inferiore. + Se il limite � DO-SOL allora Mi viene incluso, SI viene trasposto sotto il DO e il SOL# viene trasposto sopra il SOL." :non-generic t (let ((max (g-max range)) (min (g-min range))) @@ -3297,26 +3300,26 @@
(defun cor-ott-list (elmt range) "Restituisce un elemento se questo compare all'interno del range. - Se l'elemento è escluso allora lo traspone in modo tale che sia - il più vicino possibile o al limite superiore o a quello inferiore. - Se il limite è DO-SOL allora Mi viene incluso, SI viene trasposto + Se l'elemento � escluso allora lo traspone in modo tale che sia + il pi� vicino possibile o al limite superiore o a quello inferiore. + Se il limite � DO-SOL allora Mi viene incluso, SI viene trasposto sotto il DO e il SOL# viene trasposto sopra il SOL.La differenza - con 'CORRETTORE' è che questo modulo agisce su una lista intera." + con 'CORRETTORE' � che questo modulo agisce su una lista intera." (let ((ris nil)) (dolist (y elmt) (push (correttore y range) ris)) (nreverse ris)))
(define-box trans-approx ((list nil) (range nil)) "E' meglio di transpoct di Esquisse. Infatti attua lo stesso - procedimento ma traspone una nota non inclusa nel range il più + procedimento ma traspone una nota non inclusa nel range il pi� vicino o al limite superiore o a quello inferiore." :non-generic t (cor-ott-list (mio-transpoct list range) range))
(define-box direct-analysis ((list (6000 4000 6900 7300 6100 5900))) - "donne le signe de la dérivée locale (-1. 0 +1) pour chaque point de la liste -des valeurs données en entrée." + "donne le signe de la d�riv�e locale (-1. 0 +1) pour chaque point de la liste +des valeurs donn�es en entr�e." :non-generic t (let ((ris nil)) (dotimes (x (length (OM::x->dx list)) (nreverse ris)) @@ -3364,8 +3367,8 @@
(defun interno (elmt range) - "Restituisce l'elemento se è incluso nel 'range' e nil - se non è incluso." + "Restituisce l'elemento se � incluso nel 'range' e nil + se non � incluso." (if (<= (g-min range) elmt (g-max range)) elmt nil))
(define-box malt-mod- ((list nil) (limit 6000)) @@ -3378,7 +3381,7 @@
(define-box reflex-int ((ls nil) (value 0) (up/down 1)) "Restituisce la rifleesione delle note che sono superiori o inferiori - al valore indicato con 'value'. Il menù permette di selezionare se si + al valore indicato con 'value'. Il men� permette di selezionare se si vuole una riflessione superiore o inferiore" :non-generic t :menu (up/down (1 "up") (2 "down")) @@ -3499,7 +3502,7 @@
(define-box comp-octave ((list nil) (range nil)) "Restituisce una trasposizione della lista mantenendo le altezze - assolute all'interno del 'range. Se un elemento non è incluso + assolute all'interno del 'range. Se un elemento non � incluso nel 'range', allora viene tolto dal risultato." :non-generic t (let ((ris nil)) @@ -3509,8 +3512,8 @@
(define-box rtm-change ((rhyt nil) (modulo nil) (mode? 1)) "E' la funzione che cambia un ritmo in funzione del menu MODE? - Se MODE? è su mod, questa funzione restituisce i multipli - dei valori in MODULI; se è su ptrn allora retituisce una + Se MODE? � su mod, questa funzione restituisce i multipli + dei valori in MODULI; se � su ptrn allora retituisce una struttura ritmica che utlilizza solamente i valori in MODULO" :non-generic t :menu (mode? (1 "mod") (2 "ptrn")) @@ -3522,9 +3525,9 @@
(define-box rtm-change-1 ((rhytm nil) (vals nil)) - "Se in vals c'è un solo valore allora calcola una + "Se in vals c'� un solo valore allora calcola una approssimazione ritmica in modo tale che tutti i valori - risultino un multiplo di vals. Se invece in vals c'è una + risultino un multiplo di vals. Se invece in vals c'� una lista di valori allora approssima tutti i valori in rtm con i valori di vals." :non-generic t @@ -3554,8 +3557,8 @@
(define-box rtm-change-1val ((rht nil) (val 1)) "Questa funzione prende ogni elemento di rht e restituisce - lo stesso elemento se il (mod rht val) è uguale a 0 - altrimenti lo approssima al poù vicino" + lo stesso elemento se il (mod rht val) � uguale a 0 + altrimenti lo approssima al po� vicino" :non-generic t (let ((ris nil)) (dolist (y rht (nreverse ris)) @@ -3576,13 +3579,13 @@
(define-box segno+picc ((list nil)) "Trasforma tutta la lista in valori tutti positivi e prende il valore - più piccolo." + pi� piccolo." :non-generic t (g-min (mapcar #'(lambda (x) (abs x)) list)))
(define-box nota-vicina ((list nil) (ref 1)) - "Prende l'intervallo più piccolo di una lista." + "Prende l'intervallo pi� piccolo di una lista." :non-generic t (let* ((intervalli (tutti-int list ref)) (piccolo (segno+picc intervalli))) (if (equalp (abs (first intervalli)) piccolo) @@ -3591,13 +3594,13 @@
(define-box tieni-nota ((list nil) (ref 1)) - "tiene la nota più vicina." + "tiene la nota pi� vicina." :non-generic t (OM::om+ ref (nota-vicina list ref)))
(define-box vicini-valori ((list1 nil) (refs nil)) - "Prende le note più vicine di list per ogni nota di refs." + "Prende le note pi� vicine di list per ogni nota di refs." :non-generic t (mapcar #'(lambda (x) (tieni-nota list1 x)) refs))
@@ -3798,8 +3801,8 @@ (define-box prim-tree ((dist nil)) "Builds up the shorter tree of the points given in the matrix of distances (list of list), distances must be expressed as ((xi yi di) etc.). -prend en entrée la sortie de ldl-distance en mode extend. -See: E. Diday & all, 1982 : Elements d'analyse de données, Dunod, Paris. pp. 110-111." +prend en entr�e la sortie de ldl-distance en mode extend. +See: E. Diday & all, 1982 : Elements d'analyse de donn�es, Dunod, Paris. pp. 110-111." :non-generic t (assert (not (member 0 dist :test #'equalp :key #'third)) nil @@ -3906,7 +3909,7 @@
(define-box delta ((list nil) (round 1000)) - " calcule les différences entre les valeurs consécutives avec un arrondi " + " calcule les diff�rences entre les valeurs cons�cutives avec un arrondi " :non-generic t (let ((l nil) (delta nil)) (dotimes (n (- (length list) 1))
Modified: trunk/src/utils.lisp ============================================================================== --- trunk/src/utils.lisp (original) +++ trunk/src/utils.lisp Sun Jul 15 10:27:06 2007 @@ -31,42 +31,3 @@ (if (consp (car list)) (apply 'append list) list))
-#-(or lispworks digitool) -(defun choose-new-file-dialog (&key (prompt "Enter the path for a new file:") - button-string) - (declare (ignore button-string)) - (format *query-io* "~&~a~%[please enter a path like /tmp/test.txt]~%" prompt) - (force-output *query-io*) - (parse-namestring (read-line *query-io*))) - -#+digitool -(defun choose-new-file-dialog (&key (prompt "Enter the path for a new file:") - button-string) - (ccl::choose-new-file-dialog :prompt prompt :button-string button-string)) - -#+lispworks -(defun choose-new-file-dialog (&key (prompt "Enter the path for a new file:") - button-string) - (capi:prompt-for-file prompt :operation :save)) - -#-(or lispworks digitool) -(defun choose-file-dialog (&key (prompt "Enter the path for an existing file:") - button-string) - (format *query-io* "~&~a~%[please enter a path like /tmp/test.txt]~%" prompt) - (force-output *query-io*) - (let ((path (parse-namestring (read-line *query-io*)))) - (if (probe-file path) - path - (progn - (format *query-io* "~&ERROR: ~A does not exist.~%" path) - (choose-file-dialog :prompt prompt :button-string button-string))))) - -#+digitool -(defun choose-file-dialog (&key (prompt "Enter the path for an existing file:") - button-string) - (ccl::choose-file-dialog :prompt prompt :button-string button-string)) - -#+lispworks -(defun choose-file-dialog (&key (prompt "Enter the path for a new file:") - button-string) - (capi:prompt-for-file prompt))
morphologie-cvs@common-lisp.net