Un modo per esplorare le frontiere creative è trasferire un concetto valido in un’area come metafora in un’altra. Ci sono processi, operazioni che vengono sistematicamente usati nell’atto creativo; ad esempio in audio sono prassi comune l’uso della distorsione, della modulazione, aggiungere echi e riverberi…Allo stesso modo in grafica e in video alcuni “processi” sono di uso comune; basti pensare all’effetto seppia, alla posterizzazione, al b/n, al rallenty, al reverse eccetera.
Ma cosa succede quando tentiamo di trasferire un processo da un’area all’altra?
Stavo studiando Algoritmo di flocking di Reynold. Questo algoritmo è nato per la grafica, per la simulazione realistica di insiemi , come un banco di pesci, uno sciame d’api o uno stormo di uccelli. Venne usato ad esempio la prima volta per animare i pipistrelli in un film di Batman. Quello che conta è la innegabile bellezza dei movimenti generati.
C’è un suono che mi affascina da sempre ed è il suono dell’orchestra che si accorda. Ho visualizzato i vari musicisti mentre cercano l’intonazione e ho notato un parallelo con l’algoritmo di Reynolds. O con i tentacoli di un anemone marino mossi dalla corrente.
Ed ho pensato allora: non sarebbe possibile concepire uno strumento musicale tale per cui data una nota altre note venissero generate dinamicamente seguendo le logiche del flocking? Beh, non resta che provare…
![]() |
.
Ho già in mente il prototipo dello Swarm Delay (eco a sciame) e molte delle specifiche. Di solito scrivo (su carta!) tutto quello che vorrei che il codice facesse, poi ci penso un poco su, poi aggiungo o tolgo altre cose. E poi top down scrivo il codice. Cosa deve fare lo swarm delay?
– data una nota in ingresso deve generare dinamicamente uno sciame legato alla nota stessa
– lo sciame è composto da più “player” (orchestra player) che cercano indipendentemente di suonare all’unisono con il director
– le note dello sciame devono poi essere eseguite da uno strumento dedicato tipo un campionatore o un sintetizzatore (per semplicità anche sw)
– se non ci sono note in input lo sciame può attivarsi e muoversi da solo – le regole di formazione dello sciame devono essere ispirate a quelle di Reynold
– e soprattutto deve essere “musicale”!
![]() |
.
Swarm delay sarà una applicazione in Lingo, che intercetta la nota MIDI in arrivo al computer e che genera lo sciame di note secondo l’algoritmo modificato di Reynold, facendo così suonare Reason. Il prototipo lo sto sviluppando su mac (os X 10.3). XMidi è un xtra sviluppato da Mark Coniglio per aggiungere il MIDI a Director. Esiste per Mac e pc e funziona egregiamente. Os X 10.3 supporta la redirezione delle note MIDI attraverso un bus virtuale, IAC; su pc credo che si debbano usare utilities ad hoc (come…), ma se qualcuno conosce una soluzione più efficace lo dica pure!
La parte algoritmica e di controllo verrà gestita dal Lingo. La generazione del suono in Director non è il massimo. Per questo motivo ho scelto Reason, che invece sul suono se la cava decisamente molto bene. In pratica avremo sul synth virtuale tanti campionatori NN-XT quanti “agenti orchestrali” saremo in grado di gestire da Lingo.
![]() |
.
L’idea è di usare sw commerciali di ottimo livello, come Reason appunto, senza dover di necessità ricorrere a sw esoterici (non me ne vogliano gli appassionati di MAX/MSP o SuperCollider); questo per rendere più facile a tutti la customizzazione di strumenti e far uscire la sperimentazione dai dipartimenti degli istituti. Inoltre così facendo la prototipazione dovrebbe essere molto più veloce e facile.
Nella seconda parte di questo articolo, il prossimo mese, vedremo in breve lo standard MIDI, come implementare in Lingo il prototipo dello Swarm Delay e come programmare le patch di suoni di Reason; se riuscirò, metterò a disposizione un esempio funzionante di Swarm Delay per mac (per XMidi e Reason dovrete accontentarvi delle demo) e qualche mp3.
Alla prossima puntata…e attenzione : i tentacoli degli anemoni di mare possono essere velenosi…
bibliografia essenziale:
AI for Game Developers. Bourg,Seeman , pub. O’Reilly 2004
Programming Game AI by Example. Buckland , pub Wordware Publishing 2005
Out of control, Kevin Kelly pub Fourth Estate Ltd 1995