45 lines
1.8 KiB
Markdown
45 lines
1.8 KiB
Markdown
Analisi dinamica del codice
|
|
- Isomorfismi sinestetici
|
|
Partendo dalla domanda "come si identifica un suono?"
|
|
si identificano quattro componenti. Ci si pone l'obiettivo
|
|
di scegliere come queste componenti possano essere
|
|
rappresentate dal codice. Una breve proposta di seguito/
|
|
|
|
+--------------------------------+
|
|
| SUONI CODICE |
|
|
| |
|
|
| timbro tipo di dato |
|
|
| altezza valore |
|
|
| velocita` ??? costante??? |
|
|
| durata elementi contenuti |
|
|
| |
|
|
| chiave classe |
|
|
| tempo metodo/funzione |
|
|
| pausa ??? |
|
|
+--------------------------------+
|
|
|
|
Problemi da risolvere:
|
|
- altezza: range troppo alti. In python ad esempio il valore int massimo
|
|
e` 9223372036854775807. Quindi non ha senso associare una nota
|
|
ad ogni possibile valore. Una soluzione puo` essere quella di
|
|
analizzare nel codice valori massimi e minimi che ogni variabile
|
|
puo` assumere con un dato input e creare un range usando quelle
|
|
come estremi.
|
|
Con i float il discorso si complica leggermente, ma per risolverlo
|
|
e` possibile stabilire quali siano
|
|
- maggior valore
|
|
- minor valore
|
|
- minimo scarto tra valori
|
|
e aggiustare la scala di conseguenza.
|
|
Con questo metodo si ottiene qualcosa di udibile sempre ma e` possibile
|
|
ottenere spesso qualcosa di non fedele (ad esempio, una variabile
|
|
intera che assume i valori 9223372036854775807 e 9223372036854775007
|
|
che rumore fa rispetto ad una che assume i valori 2 e 30?).
|
|
|
|
Durata: elementi contenuti
|
|
Dipende. Riempire un array di 100000 elementi a suonare impiega lo
|
|
stesso tempo di riempirne uno di 2?
|
|
NO! Ma uno da 100000 deve risultare secondo me ben piu` acelerato di
|
|
uno da due (direi massimo 10 volte di piu`).
|
|
Per calcolare l'acelerazione si fa tipo log2(n). Onesto.
|