+ All Categories
Home > Documents > Studio delle interazioni caotiche parte2...

Studio delle interazioni caotiche parte2...

Date post: 04-Mar-2021
Category:
Upload: others
View: 1 times
Download: 0 times
Share this document with a friend
37
1 UNA PERFORMANCE IN TEMPO REALE BASATA SU UN SITEMA CAOTICO CONTROLLATO DIGITALMENTE: ESPERIMENTO DELLE INTERAZIONI CAOTICHE - Parte 2 Stefano Silvestri Corsi Accademici di 1° Livello in Musica Elettronic a e Nuove Tecnologie Conservatorio di Napoli esame di tecniche di composizione elettroacustica II - biennio 23/10/2013 RIASSUNTO Nella relazione prosegue l'indagine delle forme sonore del caos attraverso l'uso del dispositivo hardware "Sintetizzatore Caotico" [1], la cui parte analogica di generazione del suono è stata progettata nell'ambito dello studio musicale dei sistemi dinamici complessi ed è stata oggetto di sperimentazione nei precedenti lavori compositivi: "Esperimento delle interazioni caotiche" parte 1, per nastro 1 , e parte 1.1, per nastro ed elettronica in tempo reale 2 . INTRODUZIONE In questo lavoro compositivo viene sfruttata un'interfaccia digitale per il controllo dello spazio dei parametri del sistema caotico e questa particolare soluzione è stata studiata per risolvere alcuni problemi di accuratezza e precisione relativi alla gestione dei valori degli oscillatori non lineari. Tra i vantaggi vi è la possibilità di memorizzare determinate configurazioni dello spazio delle fasi, in particolare è possibile ritrovare i valori specifici in cui avvengono dinamiche emergenti interessanti, si ha la possibilità di riprodurre andamenti attorno al quale si verificano interazioni e regimi di sincronizzazione, inoltre è possibile scorgere punti critici in cui si manifestano disturbi e perturbazioni nell'intorno degli attrattori. Dal punto di vista musicale le possibilità del controllo digitale estendono la gamma di forme sonore possibili e al contempo viene a sottolinearsi un ulteriore aspetto investigato negli "esperimenti delle interazioni caotiche", ovvero l'idea secondo cui il dispositivo elettronico in sé rappresenta l'opera musicale stessa. Ci si interroga quindi su quali siano le condizioni e i limiti affinché si possa definire una opera come "sistema", o in altre parole, si cerca di fare in modo che la composizione sia il risultato di un sistema dinamico capace di verificare autonomamente comportamenti complessi emergenti. IL PROGETTO DELLA COMPOSIZIONE Il brano oggetto della relazione è per elaborazione in tempo reale, con diffusione pseudo- quadrifonica 3 del suono, esso si sviluppa attorno alle possibilità del controllo digitale dei parametri del sintetizzatore caotico e la sua durata può essere variabile in base alla scelta della velocità di transito su determinati schemi prefissati in partitura. E' stata quindi prevista una particolare partitura grafica di riferimento, che riporta tra l'altro i dati relativi ai 1 Prima esecuzione presso il Festival delle Arti Sonore "di_Stanze" 3a ed. (Lecce, 2013). 2 Opera finalista al Premio Nazionale delle Arti 2012/2013, sezione Musica Elettronica e nuove tecnologie (Avellino), realizzazione quadrifonica per nastro e azione manuale dei trimmer delle reti circuitali. 3 Ripetizione del fronte stereo sulle due coppie di diffusori, con un certo criterio descritto in seguito.
Transcript
Page 1: Studio delle interazioni caotiche parte2 2elettroacustica.pbworks.com/w/file/fetch/70510673...Department of Meteorology, University of Reading, UK, in Elektor - Retronics, e inoltre

1

UNA PERFORMANCE IN TEMPO REALE BASATA SU UN SITEMA CAOTICO CONTROLLATO DIGITALMENTE:

ESPERIMENTO DELLE INTERAZIONI CAOTICHE - Parte 2 Stefano Silvestri

Corsi Accademici di 1° Livello in Musica Elettronic a e Nuove Tecnologie

Conservatorio di Napoli esame di tecniche di composizione elettroacustica II - biennio

23/10/2013 RIASSUNTO Nella relazione prosegue l'indagine delle forme sonore del caos attraverso l'uso del dispositivo hardware "Sintetizzatore Caotico" [1], la cui parte analogica di generazione del suono è stata progettata nell'ambito dello studio musicale dei sistemi dinamici complessi ed è stata oggetto di sperimentazione nei precedenti lavori compositivi: "Esperimento delle interazioni caotiche" parte 1, per nastro1, e parte 1.1, per nastro ed elettronica in tempo reale2. INTRODUZIONE In questo lavoro compositivo viene sfruttata un'interfaccia digitale per il controllo dello spazio dei parametri del sistema caotico e questa particolare soluzione è stata studiata per risolvere alcuni problemi di accuratezza e precisione relativi alla gestione dei valori degli oscillatori non lineari. Tra i vantaggi vi è la possibilità di memorizzare determinate configurazioni dello spazio delle fasi, in particolare è possibile ritrovare i valori specifici in cui avvengono dinamiche emergenti interessanti, si ha la possibilità di riprodurre andamenti attorno al quale si verificano interazioni e regimi di sincronizzazione, inoltre è possibile scorgere punti critici in cui si manifestano disturbi e perturbazioni nell'intorno degli attrattori. Dal punto di vista musicale le possibilità del controllo digitale estendono la gamma di forme sonore possibili e al contempo viene a sottolinearsi un ulteriore aspetto investigato negli "esperimenti delle interazioni caotiche", ovvero l'idea secondo cui il dispositivo elettronico in sé rappresenta l'opera musicale stessa. Ci si interroga quindi su quali siano le condizioni e i limiti affinché si possa definire una opera come "sistema", o in altre parole, si cerca di fare in modo che la composizione sia il risultato di un sistema dinamico capace di verificare autonomamente comportamenti complessi emergenti. IL PROGETTO DELLA COMPOSIZIONE Il brano oggetto della relazione è per elaborazione in tempo reale, con diffusione pseudo-quadrifonica3 del suono, esso si sviluppa attorno alle possibilità del controllo digitale dei parametri del sintetizzatore caotico e la sua durata può essere variabile in base alla scelta della velocità di transito su determinati schemi prefissati in partitura. E' stata quindi prevista una particolare partitura grafica di riferimento, che riporta tra l'altro i dati relativi ai

1 Prima esecuzione presso il Festival delle Arti Sonore "di_Stanze" 3a ed. (Lecce, 2013). 2 Opera finalista al Premio Nazionale delle Arti 2012/2013, sezione Musica Elettronica e nuove tecnologie (Avellino), realizzazione quadrifonica per nastro e azione manuale dei trimmer delle reti circuitali. 3 Ripetizione del fronte stereo sulle due coppie di diffusori, con un certo criterio descritto in seguito.

Page 2: Studio delle interazioni caotiche parte2 2elettroacustica.pbworks.com/w/file/fetch/70510673...Department of Meteorology, University of Reading, UK, in Elektor - Retronics, e inoltre

2

valori selezionati nello spazio dei parametri. Tali dati sono stati scelti a partire dallo studio condotto sulle possibilità musicali del sistema caotico e il lavoro compiuto da un eventuale esecutore consiste quindi nell'esplorare lo spazio delle fasi, visitando alcuni punti del relativo spazio dei parametri, con la possibilità di alterare leggermente lo stato dei controlli entro certi limiti. Si tratta di "sperimentare ogni volta la composizione" e di valutare i risultati dei pattern in funzione di alcuni dati indicati dal compositore. Nel corso della trattazione si parlerà di come questi parametri possono essere modificati e quali valori sono a disposizione dell'esecutore. Vengono di seguito riproposti alcuni argomenti principali studiati per il progetto della composizione. E' noto che per la generazione elettronica di oscillazioni caotiche è possibile sfruttare in generale numerose soluzioni4, in tal caso è stata scelta una particolare classe di sistemi dinamici non-lineari detti "circuiti di Chua" (1983), capaci, in certe condizioni, di un comportamento imprevedibile anche se è noto il modello matematico del fenomeno. Per il circuito completo relativo alla configurazione di oscillatori complessi si rimanda all'Appendice A, tale circuito è stato in parte descritto in [1, p.3] e rappresenta l'elemento di generazione sonora del sistema usato per la composizione. Dal punto di vista musicale, ciò che interessa è la possibilità di riprodurre andamenti caotici possibili nello spazio delle fasi dei due oscillatori, considerando le specifiche proprietà che caratterizzano un sistema complesso di questo tipo:

• Dipendenza sensibile alle condizioni iniziali: dato un certo sistema di riferimento, le orbite di un attrattore possono comportarsi in modo totalmente diverso a partire da condizioni iniziali poco differenti.

• Impredicibilità: comportamento aperiodico imprevedibile entro un lungo periodo di tempo considerato.

• Sincronizzazione: come ipotizzato da C. Huygens (1657), sistemi complessi interagenti tra loro tendono a un comportamento collettivo (es. metronomi disposti su un asse mobile comune). E' stato verificato sperimentalmente che due o più oscillatori di Chua, per particolari valori dei parametri di controllo, si sincronizzano5.

• Local Activity: Chua definisce l'attività locale come condizione necessaria affinché un processo risulti caotico, imprevedibile e creativo6, in particolare si ha complessità, e si verifica attività locale, quando un singolo oggetto, di una collezione omogenea di oggetti, possiede proprietà speciali. Se si lasciano interagire circuiti di Chua identici, e si modifica almeno uno dei parametri del sistema, si ha una unità localmente attiva e questa combinazione genera comportamenti diversi7.

• Dimensione frattale: gli attrattori strani, risultanti da un comportamento caotico, presentano strutture frattali, ovvero possono esistere caratteristiche di auto-similarità e invarianza di scala. Queste caratteristiche sono legate alla natura ricorsiva del processo di calcolo dei punti di un orbita.

E' importante sottolineare che le suddette definizioni vengono sviluppate nella teoria del caos deterministico, nell'ambito dei sistemi dinamici non lineari e dei sistemi complessi, al fine di studiare modelli matematici di fenomeni reali [2].

4 Si veda ad es. Maarten H. P., Ambaumm R. Giles H., (09-2011). The Chaos Machine, Analogue computing rediscovered (1, 2). Department of Meteorology, University of Reading, UK, in Elektor - Retronics, e inoltre Keuninckx L. (2011) Chaos Generator, Free University of Brussels, Belgium. Elektor 7/8, p.44. 5 Bertacchini F., Bilotta E., Pantano. P., (2009). Il caos è semplice e tutti possono capirlo, Gruppo editoriale Muzzio. p.41. 6 Ibid. p.68. 7 Ibid. p.184.

Page 3: Studio delle interazioni caotiche parte2 2elettroacustica.pbworks.com/w/file/fetch/70510673...Department of Meteorology, University of Reading, UK, in Elektor - Retronics, e inoltre

3

Ricerca di fenomeni emergenti e ipercaotici Le proprietà definite in precedenza sono alla base del comportamento complesso emergente e in generale è possibile affermare che, nel sistema in esame, un numero limitato di strutture elementari interagiscono tra loro in modo non-lineare. Per cercare intuitivamente le condizioni sufficienti affinché, dalla rete circuitale, possano verificarsi particolari comportamenti emergenti, e stabilire quindi un criterio di scelta dei parametri che porti alla formazione di un certo attrattore, è opportuno soffermarsi sulla caratteristica o funzione di trasferimento del "diodo di Chua" (Figura 1). Originariamente Chua, per risolvere il problema dell'esperimento di Matsumoto (1983), riguardante l'implementazione di un circuito fisico basato sulle equazioni e i modelli computazionali di Lorenz (1963), introdusse un elemento circuitale attivo, ovvero in grado di fornire a sua volta energia al sistema. Si tratta di un elemento non-lineare8 che, proprio per la caratteristica di essere un componente attivo, rende possibile la funzione lineare a tratti:

Figura 1 - Funzione caratteristica lineare a tratti del diodo di Chua La funzione risultante è quella del circuito originale di Chua, ovvero una funzione dispari, simmetrica, caratterizzata da parte negativa in un punto e con pendenze dei segmenti

10,mm , rispettivamente medi ed esterni9:

( ) ( ) [ ]pRpRRR BVBVmm

VmVg −−+−

+=2

010 eq.1

In Fig. 1 l'espressione della corrente può essere a sua volta una funzione composta considerando il valore di tensione variabile nel tempo:

( )[ ]tVgI RR = eq.2 Dove si ricorda che un singolo circuito di Chua contiene tre elementi di accumulazione di

8 Analizzando un elemento capace di condurre corrente, ad. es. il resistore, e applicando ai suoi capi una differenza di potenziale, è possibile osservare un certo passaggio della corrente. In tal caso si ha che la differenza di potenziale è direttamente proporzionale al passaggio di corrente, quindi l'elemento è lineare. Viceversa in un circuito di Chua la curva caratteristica tensione-corrente è una spezzata composta da segmenti diversi e la corrente, di verso opposto, è una grandezza inversamente proporzionale alla differenza di potenziale. 9 Una spiegazione completa è quella disponibile su http://www.scholarpedia.org/article/Chua_circuit (01/10/2013).

RA

( )RR VgI =

m0 m1

m0

-Bp

Bp

RV

Page 4: Studio delle interazioni caotiche parte2 2elettroacustica.pbworks.com/w/file/fetch/70510673...Department of Meteorology, University of Reading, UK, in Elektor - Retronics, e inoltre

4

energia costituiti da due condensatori passivi lineari C2-C1 e un induttore passivo lineare L, poi si ha un resistore lineare passivo R, con il quale variare i punti di biforcazioni, e un resistore non-lineare bipolare NR, detto “Diodo di Chua”. Normalmente viene fatta variare la resistenza negativa per percorrere una possibile "strada verso il caos" e mostrare quindi la gamma delle possibili dinamiche esibite dal circuito in una varietà di biforcazioni e di andamenti caotici. In base alle condizioni iniziali degli elementi reattivi il sistema volgerà verso una certa direzione lungo le traiettorie ed evolverà verso la stabilità o l’instabilità. La figura seguente mostra il circuito equivalente al diodo di Chua, ad amplificatore operazionale:

Figura 2 - Possibile realizzazione del circuito del diodo di Chua Con un tipo di configurazione in parallelo è possibile rendere complesso l'andamento della funzione di trasferimento, la Fig.3 mostra di fatto il caso in cui l'oscillatore di Chua sfrutta due resistenze non lineari in parallelo [1, p.4]. Si nota che il circuito elettronico di Fig.3 può anche essere indicato con un unico simbolo complessivo di resistenza non lineare [3, p.36]. Una volta definita la funzione caratteristica nel singolo circuito è possibile adottare diverse configurazioni di oscillatori, per maggiori dettagli relativi alle configurazioni possibili si rimanda alle fonti disponibili in letteratura [4, 5]. Da un punto di vista qualitativo, un dato fondamentale è che, in base all'andamento della curva caratteristica di ogni diodo, ovvero in base alla quantità e pendenza dei segmenti

della RI , è possibile ottenere comportamenti diversi delle orbite, e quindi, differenti attrattori ed n-scroll.

Figura 3 - Diodi di Chua in parallelo

Page 5: Studio delle interazioni caotiche parte2 2elettroacustica.pbworks.com/w/file/fetch/70510673...Department of Meteorology, University of Reading, UK, in Elektor - Retronics, e inoltre

5

Dal punto di vista scientifico è stato scoperto che la non-linearità è data sempre dalle caratteristiche della funzione lineare a tratti, quindi dai valori resistivi e capacitivi della rete, e ciò risulta molto importante ai fini della ricerca di nuovi sistemi caotici10. Il fatto di combinare opportunamente due o più oscillatori complessi, secondo un approccio modulare, consente numerosi e interessanti risultati dal punto di vista grafico e sonoro. In tal sede è stato sperimentato che, con soli due circuiti di Chua, il risultato consiste in andamenti abbastanza complessi delle orbite degli attrattori. Facendo corrispondere uno scroll, o un double-scroll, di un attrattore strano, a una singola cella semplice11, è possibile realizzare sistemi descritti da più di tre equazioni differenziali12 e scoprire forme di attrattori che si sviluppano teoricamente in uno spazio oltre le tre dimensioni. In questo caso i fenomeni sono detti di natura ipercaotica e rientrano nel campo noto come Ipercaos, dove esiste il problema della rappresentazione delle forme multidimensionali in spazi tridimensionali. Per certe condizioni dei parametri, durante l'esecuzione musicale, si possono teoricamente incontrare segnali ipercaotici che però non possono essere discriminati visivamente, essendo visualizzati in uno spazio delle fasi a due dimensioni, relative alle

grandezze di tensione 21,VV , sugli assi cartesiani yx, . ESECUZIONE DEL BRANO Alla base della composizione vi è una sperimentazione delle dinamiche caotiche, in particolare sono stati individuati alcuni controlli significativi, in riferimento al contenuto spettrale risultante, e si è cercato successivamente il modo di come agire questi parametri per indurre una certa variazione musicalmente significativa. Dallo studio emerge che il sistema non è sicuramente un generatore di caratteristiche universale, infatti possono manifestarsi soltanto classi specifiche di attrattori strani, ma alcuni di questi segnali esibiscono comportamenti non lineari e presentano forme d'onda complesse13. Dal punto di vista musicale queste texture risultano maggiormente interessanti rispetto ad altri risultati periodici semplici, possibili con il sintetizzatore. Il valore sistemico del brano è dato dalla natura cotica del processo di generazione, dalla relazione tra gli elementi di Chua, che mostrano spontaneamente il caos e interagiscono tra loro, quindi la presenza di attrattori più o meno complessi è indice di queste caratteristiche. Per questo motivo lo scopo del brano consiste nel rintracciare le

10 Ad es., nel 2007, Bilotta e Pantano hanno trovato oltre 250 attrattori diversi appartenenti al gruppo dei sistemi a singolo scroll. 11 Usando una denominazione impiegata nell'ambito delle CNN (Cellular Non-linear/Neural Networks) e che indica in tal caso un singolo circuito di Chua. 12 Il circuito di Chua, nella forma classica, è descritto dalle seguenti equazioni differenziali, dove 21,VV

sono rispettivamente le tensioni ai capi dei condensatori C1 e C2, LR è la resistenza serie all'induttanza

(normalmente trascurabile) e ( )1, VGI sono rispettivamente la corrente passante attraverso l'induttore L [3, p.41] e la caratteristica tensione-corrente del componente non-lineare (funzione lineare a tratti):

( ) ( ) ( ) ( )11

121

1112

11

1V

CVV

C

G

dt

dVVGVVG

dt

dVC −−⇒=−−=

( ) ( )1222

221

22

1VV

C

GI

Cdt

dVIVVG

dt

dVC −−=⇒+−=

IRL

V

dt

dIRIV

dt

dIL LL ⋅−−=⇒⋅+= 2

2

13 I circuiti di Chua hanno una capacità notevole di produrre suoni con caratteristiche difficilmente riproducibili attraverso metodi di sintesi digitale del suono.

Page 6: Studio delle interazioni caotiche parte2 2elettroacustica.pbworks.com/w/file/fetch/70510673...Department of Meteorology, University of Reading, UK, in Elektor - Retronics, e inoltre

6

dinamiche caotiche e <<comporre l'interazione>> [6, p.6], ad alto livello14, all'atto dell'esecuzione. Funzionamento del sistema software Per attivare il sintetizzatore caotico è opportuno prima di tutto collegare il cavo USB. Subito dopo il collegamento il led giallo di stato, posto a destra del pannello frontale, indica che l'Arduino interno al sistema è acceso. E' possibile quindi avviare la parte software, nell'ordine di priorità: caricare prima i nodi sul server in SuperCollider (codice in Appendice B), e poi aprire il programma Processing (Appendice C). Il programma in SuperCollider è stato appositamente scritto per l'esecuzione del brano e si presenta con la seguente interfaccia grafica:

Figura 4 - GUI del programma di controllo in SuperCollider Il programma scritto in Processing, chiamato "CTC" (Control Terminal Chaos), serve invece sia come terminale autonomo, sia come interfaccia di comunicazione tra il sistema hardware e SuperCollider15, esso si occupa quindi di ricevere i dati via OSC e di inviarli a sua volta sotto forma di byte seriali al firmware (codice in Appendice D) su Arduino. In tal caso l'interfaccia grafica è la seguente:

Figura 5 - Schermata dell'interfaccia in Processing

14 Si intendono nello specifico le possibilità del controllo digitale. 15 Ovviamente è possibile evitare l'uso di Processing, e della relativa libreria oscP5, comunicando direttamente con la seriale via SC. Esiste la classe http://doc.sccode.org/Classes/SerialPort.html, oppure un'alternativa immediata è http://playground.arduino.cc/Interfacing/SuperCollider, il Quarks SCPyduino che però richiede l'uso del Firmata http://playground.arduino.cc//Interfacing/Firmata. Si veda anche http://modularbrains.net/dx490a/DX490A_su2010_09.1_[Interfacing-5%7CArduino].html.

Page 7: Studio delle interazioni caotiche parte2 2elettroacustica.pbworks.com/w/file/fetch/70510673...Department of Meteorology, University of Reading, UK, in Elektor - Retronics, e inoltre

7

E' possibile notare che entrambe le GUI sono simili, di fatto gli slider e gli switch sono in link OSC tra loro. La differenza è che l'interfaccia in SC presenta alcuni pulsanti aggiuntivi di Set, relativi alla modifica di gruppi di parametri. Inoltre la forma della finestra è tale da agevolare l'uso durante l'esecuzione del brano, dove è utile visualizzare la schermata dello spazio delle fasi. Nel caso del programma CTC invece è stato aggiunto un grafico degli andamenti degli slider, in modo da visualizzare la "storia" del percorso di alcuni parametri. Per avviare la comunicazione tra il sintetizzatore e l'interfaccia CTC, è opportuno, dal menu "Setup/Serial port setting" (Fig.5), selezionare la porta COM corrispondente all'Arduino16. In questo modo inizia la comunicazione tra il terminale software e l'interfaccia digitale hardware, usata per il controllo della sezione analogica di generazione del suono. I riquadri rossi in basso, sulla barra verde della schermata, indicano rispettivamente che è attiva la comunicazione seriale verso Arduino e la comunicazione OSC da SuperCollider17. I sei slider e button comunicano con i relativi parametri PWM e Digital OUT dell'interfaccia hardware, vi sono inoltre alcuni toggle in basso che permettono, a scopo di test, di settare lo stato di gruppi di controlli. Il programma Processing necessita delle seguenti classi: "Tracker.pde" e "RectGroup.pde", appositamente scritte per l'interfaccia grafica, inoltre occorrono i seguenti sketch: "GUI.pde", "WindowProperties.pde", "menu.pde", "Functions.pde", che contengono semplici routine e funzioni. Si mostra in fine il funzionamento dei due programmi:

Figura 5 - Funzionamento del terminale di controllo in Processing

16 La prima volta che si usa Arduino occorrerà installare l'apposito driver disponibile al pat: C:\Program Files\arduino-1.0.5\drivers\FTDI USB Drivers. Nel caso in cui il computer sia meno recente è possibile una incompatibilità tra il chip di virtualizzazione seriale dell'Arduino (sulla UNO rev.3 è un µcontroller, mentre sulla 2009 un FTDI232) e il driver USB dello stesso PC. Questo problema è stato risolto installando una versione meno recente dell'FTDI USB Drivers (release arduino-1.0). 17 Se aprendo il terminale, il quadretto in basso a destra "OSC data stream receive" non lampeggia significa che SuperCollider non ha iniziato/ultimato il boot e quindi non avviene il send dei dati. Per tanto chiudere l'applicazione Processing e attendere/riavviare il boot di ogni nodo in SuperCollider, quindi è possibile riaprire il terminale.

Page 8: Studio delle interazioni caotiche parte2 2elettroacustica.pbworks.com/w/file/fetch/70510673...Department of Meteorology, University of Reading, UK, in Elektor - Retronics, e inoltre

8

I parametri sono stati impostati via OSC attraverso SuperCollider18:

Figura 6 - Invio dei dati mediante OSC da SuperCollider verso Processing E' opportuno sottolineare che i dati relativi agli slider subiscono un "lag" prima di essere inviati via OSC, ciò è importante al fine di preservare la deviazione delle orbite, e la struttura degli attrattori, evitando di entrare in un Large Limit Circle. Verrà approfondito in seguito lo studio dell'andamento dei parametri. I pulsanti in grigio, viola e giallo, sono relativi all'algoritmo "cronometro" in SC. Esso servirà durante l'esecuzione per stabilire il tempo trascorso: il pulsante "Clock" apre la sottofinestra visibile in Fig.7, "start" avvia il conteggio in formato mm:ss, "stop" azzera il conteggio, "pause" blocca il contatore provvisoriamente.

Figura 7 - Semplice cronometro in SC con SendTrig e OSCFunc su AppClock Una altra osservazione importante deve essere fatta in merito al controllo "hysteresis" posto sull'interfaccia mostrata in Fig.6, in pratica si tratta della frequenza di taglio dei filtri passa-basso usati per filtrare i controlli a kr, in modo da creare un "lag" dei parametri. Per attivare il buffer audio e gli oscillatori complessi occorre accendere il trasformatore esterno, quindi il led rosso sul pannello anteriore dell'hardware segnalerà la corretta alimentazione. Tecniche alla base della composizione Le possibilità compositive sono state stabilite in base all'analisi delle zone di transizione e scegliendo tra differenti modalità di controllo digitale, in particolare è stato sperimentato: un controllo deterministico mediante configurazioni di preset, un controllo deterministico con funzioni di variazione e un controllo in feedback con algoritmi di "self-control"19. In tal sede ci si è orientati, per praticità, verso una soluzione che è un compromesso tra il controllo dei set e il controllo mediante funzioni, infatti la tecnica è quella di modificare gruppi di parametri filtrandone l'andamento nel tempo, con un certo rolloff.

18 Per settare i parametri direttamente dal terminale in Processing è opportuno interrompere la ricezione dei dati OSC premendo il tasto 'o'; riattivare con 'r'. 19 La possibilità di sfruttare un procedimento di autoregolazione sembrava inizialmente quella più interessante ma durante i test è stato valutato che si ottengono comportamenti che si discostano dal pensiero compositivo, per questo motivo il problema dell'auto-controllo, che necessita inoltre di adeguati algoritmi per l'analisi del segnale, sarà posto come sviluppo successivo: il problema è che si vuole indagare sulle varietà emergenti dal sistema stesso e non da quelle di un sovra-meccanismo di autoregolazione, infatti il risultato sarebbe quello di un sistema complesso che governa a sua volta un sistema complesso e ciò non è in linea con la ricerca condotta in tal sede.

Page 9: Studio delle interazioni caotiche parte2 2elettroacustica.pbworks.com/w/file/fetch/70510673...Department of Meteorology, University of Reading, UK, in Elektor - Retronics, e inoltre

9

Il compito dell'esecutore sarà quello di agire sui set stabiliti in partitura e visitare l'intorno dei parametri di un determinato attrattore, al fine di scorgere particolari interazioni, andamenti caotici e perturbazioni dei pattern. Le modalità operative sono incluse in una partitura che presenta semplicemente: i dati dei set, i tempi di attacco e durata dei parametri, l'andamento di ampiezza e la disposizione pseudo-quadrifonica d'ascolto. Partitura d'esecuzione basata sulle transizioni di stato Inoltre cosa deve fare l'esecutore? eventuale interfaccia in SC e modalità operative, scelte di diffusione sonora, disposizione pseudo-quadrifonica d'ascolto

Page 10: Studio delle interazioni caotiche parte2 2elettroacustica.pbworks.com/w/file/fetch/70510673...Department of Meteorology, University of Reading, UK, in Elektor - Retronics, e inoltre

10

Rappresentazione dello spazio delle fasi La composizione si estende anche all'ambito visuale, è stata prevista la proiezione dei segnali di uscita dal sintetizzatore caotico. L'idea è quella di visualizzare le forme del caos attraverso un oscilloscopio in modalità x,y, che mostri i vari andamenti dello spazio delle fasi, durante la performance in tempo reale. Questo tipo di fruizione delle forme del caos risulta interessante soprattutto dal punto di vista estetico e rende più chiara la discriminazione di particolari strutture percepibili all'ascolto. E' stato scritto un programma in linguaggio SuperCollider che, tra le altre funzionalità, carica, al boot dei nodi sul server, una finestra grafica in modalità full-screen usata per effettuare lo scope del contenuto dei bus audio provenienti dall'input del convertitore. Vengono inoltre settati in modo automatico i canali in modalità x,y e il colore bianco su nero. Per effettuare questa semplice operazione in SC si è dovuto ricorrere ai metodi relativi alla classe Scope del server internal20 e, per la necessita di implementare anche altri algoritmi, ad es. di smistamento e controllo dei dati OSC, la struttura del patch è solo in apparenza leggermente sofisticata:

Figura 4 - Diagramma di flusso relativo alla visualizzazione grafica, GUI e messaggi OSC Struttura di controllo e gestione dei parametri Il controllo digitale dello spazio dei parametri è essenziale al fine di individuare, con una certa precisione, i punti di biforcazione e le interazioni possibili tra due attrattori strani. La figura seguente mostra uno schema esemplificativo della struttura complessiva del sistema hardware/software: 20 In effetti in SC esiste una differenza tra lo scope del server interno e quello del localhost, è come se si trattasse di due funzioni distinte in cui interviene un overloading degli operatori.

boot localhost

OSC send bus input

X, Y scope Buffer scope

metodi dell'istanza di scope

SuperCollider

To Processing interface

boot internal

GUI

Page 11: Studio delle interazioni caotiche parte2 2elettroacustica.pbworks.com/w/file/fetch/70510673...Department of Meteorology, University of Reading, UK, in Elektor - Retronics, e inoltre

11

Figura 5 - Schema di principio del software e comunicazione con l'architettura hardware

Con l'uso di un'interfaccia digitale è possibilità definire la variazione delle grandezze elettriche del sistema al fine di controllare via software le dinamiche caotiche presenti nel segnale prodotto da sintetizzatore. In questo modo il front-end definisce la macrostruttura temporale a più alto livello (software), mentre ogni evento è generato dalla configurazione di oscillatori non-lineari a più basso livello (hardware).

livello Software

livello Hardware

Configurazione di oscillatori di Chua

ADC

MAPPING

INVIO OSC

yx,

COMUNICAZIONE SERIALE

Interfaccia controllo digitale e PWM basata su 2N2222 e 4N35

Terminale di comunicazione "Control Terminal v0.3.0.pde"

Firmware "receivePWMeDigitalPinStatus.ino"

Alimentazioni

MIXER

SuperCollider

Processing

Arduino

CONTROLLO

criteri di variazione e assegnazione dei parametri

Bus dati

Bus audio

BUFFER

21,VV

Page 12: Studio delle interazioni caotiche parte2 2elettroacustica.pbworks.com/w/file/fetch/70510673...Department of Meteorology, University of Reading, UK, in Elektor - Retronics, e inoltre

12

CARATTERISTICHE DEL SINTETIZZATORE DIGITALE DI SEGN ALI CAOTICI Gli aspetti tecnici della realizzazione del sistema elettronico sono significativi per comprendere le scelte e le nuove aspettative sul piano compositivo musicale. Di seguito si affrontano i temi relativi al problema del controllo delle grandezze elettriche del circuito e le tecniche di interfacciamento al software. Individuazione dello spazio dei parametri A seconda dei valori capacitivi e resistivi della rete formata da due circuiti di Chua, in accoppiamento lineare, è possibile modificare il relativo spazio delle fasi. I risultati sonori fondamentali sono:

Funzioni continue, determinate dai Punti fissi Oscillazioni armoniche, definite dai Cicli limite Moti di turbolenza caotica, che si manifestano con Scroll e Double Scroll

In alcuni punti estremi dell'intervallo dei parametri è possibile giungere al cosiddetto orizzonte fisico del sistema, ovvero uno stato particolare che nell'oscillatore caotico di Chua corrisponde ad un picco di massima intensità (o energia) alla frequenza di

KHz234.324.2 ÷≅ 21. I parametri da controllare, come già sperimentato manualmente nei precedenti lavori [1], sono relativi ai trimmer sui due circuiti di Chua:

Figura 6 - Schema generale di due circuiti di Chua accoppiati con una resistenza (R8)

21 Tale oscillazione si manifesta con un'ampiezza molto maggiore rispetto al resto del materiale sonoro possibile, nel caso estremo si tratta di un tono puro che risulta, in base alle curve isofoniche, in un punto sensibile della percezione uditiva. Per questo motivo già nei precedenti lavori si è esclusa la possibilità di sfruttare questa caratteristica del circuito come elemento formale appartenente all'opera

Chua's circuit 1

Chua's circuit 2

C2'

C1'

C1

C2

R'

R

Vx' Vy'

Vx Vy

Rcp

Page 13: Studio delle interazioni caotiche parte2 2elettroacustica.pbworks.com/w/file/fetch/70510673...Department of Meteorology, University of Reading, UK, in Elektor - Retronics, e inoltre

13

In relazione ai controlli variabili "con continuità" (si veda Fig.6 e lo schema in Appendice A), è stato fissato il seguente spazio dei parametri:

parametro controllo nodo sul circuito

Regolazione tensione/corrente

assi Circuito

RCP PWM1 R8 Vcp - RC2 PWM2 R15 - C2 V2 x RC1 PWM3 R18 - C1 V1 y R PWM4 R1 Ir biforcazioni

Chua 1

R' PWM5 R16 V1 biforcazioni R'C2 PWM6 R32 - C5 V2 x R'C1 n.c. R34 - C4 I'r Y costante

Chua 2

Tabella 1 - Parametri relativi al controllo PWM

Il circuito usato per la variazione delle grandezze sia resistive che capacitive è il seguente:

Figura 7 - Interfaccia digitale per il controllo dei circuiti di Chua Si tratta di un semplice schema per l'interfacciamento di circuiti, in particolare il controllo dei circuiti caotici è un'applicazione classica della teoria dei circuiti avanzati e dei generatori controllati. Per un approfondimento di tipo ingegneristico si rimanda alla tesi di riferimento [3, p.45]. Procedendo a partire dalla parte sinistra del circuito in Fig.7, l'interfaccia è composta da 6 transistor 2N2222 di tipo NPN, il cui scopo è quello di non sovraccaricare le porte di I/O digitale di Arduino, essendo il fan-out22 pari a 40mA: su ogni porta il carico sarebbe costituito dall'assorbimento di due led in serie. Il primo LED è a luce diffusa, ed è usato per l'indicazione di stato della PWM (modulazione a larghezza di impulso), mentre l'altro è ad alta luminosità ed è interno all'optoisolatore.

22 Ovvero la capacità di carico massima per ogni pin.

Page 14: Studio delle interazioni caotiche parte2 2elettroacustica.pbworks.com/w/file/fetch/70510673...Department of Meteorology, University of Reading, UK, in Elektor - Retronics, e inoltre

14

Il bus di uscita dagli optoisolatori giunge quindi ai parametri riportati in tabella 1 sul circuito. I valori resistivi vengono guidati dalla variazione di resistività dell'LDR (o

fotoresistenza) da Ω÷ K202 dell'optoisolatore: maggiore sarà la tensione sul LED interno, e quindi la quantità di luce emessa, minore sarà la resistenza23, in funzione della scala discreta di valori fornita dall'output "analogico" di Arduino. Con Arduino UNO, e quindi con il microcontrollore ATmega328, l'output PWM è a 8-bit, quindi in uscita il valore

massimo esprimibile è 25628 = , ne deriva che l'intervallo di valori discreti24 è pari a

[ ]VV 5,0]255,0[ +⇒ , per una risoluzione (o passo minimo di variazione) di:

VVccV

Vbitn

refres 019.0

256

5

2≅+== − (eq.2)

in realtà, per usufruire di una maggiore stabilità, si è scelto di regolare una tensione di fondo scala proveniente non da Arduino ma da un regolatore lineare di tensione 7809

collegato a un trasformatore esterno: i Vcc5+ forniti dall'output digitale della scheda

Arduino pilotano solo il carico costituito dalla base del transistor, mentre VVref 9+= è il

fondo scala da cui risalire per il calcolo della precisione effettiva:

VVccV

Vbitn

refres 035.0

256

9

2≅+== − (eq.3)

In tal caso con una tensione VVref 5> la risoluzione è leggermente diminuita ma essa è

comunque adeguata per questa applicazione25. Per la legge di Ohm è possibile calcolare il minimo valore di tensione ai capi della fotoresistenza, supponendo il caso di massima

luminosità del LED, corrispondente al minimo valore di resistività Ω≅ KRLDR 2 , e una

corrente assorbita da un circuito di Chua in funzionamento, pari a mAICH 100≅ , si ha

che: mVIRV CHLDRLDR 200=⋅= . Proseguendo con l'illustrazione del funzionamento dell'interfaccia, si giunge alla parte destra del circuito mostrato in figura 7. Si tratta di una serie di switch digitali 4N35 (o 4N32,

23 Nella fotoresistenza la resistenza è inversamente proporzionale alla quantità di luce, più in particolare il valore in Ohm diminuisce al crescere dell’intensità della luce che lo investe sulla parte foto-sensibile. In tal caso, lo spettro elettromagnetico utile è esteso al campo del visibile e ad una breve zona nell'infrarosso, rispetto al fotodiodo e al fototransisor. 24 Per avere una tensione continua a partire dal segnale PWM è possibile usare un filtro passa-basso RC che in pratica riporta la "media" nel tempo degli impulsi. A seconda dei valori di ingresso del carico collegato all'uscita, e a seconda della frequenza del segnale PWM, vanno calcolati R e C. Tuttavia un filtro di questo tipo è caratterizzato da una propria velocità di risposta transitoria e lascia passare il disturbo di fondo costituito dalla portante del segnale PWM. Nella tecnica PWM classica la frequenza del segnale è costante, ciò che varia è invece il duty cycle dell'onda quadra. Su Arduino tale frequenza è impostabile settando specifici timer interni al microcontrollore. 25 Si è preferito adottare questa soluzione con transistor alimentati da tensione esterna proprio per pilotare i LED di controllo in modo stabile e sicuro, rendendo il pin-out di Arduino indipendente dal carico dei LED.

Page 15: Studio delle interazioni caotiche parte2 2elettroacustica.pbworks.com/w/file/fetch/70510673...Department of Meteorology, University of Reading, UK, in Elektor - Retronics, e inoltre

15

CNY17)26 che permettono di commutare una rete di condensatori collocabili in parallelo ai 4 totali dei due oscillatori di Chua. Le possibilità che si presentano sono descritte nella seguente tabella:

parametro controllo Capacità in parallelo a

Componenti del circuito

Circuito

SWT1 collettore-emettitore C2 C2 SWT2 // C2 C2 SWT3 // C1 C1

Chua 1

SWT4 // C2' C5 SWT5 // C2' C5 SWT6 // C1' C4

Chua 2

Tabella 2 - Parametri relativi al controllo degli switch sui capacitori

La tabella indica che, se ad es. si commuta lo switch SWT1 è possibile comporre un parallelo su C2 nel primo circuito di Chua, commutando SWT2 è possibile aggiungere un altro parallelo di capacità sempre su C2, mentre a seguire, commutando il prossimo switch, si attiva stavolta un parallelo su C1 nel medesimo circuito di Chua. Lo stesso discorso vale per i condensatori contrassegnati da un apice, appartenenti al secondo circuito caotico. Per ogni valore capacitivo è possibile commutare un parallelo di tre condensatori, semplicemente configurando manualmente alcune capacità predisposte su 6 socket da 3 posti, in altre parole nello chassis del sintetizzatore caotico è possibile modificare fisicamente il valore di ogni parallelo, sostituendo differenti valori dei condensatori. Il circuito della sezione dei collegamenti possibili su una singola capacità è il seguente:

Figura 8 - Schema degli switch digitali per il controllo delle capacità in parallelo

26 La differenza tra questi integrati è che la serie 4Nxx è compatibile con la disposizione dei pin mentre il CNY è equivalente ma non compatibile con i pin.

Page 16: Studio delle interazioni caotiche parte2 2elettroacustica.pbworks.com/w/file/fetch/70510673...Department of Meteorology, University of Reading, UK, in Elektor - Retronics, e inoltre

16

La figura mostra che è possibile selezionare digitalmente, tramite i 4N35 sui pin di out di Arduino, un massimo di 6 condensatori in parallelo a una delle 2 capacità C su un circuito di Chua. La matrice generale dei collegamenti possibili è la seguente:

Figura 9 - Matrice dei collegamenti possibili dei condensatori In realtà i socket SV12 e SV9 sono solo da 3 posti, quindi è possibile configurare, per i rispettivi parametri, un massimo di 3 capacità in parallelo. Analisi dell'influenza dei capacitori sullo spazio degli stati Per mostrare sperimentalmente l'effetto dell'aggiunta dei capacitori, sulla rete di oscillatori, si mostra di seguito il risultato di alcuni test effettuati sulla commutazione progressiva delle capacità in parallelo. Per questi esperimenti è stata scelta la seguente configurazione:

Figura 10 - Diagramma dei collegamenti per la composizione dei paralleli di capacità sui due circuiti di Chua

C1 (10nF)

C2 (100nF)

C1* (C4) (10nF)

C2* (C5) (100nF)

100nF (104)

100nF (104)

100nF (104)

100nF (104)

100nF (104)

100nF (104)

10nF (103)

Page 17: Studio delle interazioni caotiche parte2 2elettroacustica.pbworks.com/w/file/fetch/70510673...Department of Meteorology, University of Reading, UK, in Elektor - Retronics, e inoltre

17

I test sono stati condotti mantenendo i parametri resistivi costanti nel tempo ed attivando una alla volta i componimenti di capacità, dalla prima alla sesta. In base ai dati forniti nel diagramma in Fig.10 ed essendo la capacità totale, di n condensatori in parallelo, data dalla somma delle singole capacità, si hanno in questo caso le capacità totali

∑=

=k

ikeq CC

1: nFCeq 400= su C2, nFCeq 110= su C1, nFCeq 300= su C2*,

nFCeq 20= su C1*. Lo scopo di queste grandezze aggiuntive è quello di alterate i valori

delle coppie di parametri capacitivi sui rispettivi due oscillatori complessi. Empiricamente, per certi valori dei parametri R1-8-15-16-18-32-34, la commutazione digitale di più capacità selezionate in parallelo a C2, C1, C5, C4, provoca, nelle reti di

Chua implementate, l'effetto di abbassamento della frequenza base bf percepita27. Tale comportamento è banale nel caso dei cicli limite, e quindi dei suoni a spettro pseudo-armonico o armonico, caratterizzati da una frequenza fondamentale chiaramente riconoscibile. Ma alcuni effetti interessanti emergono su alcuni tipi di attrattori caotici, dove

l'azione dei condensatori non solo riduce lievemente bf , ma modifica lo stato di biforcazione del sistema. I seguenti spettrogrammi mostrano il caso della distruzione di un attrattore strano double scroll, ottenuto per certi valori resistivi. Con l'aggiunta progressiva dei condensatori tale attrattore converge progressivamente a un ciclo limite:

Figura 11 - Spazio delle fasi e spettrogramma di un attrattore double scroll

27 Sperimentalmente all'aumentare della capacità equivalente in parallelo eqC diminuisce leggermente

la frequenza fondamentale degli oscillatori non-lineari.

Page 18: Studio delle interazioni caotiche parte2 2elettroacustica.pbworks.com/w/file/fetch/70510673...Department of Meteorology, University of Reading, UK, in Elektor - Retronics, e inoltre

18

Questa prima analisi è stata condotta nel caso del normale funzionamento del sistema, con i classici valori di capacità dei circuito di Chua, ovvero C2-C2'=100nF, C1-C1'=10nF. Aggiungendo il primo parallelo di capacità, attraverso la commutazione di SWC1, il risultato è una frequenza base ancora più o meno stabile, ma ciò che emerge è la struttura armonica sottostante, in altre parole il pattern dell'attrattore comincia ad essere più semplice e le orbite deviano di poco la loro direzione, come mostrato in Fig.12:

Figura 12 - Orbite filtrate dell'attrattore double scroll, nel caso di SWC1 attivo

Da un punto di vista musicale si comprende che tale possibilità può essere sfruttata per filtrare lo spettro troppo complesso di un determinato attrattore. Attivando il parametro SWC2 l'effetto è quello di ridurre ulteriormente le bande di rumore attorno alle armoniche del segnale (si veda Fig.13a-b).

Figura 13a - Spazio delle fasi relativo a un double scroll in equilibrio con SWC2

Page 19: Studio delle interazioni caotiche parte2 2elettroacustica.pbworks.com/w/file/fetch/70510673...Department of Meteorology, University of Reading, UK, in Elektor - Retronics, e inoltre

19

Figura 13b - Effetto di accentuazione dello spettro armonico in un double scroll con SWC2

Attivando il parametro SWC3 si assiste alla distruzione della configurazione armonica e torna un attrattore che sembra sdoppiarsi approssimativamente in quattro orbite, come mostrato nell'analisi seguente:

Figura 14 - Ritorno all'attrattore per mezzo di SWC3 attivo

Fino a questo momento la frequenza base ha subito un leggero abbassamento, come testimoniato nei seguenti spettrogrammi, dove l'attrattore formatosi in precedenza comincia a trasformarsi in un ciclo limite:

Page 20: Studio delle interazioni caotiche parte2 2elettroacustica.pbworks.com/w/file/fetch/70510673...Department of Meteorology, University of Reading, UK, in Elektor - Retronics, e inoltre

20

Figura - 15 Distruzione dell'attrattore double scorll mediante SWC4

Figura - 16 Comparsa di uno Scroll singolo mediante SWC5

Page 21: Studio delle interazioni caotiche parte2 2elettroacustica.pbworks.com/w/file/fetch/70510673...Department of Meteorology, University of Reading, UK, in Elektor - Retronics, e inoltre

21

Figura - 17 Scroll tendente al Ciclo limite, commutando SWC6 Il fatto che l'attrattore double scroll tenda al singolo scroll, e poi al ciclo limite, corrisponde a percorrere la strada verso il caos all'inverso, ovvero corrisponde a ridurre progressivamente l'energia disponibile tale che aumenti il grado di sintropia28, fino ad arrivare al punto fisso e al punto in cui l'energia è nulla. Da un punto di vista qualitativo, rispetto alla gestione manuale dei trimmer, l'interfaccia digitale ha prodotto uno spostamento dei punti di biforcazione e ciò è dovuto ai valori in Ohm e Farad introdotti inevitabilmente ai capi degli accoppiatori e dei commutatori di capacità29, tuttavia il vantaggio resta dato dal fatto che è possibile intervenire su tutte le zone dello spazio delle fasi, anche contemporaneamente, e con un certo grado di velocità. E' opportuno in fine sottolineare che, per il brano in esame, è stata usata la seguente configurazione di condensatori, essa ha dato alcuni risultati soddisfacenti in termini di possibilità di variazione del moto caotico, per questo motivo ogni forma nello spazio delle fasi è determinata dai valori impostati con queste capacità:

28 L'entropia S è una grandezza che da una misura del caos in un sistema fisico. In termodinamica classica, S è una funzione di stato introdotta con il secondo principio della termodinamica. Quando un sistema passa da uno stato ordinato ad uno disordinato la sua entropia aumenta e ciò offre indicazioni sulla direzione in cui evolve spontaneamente un sistema. L'approccio statistico della meccanica quantistica mette in correlazione l'entropia con il concetto di ordine, indicando le possibili diverse probabilità in cui può trovarsi macroscopicamente un sistema. La sintropia è simmetricamente opposta ad S e il suo significato coincide con quello di reintegrazione dell'ordine e di informazione. 29 E' opportuno considerare che gli switch digitali optoisolatori, come ad es. quelli della famiglia 4Nxx, funzionano internamente con un fototransistor: quando sulla sua base (fotosensibile) si presenta una certa corrente, allora lo stato di saturazione produce un cortocircuito tra collettore-emettitore e può avvenire il collegamento fisico del carico, tuttavia è stato misurato, con il multimetro, una certa resistenza tra collettore-emettitore nel caso di saturazione e questo è un dato non trascurabile in quanto influisce sul calcolo complessivo della rete di capacità che quindi risulta di fatto una rete RC. I valori di resistività misurati sono:

ΩK93. su SWT1 (un CNY17), ΩK59. su SWT2 (4N35), ΩK54. su SWT3 (4N35), ΩK86. su SWT4 (CNY17), ΩK82. su SWT5 (CNY17), ΩK83. su SWT6 (CNY17).

Page 22: Studio delle interazioni caotiche parte2 2elettroacustica.pbworks.com/w/file/fetch/70510673...Department of Meteorology, University of Reading, UK, in Elektor - Retronics, e inoltre

22

Figura bo - Configurazione definitiva dei condensatori usata per l'esperimento delle interazioni caotiche parte 2

Problematiche relative alla topologia del suono Nelle applicazioni di controllo dell'oscillatore di Chua un problema noto è quello dalla imprevedibilità e riproducibilità del transitorio tra gli attrattori corrispondenti a parametri differenti. In altre parole, a causa della natura complessa dello spazio di stato, non è detto a priori che al semplice cambiamento di configurazione dei parametri corrisponda una transizione verso un nuovo attrattore. E' questo un problema di topologia del suono30. L'attrattore verso cui il sistema evolverà dipende dalla storia precedente e quindi, dal punto di vista musicale, all'atto dell'esecuzione del brano si potranno presentare stati di transizione più o meno differenti, e ciò accade per definizione [7]. Di conseguenza, per tornare su uno specifico attrattore non bisogna memorizzare il solo valore del parametro corrispondente ma anche il suo andamento continuo, il percorso specifico. Per questo motivo, nel caso più semplice, può essere utile filtrare i controlli con un passa-basso a cut-off piccolo, in modo da definire un lag, una "isteresi", che costringa i controlli a giungere al valore noto di target solo dopo un certo tempo di escursione, con "continuità". La velocità di variazione dei parametri deve essere sufficientemente lenta altrimenti si provocherebbero ampie oscillazioni ricadenti in un LLC (Large Limit Circle) della traiettoria. Come suggerito da Choi, Bargar, Mayer-Kress e altri [8, 9], i transitori possono essere

effettuati con un tempo più lento di mst 10=∆ . Altra soluzione per tenere sotto controllo eventuali frequenze ad alta intensità è quella di variare simultaneamente il valore di tutti i componenti. Quando, nel circuito di Chua, il valore della resistenza R è diminuito al punto da rendere il sistema stabile, un valore di tensione, ad es. V1, sarà costante e quindi il suo spettro sarà caratterizzato da un unico picco posto all'origine, con ampiezza pari alla potenza massima. Considerando sempre la V1, un ciclo limite rappresenta una situazione in cui l'andamento è in equilibrio stabile, si ha infatti un segnale periodico simile a una sinusoide31. In ogni caso ci si aspetta un picco dominante32 alla frequenza del segnale più vicino alla sinusoide

30 In uno spazio topologico esistono solo i concetti di forma e grado di vicinanza degli oggetti, non è definita la misura di distanza tra i punti. Si tratta di studiare i luoghi ovvero le proprietà di figure e forme che non cambiano quando vengono effettuate deformazioni senza strappi, sovrapposizioni o incollature. 31 In realtà non si tratta di una perfetta sinusoide in quanto V1,V2 danno origine a un andamento non perfettamente ellittico ma dal piano orbitale leggermente piegato. 32 Va di fatto considerata anche la componente continua del segnale risultante, che può presentare un valore di ampiezza maggiore o uguale al picco di oscillazione principale. Tale funzione rappresenta la componente continua del sistema.

C1 (10nF)

C2 (100nF)

C1* (C4) (10nF)

C2* (C5) (100nF)

100nF (104)

100nF (104)

n.c

100nF (104)

100nF (104)

100nF (104)

10nF (103)

Page 23: Studio delle interazioni caotiche parte2 2elettroacustica.pbworks.com/w/file/fetch/70510673...Department of Meteorology, University of Reading, UK, in Elektor - Retronics, e inoltre

23

e, in funzione dell'n-mo ordine del ciclo limite, possono aggiungersi n armoniche superiori, o anche delle componenti spurie, di ampiezza inferiore, che arricchiscono lo spettro. E' opportuno sottolineare che Matsumoto, Karhlert, Strogatz, e altri [7; 10, p.12], affermano che, in un circuito caotico del tipo in esame, la frequenza di oscillazione della tensione può essere approssimata da:

22

1

LCπω = (eq.444)

Chua ha dimostrato in modo sperimentale che la frequenza di oscillazione è pari a

KHz371.2 ÷≅ . Il valore di frequenza della tensione è inversamente proporzionale al valore di L e C2 per ciò si può variare l'induttanza o la capacità per modificare la frequenza del segnale senza modificare l'ampiezza, che dipende invece dalle condizioni iniziali33. Decrementando il valore di resistenza R è possibile ottenere invece un ciclo limite di ordine 2, il suo spettro possiede un picco principale in corrispondenza della frequenza di oscillazione della sinusoide e un picco superiore ad intensità dimezzata, così procedendo, lo spettro armonico viene a costruirsi, a partire dalla fondamentale ω , con la comparsa di nuove orbite interne al ciclo limite di n-mo ordine. Le frequenze armoniche sono sottomultipli di potenze del due della fondamentale e il loro valore di ampiezza decresce in modulo rapidamente, fino al livello delle componenti spurie del segnale [7]. Una volta che la spirale di Chua si infittisce essa collide e si trasforma in un attrattore strano di Chua ad andamento intermittente, una via di mezzo tra un andamento periodico e uno spettro uniforme, e compaiono inoltre componenti a bassa frequenza. Al variare di R il segnale tende a diventare più complesso e si stabilizzano una serie di picchi di pari intensità tra la frequenza fondamentale e la continua, si creano di fatto le condizioni tali affinché si possa manifestare un double scroll. Trattandosi di un caso di equilibrio instabile, la configurazione dell'attrattore può protrarsi nel tempo. Si parla invece di condizione critica quando il sistema diventa instabile e l'orbita si allontana eseguendo una traiettoria a spirale particolare. In questo caso viene preservata la frequenza fondamentale, e poche repliche a bassa intensità, e si forma attorno una banda di rumore34. Per modificare il risultato sonoro è possibile variare il livello di saturazione di un OpAmp, ma anche la stessa tensione duale di alimentazione. Nello specifico, sfruttando una

tensione duale asimmetrica, ad es. VVVV 10,4 −=+= −+, si spostano i valori dei

break-points degli operazionali35. Lo spettro risultante da uno o più circuiti di Chua può presentare picchi di forte ampiezza corrispondenti alla frequenza fondamentale e picchi più deboli corrispondenti alle sue repliche. Nel caso dell'attrattore a spirale, il numero di periodi della rispettiva forma d'onda 33 Ibid. [10, p12]. 34 I segnali propriamente caotici presentano uno spettro di potenza continuo all'interno di una certa banda di frequenza. 35 Il sistema sviluppato da Chua è stato usato come modello fisico perché può produrre, in determinate regioni dello spazio dei parametri, alcuni comportamenti caotici relazionabili all'instabilità di suoni periodici di strumenti acustici. L'asimmetria della funzione di rete non-lineare permette di generare suoni stabili caratteristici di strumenti musicali a doppia canna, come il fagotto o l'oboe, aventi due membrane oscillanti poste in contatto tra l'oro. La caratteristica non-lineare porta a un circuito sempre oscillante (stabile) per qualsiasi valore di R, al limite si avrà un ciclo limite di n-mo ordine, ma mai un double-Scroll. Una caratteristica di tensione simmetrica porta invece alla generazione di segnali periodici più semplici simili a quelli del clarinetto o del violino.

Page 24: Studio delle interazioni caotiche parte2 2elettroacustica.pbworks.com/w/file/fetch/70510673...Department of Meteorology, University of Reading, UK, in Elektor - Retronics, e inoltre

24

riflette grossomodo il numero di ampiezze dello spettro e il picco di maggiore intensità, nel dominio spettrale, corrisponde all'orbita di rientro dell'attrattore verso il punto iniziale, nello spazio delle fasi. In generale per spiegare la presenza dell'orbita di ampiezza massima è possibile affermare che il picco maggiore è dato dall'entrata in saturazione del dispositivo non-lineare, un fenomeno che nella precedente relazione era stato denotato con il termine di "risonanza del sistema"36. Con questa rete di sistemi complessi la diversa sensazione di tono non è data semplicemente dal valore della frequenza base di oscillazione, ma anche dal cambiamento del numero e della vicinanza dei picchi nello spettro risultante, come è noto dalla teoria psicoacustica e quindi in base all'esistenza dei differenti fattori che influenzano la sensazione di altezza. Bisogna in fine considerare alcuni stati intermedi in cui avvengono modulazioni di ampiezza, tipi particolari di intermittenza del segnale e altri stati di perturbazione degli attrattori, come avviene ad es. nel caso dell'insorgere di disturbi indotti, evidentemente, dalla rete di collegamenti. Energia fornita al sistema In qualsiasi circuito per applicazioni audio lo stadio di alimentazione non deve influire negativamente, in termini di disturbi di rete ed instabilità elettriche, sul segnale di uscita. Nel particolare di questo progetto, l'alimentazione per i circuiti di Chua, e quella per il

buffer di pre-amplificazione, è di tipo Duale (tensioni Vcc± simmetriche a GND), mentre per l'interfaccia digitale la tensione è singola. La tensione duale viene fornita da un alimentatore ATX modificato, si tratta di un tipo di dispositivo che normalmente funziona per alimentare la scheda madre dei PC: limita quindi i picchi di tensione, filtra i disturbi di rete e si protegge da inversioni di polarità. Nello specifico è stato modificato un vecchio ATX predisponendolo come "alimentatore da laboratorio" multi corrente, con alcune funzioni di diagnostica:

Figura M - Schema della modifica apportata su un comune ATX

36 Gli eventi di massima ampiezza di oscillazione, che sono stati riscontrati già nel precedente lavoro, sono prodotti da un ciclo limite che corrisponde all'orizzonte fisico del sistema in cui si produce una "risonanza" alla massima energia. Questo ciclo limite si traduce in un segnale approssimativamente sinusoidale con frequenza pari a 2-3KHz.

Page 25: Studio delle interazioni caotiche parte2 2elettroacustica.pbworks.com/w/file/fetch/70510673...Department of Meteorology, University of Reading, UK, in Elektor - Retronics, e inoltre

25

Il transistor posto sul bit di Power OK accende il LED1 che segnala il corretto funzionamento dell'alimentatore, mentre il LED rosso indica l'accensione e quindi la

corretta alimentazione di rete. La tensione duale Vcc12± , ricavata attraverso l'alimentatore, arriva all'ingresso del dispositivo caotico dove è presente un particolare multi regolatore lineare progettato per distribuire più valori di tensione differenti verso i vari circuiti che compongono il sistema:

Figura X - Schema del regolatore lineare multi tensione mono/duale

In particolare si ha che i due circuiti di Chua richiedono una alimentazione pari a Vcc9± ,

mentre l'interfaccia digitale richiede un'alimentazione singola a Vcc9+ e il buffer di pre-

amplificazione richiede una tensione duale di Vcc12± . Per il corretto funzionamento del motore di generazione sonora, quindi della rete dei circuiti di Chua, è fondamentale una tensione stabile e priva di rumore, e per questo motivo, in caso di disturbo sulla rete dell'ATX, è possibile scollegare i pin dal regolatore lineare interno e connetterli direttamente a due fonti di energia indipendenti, costituiti da due batterie a 9-Volt in configurazione duale. Il dettaglio del connettore di ingresso per l'alimentazione è il seguente, esso è stato ricavato da una porta RS232:

Figura X - Connettore di alimentazione del sistema caotico

Page 26: Studio delle interazioni caotiche parte2 2elettroacustica.pbworks.com/w/file/fetch/70510673...Department of Meteorology, University of Reading, UK, in Elektor - Retronics, e inoltre

26

Per quanto concerne lo stadio pre-amplificatore è stato adottato un semplice circuito basato sull'operazionale TL082 (IC1). La sua funzione è di regolazione delle tensioni di

uscita 21,VV corrispondenti ai valori degli assi yx, . Essendo IC1 un doppio operazionale è possibile sfruttarlo per amplificare un segnale stereo. Il circuito seguente37 mostra alcune sezioni differenti, in particolare esso comprende: uno stadio di accoppiamento per segnali fino a 1MOhm di impedenza, una sezione di protezione fino a 150V in ingresso, una sezione di amplificazione pari a 1-10X e uno stadio di regolazione dell'ampiezza di uscita, con trimmer:

Figura mm - Circuito del pre-amplificatore di uscita CONCLUSIONI E SVILUPPI Durante la costruzione del sistema, e la sperimentazione del controllo digitale dei parametri, sono state considerate una serie di possibilità alternative. In particolare quasi tutte queste opzioni sono riconducibili a:

• Automazione deterministica mediante lista di funzioni di controllo • Controllo adattivo ad anello chiuso

37 A tal proposito si veda http://xoscope.sourceforge.net/hardware/hardware.html (09/10/2013).

Page 27: Studio delle interazioni caotiche parte2 2elettroacustica.pbworks.com/w/file/fetch/70510673...Department of Meteorology, University of Reading, UK, in Elektor - Retronics, e inoltre

27

Nel primo caso i valori vengono modificati in modo indipendente dal segnale risultante e quindi, in base alle proprietà descritte in precedenza38, si può dare luogo ad una instabilità che, per piccole variazioni dei parametri, porta all’entrata nel LLC della traiettoria delle variabili. In altre parole, questo metodo delle funzioni di escursione, che di fatto risulta un variante di controllo ad anello aperto, permette di raggiungere alcuni fini musicali ma non offre un adeguato controllo della transizione degli stati: non risolve il problema dell'imprevedibilità del comportamento del sistema. Il secondo caso viene in contro alla necessità di "risposta al comportamento del sistema", permette quindi di ridurre eventuali oscillazioni di massima ampiezza, che si discostano improvvisamente ed eccessivamente dal resto del materiale sonoro: l'idea è quella di effettuare una analisi in tempo reale delle caratteristiche del segnale, mediante algoritmi di machine listening39, al fine di discriminare eventuali spettri a righe che presentano il picco di energia alla frequenza fondamentale. A questo punto quando il valore RMS, o ad es. l'indice di flatness spettrale, sono al di sotto di una certa soglia, occorre riscalare l'ampiezza eccessiva del segnale in uscita. In SuperCollider è stato sperimentato un ciclo di feedback di controllo che riduce l'ampiezza del segnale in funzione del valore assoluto del reciproco, elevato a potenza, dei valori dei campioni fatti passare attraverso un banco di filtri accordati sulle frequenze più persistenti, emesse dal sintetizzatore caotico e analizzate allo spettrogramma. Il risultato è dato in base alla "storia" del sistema, e in effetti questa tecnica limita l'esplosione dell'orbita, ma uno svantaggio è che l'andamento può entrare in auto-oscillazione40, oppure si può ottenere l'effetto di ostacolare l'insorgere di determinate dinamiche spontanee, che risultano invece il punto centrale della ricerca delle emergenze sonore: è stato sperimentato che un semplice sistema di auto-regolazione ad anello chiuso costringe i parametri su andamenti monotoni41 e quindi, come sviluppo successivo, si può migliorare questa tecnica di feedback di controllo al fine di auto-regolare la risposta e preservare le transizioni verso determinati attrattori. L'idea è anche quella di automatizzare gli spostamenti lungo la "strada al caos", creando un tipo di interazione in feedback tra l'uscita del sintetizzatore e il segale stesso all'ingresso del convertitore, al fine di mettere in atto un procedimento adattivo, capace di correggere alcuni comportamenti estremi del sistema caotico. 38 Ci si riferisce in breve alle proprietà specifiche del sistema, ovvero al fatto che a determinate posizioni nello spazio dei parametri possono corrispondere risultati differenti nello spazio delle fasi. 39 In SuperCollider, a scopo di esercizio, si è partiti dall'applicazione del semplice envelope follower del segnale, studiando anche un algoritmo di misurazione della flatness spettrale basato su FFT. Il test condotto con envelope follower è stato effettuato sull'ampiezza del segnale in uscita da un filtro accordato sulla frequenza base, in modo tale da controllare l'attenuazione in funzione dell'energia di questa banda. 40 In realtà dipende dal valore dell'esponente che, nell'algoritmo classico di feedback esterno, regola il grado di sensibilità del feedback. Altre tecniche per ridurre l'auto-oscillazione sono: l'introduzione del delay del segnale, in modo tale da avere una semplice unità di ritardo o un semplice caso di filtro COMB (IIR) e l'introduzione di un lag dei parametri, il cui effetto è sempre quello di un ritardo ma che avviene a kr. 41 D'altro canto, per l'idea di preservare le dinamiche e gli andamenti del sistema stesso, non avrebbe molto senso introdurre tecniche di variazione stocastica.

Page 28: Studio delle interazioni caotiche parte2 2elettroacustica.pbworks.com/w/file/fetch/70510673...Department of Meteorology, University of Reading, UK, in Elektor - Retronics, e inoltre

28

BIBLIOGRAFIA [1] Silvestri S., (17/03/2013). Studio sulle applicazioni compositive di sistemi complessi: esperimento su interazioni caotiche - parte 1. Esame di tecniche di composizione elettroacustica I. [2] Madrid C., (2011). La farfalla e il ciclone, la teoria del caos e i cambiamenti climatici. Edizioni RBA Italia. [3] Amato G., (2005/2006). Realizzazione di un circuito caotico di Chua con regolazione digitale, Tesi di laurea in Ingegneria elettronica, Università di Napoli Federico II. [4] Chua O., Wah Wu C., Huang A., Zhong G., (1993). A Universal Circuit for Studying and Generating Chaos - Part I: Routes to Chaos. IEEE Transactions on Circuits and Systems - I: Fundamental Theory and Application, Vol. 40, No.10. [5] Chua O., Wah Wu C., Huang A., Zhong G., (1993). A Universal Circuit for Studying and Generating Chaos - Part II: Strange Attractors. IEEE Transactions on Circuits and Systems - I: Fundamental Theory and Application, Vol. 40, No.10. [6] Di Scipio A., (2000). Della turbolenza, Annotazioni sulle forme del suono e sulle forme del fare. Pubblicato in Konsequenz, 3/4. [7] Vallavanti R., (2002) Il circuito di Chua in ambito musicale. Politecnico di Milano http://www.geocities.ws/vallavanti/ [8] Mayer-Kress G., Choi I., Weber N., Bargar R., Hubler A., (1993). Musical signals from Chua’s circuit. CCRS Press. [9] Mayer-Kress G., Choi I., Bargar R., (1993). Sound synthesis and music composition using Chua’s oscillator, CCRS Press. [10] Fortuna L., Frasca M., Xibilia G. M., (2009). Chua's Circuit Implementations. Yesterday, Today and Tomorrow. World Scientific Series on Nonlinear Science, Series Editor: Leon O. Chua, Series A - Vol.65.

Page 29: Studio delle interazioni caotiche parte2 2elettroacustica.pbworks.com/w/file/fetch/70510673...Department of Meteorology, University of Reading, UK, in Elektor - Retronics, e inoltre

29

Appendice A: Schema di due circuiti di Chua in acco ppiamento lineare

Appendice B: Parte DSP relativa al programma "Contr olDeterministic_2.sc" /************************************************** ******************* Esperimento delle interazioni caotiche parte 2 22/09/2013 14:56:22 per la comunicazione OSC effettuare prima il boot in SC poi aprire il progra mma Processing *************************************************** ******************/ s.boot;

Chua 1

Chua 2

giratore: simulazione di L

diodo di Chua: resistore non-lineare

accoppiamento resistivo sui nodi R-C

1° parametro di biforcazione

2° parametro di biforcazione

2V 1V

'2V '1V

'RI

RI

* *

Page 30: Studio delle interazioni caotiche parte2 2elettroacustica.pbworks.com/w/file/fetch/70510673...Department of Meteorology, University of Reading, UK, in Elektor - Retronics, e inoltre

30

( s.reboot; s.options.device_("USB Audio CODEC"); //Server.local.options.device = "USB Audio CODEC"; Server.local.makeGui; Server.internal.makeGui; //s.makeGui Server.local.boot; //localhost for send OSC to ex ternal application (defoult 57110 ID, Port 9000) Server.internal.boot;//for scope visualizzation wi th specific methods ) ( s.waitForBoot( f = Buffer.alloc(Server.internal, 1024, 2); //scop e table //scope GUI h = Window("Phase Space", Window.screenBounds).fro nt; c = ScopeView(h, h.bounds); c.bufnum = f.bufnum; //init buffer of scopeview wi th number of allocated buffer c.style=2; c.yZoom=3; SynthDef(\det, arg ctrl_pwm= #[0, 0, 0, 0, 0, 0], ctrl_trig= #[0 , 0, 0, 0, 0, 0], lag=0.05; var sig, cutoffs, filters=Array.newClear(6); var pwm_sliders=['/PWM_1', '/PWM_2', '/PWM_3', '/ PWM_4', '/PWM_5', '/PWM_6']; var out_digital=['/OUT_1', '/OUT_2', '/OUT_3', '/ OUT_4', '/OUT_5', '/OUT_6']; //send stream val to Processing 6.do( |i| SendReply.kr(Impulse.kr(30), pwm_sliders[i], LPF.kr(A2K.kr(ctrl_pwm[i]), lag) ); //ctrl_pwm[i].poll; //ctrl_trig[i]=TChoose.kr(Impulse.kr(0.01), [0, 1]); SendReply.kr(Impulse.kr(1), out_digital[i], ctrl _trig[i]); //ctrl_trig[i].poll; ); ).send(s); /*-------------------------------------- internal scope ---------------------------------------*/ SynthDef(\scp, |bufnum| var ch_x=In.ar(9), ch_y=In.ar(8); ScopeOut.ar([ch_x*2, ch_y], bufnum); [ch_x, ch_y].scope(2, zoom: 1); //for waves in time domain (set ch8) ).play(Server.internal, [\bufnum, f.bufnum], addA ction: \addAfter); //w.onClose_(s.freeAll); ); )

Page 31: Studio delle interazioni caotiche parte2 2elettroacustica.pbworks.com/w/file/fetch/70510673...Department of Meteorology, University of Reading, UK, in Elektor - Retronics, e inoltre

31

Appendice C: Interfaccia in Processing "ControlTerm inal4ChaosSynth3.pde" Dato che come tipo di controller si è scelto di sfruttare Arduino, una board basata su microcontrollore ATmega ATMEL, di facile interfacciamento e programmazione in C/C++, è immediato scegliere il linguaggio Processing per la comunicazione seriale con il PC, si tratta di un ambiente molto simile ad Arduino/Wiring, ma basato su Java. La scheda Arduino offre, tra l'altro, la possibilità di I/O digitale e PWM, e permette di comunicare i dati digitali via virtualizzazione della porta COM. E' stato scritto un apposito software in Processing per trasmettere i controlli da SuperCollider verso l'interfaccia fisica digitale: /************************************************** ************** Invio di stream di byte sulla porta seriale protocollo: HEADER, TAG, value //http://www.processing.org/discourse/beta/num_1259 888815.html *************************************************** *************/ import processing.serial.*; import controlP5.*; import oscP5.*; import javax.swing.ImageIcon; import java.awt.*; import java.awt.event.*; Serial serial; ControlP5 cp5; OscP5 oscp5; RectGroup rg1, rg2, rg3, rg4; Tracker tr; int blink=0; int osc_received=0; float update; boolean on=false; boolean set_serial=false, osc_ok=true; String port_selected="empty"; public static final char HEADER = '/'; public static final char TAGS_PWM[] = ':', '$', '% ', '&', '@', '#'; public static final char TAGS_DIGTALOUT[] = '£', ' !', '?', '^', '*', '~'; void setup() size(1300, 600); menu(); rg1 = new RectGroup("PWM Port Controls"); rg2 = new RectGroup("Digital Output Controls"); rg3 = new RectGroup("PWM pin set state"); rg4 = new RectGroup("Digital OUT pin set state"); tr = new Tracker(700, 30, 500, 380, 6); makeObjectGui(); //----------------------------------------------op tion OSC receive OscProperties properties= new OscProperties(); properties.setRemoteAddress("127.0.0.1", 57110) ;//57110 SC default Server ID properties.setListeningPort(9000); properties.setSRSP(OscProperties.ON); oscp5= new OscP5(this, properties); OscMessage msgNotify= new OscMessage("/notify") ; msgNotify.add(1); oscp5.send(msgNotify);

Page 32: Studio delle interazioni caotiche parte2 2elettroacustica.pbworks.com/w/file/fetch/70510673...Department of Meteorology, University of Reading, UK, in Elektor - Retronics, e inoltre

32

void draw() background(0); //frameRate(100); if (set_serial) serialSend(TAGS_PWM[0], (byte) pwm_values[0]);//s end analog pwm val serialSend(TAGS_PWM[1], (byte) pwm_values[1]); serialSend(TAGS_PWM[2], (byte) pwm_values[2]); serialSend(TAGS_PWM[3], (byte) pwm_values[3]); serialSend(TAGS_PWM[4], (byte) pwm_values[4]); serialSend(TAGS_PWM[5], (byte) pwm_values[5]); serialSend(TAGS_DIGTALOUT[0], (byte) digital_outs [0]);//send digital out val serialSend(TAGS_DIGTALOUT[1], (byte) digital_outs [1]); serialSend(TAGS_DIGTALOUT[2], (byte) digital_outs [2]); serialSend(TAGS_DIGTALOUT[3], (byte) digital_outs [3]); serialSend(TAGS_DIGTALOUT[4], (byte) digital_outs [4]); serialSend(TAGS_DIGTALOUT[5], (byte) digital_outs [5]); blinkStatusOn(); //----------------------------------------------- ---------gui elements noFill(); stroke(100, 155, 200); strokeWeight(1); rect(3, 3, width-10, height-10); stroke(100, 255, 200); rg1.active(50, 30, 600, 280); stroke(100, 100, 200); rg2.active(50, 330, 600, 80); stroke(100, 100, 200); rg3.active(50, 460, 500, 80); stroke(100, 100, 200); rg4.active(600, 460, 500, 80); noStroke(); fill(0, 255, 0); rect(10, height-30, width-20, 20); fill(255, 0, 0); textSize(15); text("connect on: <"+port_selected+">", 50, heigh t-13); fill(0, 10, 255); text("<tx status>", 250, height-13); fill(255*blink, 0, 10); ellipse(350, height-20, 15, 15); fill(100, 50, 155); text("<p> pause sketch <r> resume", 400, hei ght-13); fill(255, 0, 100); text("<q> close Serial and Exit", 700, height-13) ; fill(0, 100, 255); text("<OSC data stream receive>", 940, height-13) ; text("<o/r paus/res>", 1180, height-13); fill(255*osc_received, 0, 10); rect(1150, height-28, 15, 15); tr.display(pwm_sliders); void serialSend(char tag, byte value) serial.write(HEADER); //1-Byte = [0, 255] serial.write(tag); //1-Byte serial.write(value); //1-Byte

Page 33: Studio delle interazioni caotiche parte2 2elettroacustica.pbworks.com/w/file/fetch/70510673...Department of Meteorology, University of Reading, UK, in Elektor - Retronics, e inoltre

33

// void serialEvent(Serial p) //attende il ritorno di dati seriali // // String arduino_read = serial.readStringUntil('\ n'); //legge dati di ritorno // if (arduino_read != null) //se stringa non nulla stampa // // println(arduino_read); // // void keyPressed() if (key=='p') noLoop(); else if (key=='r') loop(); osc_ok=true; else if (key=='q' && set_serial) //se la seriale è stata settata e key q serial.stop(); delay(1000); exit(); else if (key == 'o') osc_ok=false; else text("you must first serial connect!", 1070, 560) ; void blinkStatusOn() if ((millis()-update)>50) if (!on) blink=0; on=true; else blink=1; on=false; update=millis(); void serial_init(String port_name) println(Serial.list()); serial = new Serial(this, port_name, 9600); //this implica che l'istanza di Serial sia dichiarata nello sckatch madre serial.clear(); void oscEvent(OscMessage oscmessage) if (osc_ok) for (int j=0; j<pwm_sliders.length; j++) if(oscmessage.checkAddrPattern("/"+pwm_sliders[j ]))

Page 34: Studio delle interazioni caotiche parte2 2elettroacustica.pbworks.com/w/file/fetch/70510673...Department of Meteorology, University of Reading, UK, in Elektor - Retronics, e inoltre

34

float val=oscmessage.get(2).floatValue(); cp5.controller(pwm_sliders[j]).setValue(int( val)); //println(oscmessage); osc_received=1; else if (oscmessage.checkAddrPattern("/"+out_ toggle[j])) float val=oscmessage.get(2).floatValue(); cp5.controller(out_toggle[j]).setValue(int(v al)); osc_received=1; else osc_received=0; //println(oscmessage.get(0).floatValue()); // void mousePressed() // // byte value = (byte) mouseX; //occorrono solo v alori [0, 255] ovvero 1-Byte quindi converto int (2-Byte) in Byte // Appendice D: Firmware "receivePWMeDigitalPinStatus. ino" Questo sketch riceve i dati sottoforma di byte seriali inviati dall'interfaccia Processing e li estrae, mappandoli come valori interi sulle porte di uscita "analogica" PWM e digitale. In tutto vengono utilizzate sei porte PWM, nello specifico i pin: 3, 5, 6, 9, 10, 11 e vengono sfruttati sei pin digitali: 2, 4, 7, 8, 12, 13, di un Arduino UNO. Alcuni altri pin come l'RX e A0, sono stati sfruttati come segnalatori di stato sul pannello frontale: il primo è collegato a un led giallo che indica lo stato della connessione USB, mentre il secondo42 è un led blu, ad alta luminosità, che indica l'inizio della comunicazione seriale Arduino-Processing. Non appena Arduino riceve i dati seriali sul bus, il led giallo lampeggia in base ai pacchetti di byte. /*------------------------------------------------- ---------------------------- ricezione dati seriali da serial monitor o programm a per invio dati seriali: byte di PWM (0-255), pin digital out (HIGH-LOW) byte header byte tag byte val protocollo: / @ 0 - 255 Rispetto alla vecchia versione è stato scritto un p rotocollo di comunicazione dedicato, evitando l'uso di firmata e la libreria Arduino per processi ng vantaggi: migliore risposta e stabilità dei control li delle porte Stefano Silvestri 11/08/2013 18:54:54 --------------------------------------------------- ---------------------------*/ #define HEADER '/' //campo di header char (1Byte) //#define TAG_PWM_1 ':' //campi di tag char #define BYTE_MESSAGGIO 14 //header+tag+6pwm val+6d igital out val //byte vals[6]; //campi variabile da (1-byte)

42 Una porta normalmente di conversione digitale-analogica, usata in tal caso come pin di output digitale.

Page 35: Studio delle interazioni caotiche parte2 2elettroacustica.pbworks.com/w/file/fetch/70510673...Department of Meteorology, University of Reading, UK, in Elektor - Retronics, e inoltre

35

//char TAGS_PWM[6] = ':', '$', '%', '&', '@', '#' ; //char TAGS_DIGTALOUT[6] = '£', '!', '?', '^', '*' , '~'; const int PWM_PINS[6]=3, 5, 6, 9, 10, 11; const int DIGITAL_OUT_PINS[6]=2, 4, 7, 8, 12, 13; const int power_status= A0; //const int rx_monitor= 0; void setup() Serial.begin(9600); for (int i=0; i<sizeof(DIGITAL_OUT_PINS); i++) //d ichiarazione pin digitali come uscita pinMode(DIGITAL_OUT_PINS[i], OUTPUT); for (int i=0; i<sizeof(PWM_PINS); i++) //inizializ zazione pwm a low, non c'è bisogno di dichiararli come output digitalWrite(PWM_PINS[i], LOW); pinMode(power_status, OUTPUT); digitalWrite(power_status, LOW); //pinMode(rx_monitor, OUTPUT); //digitalWrite(rx_monitor, LOW); void loop() char tag; if (Serial.available() >= BYTE_MESSAGGIO) //se arr iva almeno la lunghezza minima del messaggio digitalWrite(power_status, HIGH); if (Serial.read() == HEADER) //lettura primo Byte HEADER e verifica correttezza //Serial.print(HEADER); //stampa su seriale per lettura da processing tag=Serial.read(); switch(tag) case ':': //vals[0]=Serial.read(); //--------------------lettura valore pwm ricevu to analogWrite(PWM_PINS[0], Serial.read()); //Serial.print(tag); Serial.println(vals[0]); break; case '$': analogWrite(PWM_PINS[1], Serial.read()); break; case '%': analogWrite(PWM_PINS[2], Serial.read()); break; case '&': analogWrite(PWM_PINS[3], Serial.read()); break; case '@': analogWrite(PWM_PINS[4], Serial.read()); break; case '#': analogWrite(PWM_PINS[5], Serial.read()); break;

Page 36: Studio delle interazioni caotiche parte2 2elettroacustica.pbworks.com/w/file/fetch/70510673...Department of Meteorology, University of Reading, UK, in Elektor - Retronics, e inoltre

36

case '£': if (Serial.read()==1) //---------------lettura tag pin digitali digitalWrite(DIGITAL_OUT_PINS[0], HIGH); else digitalWrite(DIGITAL_OUT_PINS[0], LOW); break; case '!': if (Serial.read()==1) digitalWrite(DIGITAL_OUT_PINS[1], HIGH); else digitalWrite(DIGITAL_OUT_PINS[1], LOW); break; case '?': if (Serial.read()==1) digitalWrite(DIGITAL_OUT_PINS[2], HIGH); else digitalWrite(DIGITAL_OUT_PINS[2], LOW); break; case '^': if (Serial.read()==1) digitalWrite(DIGITAL_OUT_PINS[3], HIGH); else digitalWrite(DIGITAL_OUT_PINS[3], LOW); break; case '*': if (Serial.read()==1) digitalWrite(DIGITAL_OUT_PINS[4], HIGH); else digitalWrite(DIGITAL_OUT_PINS[4], LOW); break; case '~': if (Serial.read()==1) digitalWrite(DIGITAL_OUT_PINS[5], HIGH); else digitalWrite(DIGITAL_OUT_PINS[5], LOW); break; default: Serial.print("uncorrisponding TAG!!!\t"); Serial.println("tag"); break; Serial.flush();

Page 37: Studio delle interazioni caotiche parte2 2elettroacustica.pbworks.com/w/file/fetch/70510673...Department of Meteorology, University of Reading, UK, in Elektor - Retronics, e inoltre

37

Appendice E: Alcune foto del sistema


Recommended