View Full Version : Automi cellulari: progetto.. help
mistergks
27-06-2013, 18:57
Ciao!!
Devo fare un progetto per un esame.. in pratica sarebbe un automa cellulare che rappresenti qualcosa tipo incendio di una foresta, inquinamento di un lago, vicinato ecc...
Il tutto programmato in ambiente camelot (conoscete?) Con linguaggio carpet.
Volevo fare una cosa originale:
Un automa che genera musica o suoni.. che ne pensate?
Come posso realizzarlo?
mistergks
27-06-2013, 23:37
Up
SnakePlissken
28-06-2013, 11:12
Ciao!!
Devo fare un progetto per un esame.. in pratica sarebbe un automa cellulare che rappresenti qualcosa tipo incendio di una foresta, inquinamento di un lago, vicinato ecc...
Il tutto programmato in ambiente camelot (conoscete?) Con linguaggio carpet.
Pare interessante! Potresti spiegare brevemente di che si tratta?
Volevo fare una cosa originale:
Un automa che genera musica o suoni.. che ne pensate?
Come posso realizzarlo?
Non saprei, ho sentito puredata (prima o poi dovrò approfondire), che può essere usato per la trasformazione di informazioni in suoni (sonificazione). Ma non penso ti sia utile.
banryu79
28-06-2013, 13:16
Pare interessante! Potresti spiegare brevemente di che si tratta?
Dopo breve ricerca (spinto da curiosità) sono incappato in questa pagina:
http://staff.icar.cnr.it/spezzano/camelot/camelot.html
Ho il sospetto che non sia la risorsa più aggiornata, forse mistergks può fornircene una migliore. Comunque può servire a soddisfare la tua curiosità.
Spiega (by example) cos'è l'ambiente Camelot (un ambiente per la programmazione e l'esecuzione parallela di automi cellulari che supporta Carpet come linguaggio di programmazione). Tra parentesi, sembra sia roba nostrana :)
Carpet pare essere una semplice estensione dell'ANSI C.
A quanto pare per far girare Camelot servono le MPI.
banryu79
28-06-2013, 13:27
Volevo fare una cosa originale:
Un automa che genera musica o suoni.. che ne pensate?
Come posso realizzarlo?
Non ne ho idea, non mi sono mai occupato di automi cellulari.
Però, sulla pagina wikipedia italiana corrspondente alla voce "Automa cellulare" (https://it.wikipedia.org/wiki/Automa_cellulare) ho trovato un passo che parla dell'applicazione di questi automi al fine di generare suonerie musicali, e un link a Wolfram Tones (http://tones.wolfram.com/about/).
Magari ti può essere utile, non so.
mistergks
28-06-2013, 16:25
Dopo breve ricerca (spinto da curiosità) sono incappato in questa pagina:
http://staff.icar.cnr.it/spezzano/camelot/camelot.html
Ho il sospetto che non sia la risorsa più aggiornata, forse mistergks può fornircene una migliore. Comunque può servire a soddisfare la tua curiosità.
Spiega (by example) cos'è l'ambiente Camelot (un ambiente per la programmazione e l'esecuzione parallela di automi cellulari che supporta Carpet come linguaggio di programmazione). Tra parentesi, sembra sia roba nostrana :)
Carpet pare essere una semplice estensione dell'ANSI C.
A quanto pare per far girare Camelot servono le MPI.
Quel link è della mia università! Non é molto aggiornato perche é un esame estinto a causa della transizione alla dm270.
In pratica camelot gira su una macchina virtuale e ha un editor e compilatore.. il linguaggio deriva dal C..
Questo link puo farvi capire meglio: https://www.mat.unical.it/spataro/teaching/modelli/modelli.html
Ma io non cerco aiuto sull'uso dell'ambiente in questione, ma vorrei capire come realizzare l automa cellulare che si comporti generando suoni
Su internet ho trovato una cosa simile a quello che vorrei fare io ma é fatta in java..
Si chiama "otomata" .
banryu79
28-06-2013, 17:05
Ma io non cerco aiuto sull'uso dell'ambiente in questione, ma vorrei capire come realizzare l automa cellulare che si comporti generando suoni
Su internet ho trovato una cosa simile a quello che vorrei fare io ma é fatta in java..
Si chiama "otomata" .
Ma è sta roba qua!?
-> http://www.earslap.com/projectslab/otomata
E' una figata pazzesca!! :D
Hai capito come funziona quell'automa?
Ecco le regole (desunte dal video):
1) In pratica ogni cellula ha quattro stati: su, giù, destra, sinistra (oltre che avere una certa posizione xy nella griglia/ambiente).
2) Ad ogni step temporale, ogni cellulasi sposta in una nuova posizione xy determinata dal suo stato.
3) Se una cellula colpisce un muro/bordo viene emesso un suono con un certo pitch (il tono) che dipende dalla posizione xy del muro/bordo colpito.
Inoltre la cellula cambia stato (prende la direzione opposta, come se rimbalzasse).
4) Se due cellula entrano in collisione, il loro stato viene mutato (la direzione cambia in senso antiorario, cioè passa da su -> sinistra -> giù -> destra).
Comunque, al di la delle regole scelte per far mutare di stato le cellule, la chiave che lega l'evoluzione dell'automa all'emissione dei suoni è la presenza di una regola che produce dei suoni (regola 3).
Tu puoi fare lo stesso, magari variando un po' le regole.
Ad esempio puoi aggiungere delle cellule che quando vengono colpite si girano in senso opposto, oppure delle cellule che quando sono colpite emettono loro stesse un suono. Oppure puoi essere ancora più radicale: invece di usare delle cellula rettangolari su una griglia rettangolare, potresti usare delle cellula esagonali e definire così più possibili stati (direzioni) e regole per mutarli. Oppure puoi pensare a dei meccanismi/interazioni particolari per far generare (e distruggere) cellula speciali che si comportano come dei bordi/muri quando entrano in contatto con alre cellule, ecc... insomma, secondo me hai di che sbizzarrirti :)
Potresti perfino pensare a delle regole per modificare i bpm o altro ancora (invece che un sistema bidimensionale, potresti usare una griglia tridimensionale: così potresti associare ad ogni singolo layer bidimensionale un suono diverso, e far così "suonare" più "strumenti")... gran figata/cacofonia garantita :asd:
mistergks
28-06-2013, 20:55
Si é quella roba :-).. é una figata davvero!
A me per il Progetto basta fare una cosa basilare! Anche perché ho pochissimo tempo!
Vorrei capire se posso farlo in ambiente camelot con linguaggio carpet (devo usare questo per forza).
Non so se si possono produrre i suoni in questo ambiente!
E se si.. potrei usare un solo tipo di suono come un pianoforte ad esempio: ma come lo campiono?
Ho paura di mettermi in qualcosa piú grande di me!
banryu79
29-06-2013, 00:13
Si é quella roba :-)..,
Comunque quella roba... cioè Otomata, non è stata scritta in Java ma con il linguaggio HaXe (https://en.wikipedia.org/wiki/HaXe).
Vorrei capire se posso farlo in ambiente camelot con linguaggio carpet (devo usare questo per forza).
Non so se si possono produrre i suoni in questo ambiente!
E se si.. potrei usare un solo tipo di suono come un pianoforte ad esempio: ma come lo campiono?
Ho paura di mettermi in qualcosa piú grande di me!
Da quello che ho capito io, con Camelot & Carpet ci scrivi l'automa sicuro.
Poi se è vero che Carpet è una estensione del linguaggio C come è spiegato nella pagina che avevo linkato (e se Camelot come ambiente, che non conosco, non mette i bastoni tra le ruote) probabilmente puoi far produrre i suoni che vuoi magari appoggiandoti a qualche libreria già esistente (nn mi chiedere quale però, perchè non ne ho idea, ma google e stackoverflow sono tuoi amici,fai qualche ricerca) ;)
Eventualmente potresti anche provare a chiedere lumi via mail al tuo professore o a uno degli autori di Camelot/Carpet (visto che c'è almeno un'italiano nel gruppo). Insomma, devi dirimere la faccenda dell'integrazione tra Camelot e il resto del mondo.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.