|
|
Wiki |
Home
|
Download
|
Documentazione
|
|||||||||
CodeSounding: trasformare la struttura dei file sorgenti in musicaCodeSounding può essere visto come un modo per creare computer-generated music, ovvero una libreria che applica una "sonification" al codice sorgente: il suono prodotto a runtime è funzione della struttura del codice sorgente da cui è stato ottenuto il programma stesso.L'idea del progetto è nata per caso, durante una discussione su come generare "algoritmicamente" della musica glitch (alcuni esempi). Durante lo sviluppo del progetto mi son sorti dubbi di pitagorica memoria: è possibile che il processo mentale che elabora l'algoritmo e che infine "coagula", si fissa, nell'insieme di istruzioni che compongono il codice sorgente, possa considerarsi anche da una prospettiva sonora? Esistono regole che instaurano un isomorfismo tra ragionamento e senso estetico? Ora, certamente la matematica presenta tanti esempi di bellezza: una semplice occhiata ai frattali credo sia eloquente. Perchè un algoritmo informatico non si dovrebbe poter rappresentare in un modo così stupefacente? Sempre di matematica si tratta. E se fosse possibile udire la sfuggente proprietà detta "qualità del software"? CodeSounding non ha certo la pretesa di rispondere a questa domanda provocatoria, piuttosto è un'umile proof of concept.
Tecnicamente, il processo di "sonification" consiste nell'elaborazione dei file sorgenti in modo da aggiungervi delle callback negli eventi "if, for" ecc. Questa operazione è chiamata token stream rewriting. Le operazioni di callback sono strutturate sul design pattern template: ciò permette di scegliere e configurare a runtime, cioè quando l'applicazione viene eseguita, l'algoritmo che genera la musica. Propriamente dunque la "sonification" non è effettuata sulla struttura statica del codice sorgente ma sulla dinamica dell'esecuzione. Per il parsing dei sorgenti uso una grammatica ANTLR, mentre per generare la musica uso il linguaggio/notazione ABC (vedi i siti di Guido Gonzato e Chris Walshaw), la libreria jMusic o il server audio JACK. News |
|||||||||||||