<< Chapter < Page Chapter >> Page >

Idiosincrasie grafiche

Ogniqualvolta un messaggio è inviato ad un oggetto, questi può diventare mittente a sua volta verso altri oggetti. Inaltri termini, si configura un albero di ricezioni di messaggi. Secondo il manuale di Pure Data l'ordine di esecuzione utilizzato è depth-first , cioè ogni ramo è esplorato fino alle foglie prima diprocedere con gli altri rami. L'ordine di esecuzione tra nodi allo stesso livello dell'albero sarebbe invece da considerarsiindeterminato. In realtà, provando ad eseguire l' esempio di [link] e ridisponendo le connessioni tra i nodi dell'albero con ordini diversi ci si accorge che non si può nemmeno contare sull'ordine depth-first, in quanto esso interferisce con l'ordine di immissione delle connessioni. In Max/MSP la situazione è ancora peggiore perché muovendo messaggi e bang in posti diversi della finestra, a parità di configurazione topologica, si ottengono sequenze di attivazione diverse. L'elaborazione di tipo dataflow può dare luogo a loop noncomputabili, quale è quello riportato in [link] . Pure Data, in questo caso, riporta un messaggio di "stack overflow" sulla consolle. Per rendereil loop computabile è sufficiente inserire un elemento di disaccoppiamento quale è un pipe (si veda [link] ). Per quanto sia piccolo il parametro ritardo di questo pipe (al limite anche nullo), essoterrà memoria del dato in ingresso per consumarlo al ciclo successivo di calcolo.

Nella maggior parte degli oggetti, la inlet di sinistra è hot , nel senso che messaggi che ad essa arrivano scatenano messaggi in output.E' spesso desiderabile inviare messaggi a due o più inlet di un oggetto, ma il risultato dell'operazione può dipenderedall'ordine con cui si sono fatte le connessioni. Ciò mina l'efficacia semantica del programma visuale, in quantopotremmo avere due patch apparentemente identiche che però si comportano diversamente perché costruite con un ordinediverso. Ad esempio, si provi a fare la somma di un numero con sè stesso secondo la [link] .

La sequenza di creazione delle connessioni determina la correttezza o meno del risultato. Per imporre chiarezzasemantica al patch è opportuno inserire un oggetto trigger che forza l'ordine di attivazione delle outlet da destra a sinistra, come indicato in [link] .

Elementi di gui

In [link] è illustrata l'utilizzazione di un generatore periodico di bang . Si noti il parametro di metro che stabilisce l'intervallo (di 500 millisecondi) tra duebang. Il quadrato in alto è un elemento di GUI detto toggle switch, in pratica un interruttore.

Un altro elemento di GUI, il vslider , è illustrato in [link] . In questo patch è anche visibile un oggetto number, il quale invia un numero in uscita( outlet ) ogni volta che ne viene cambiato il valore, per dragging con il mouse o per immissione dinumeri dal suo input.

Array

In Pure Data, un array è un contenitore di numeri ed un elemento di visualizzazione al tempo stesso. Infatti,l'oggetto table istanzia l'array e crea un subpatch che ne visualizza la rappresentazionegrafica. Questa rappresentazione è anche uno strumento di input, in quanto i valori dell'array possono essere"disegnati" con il mouse. Per leggere e scrivere i singoli elementi dell'array si usano gli oggetti tabread e tabwrite . L'utilizzazione di tabread per scandire un array è illustrata in [link] .

Selezioni, routing, multiplexing

In [link] sono illustrati blocchi di confronto e selezione . In particolare, il blocco select attiva l'uscita di sinistra se l'ingresso ( inlet ) è uguale al suo parametro, altrimenti attiva l'uscita di destra.

In [link] sono illustrati tre elementi di routing . Il blocco spigot trasmette messaggi dall'inlet di sinistra all'outlet in dipendenza dallo statodell'ingresso (di controllo) di destra. In sostanza si tratta di un gate con controllo di apertura e chiusura. Invece, moses consente di smistare alle uscite sinistra e destra i valori diingresso che sono rispettivamente minori o maggiori (o uguali) del valore di controllo passato dalla inlet didestra. Infine, route smista dei messaggi ricevuti in ingresso sulla base del loro primo elemento,mettendolo a confronto con gli argomenti. Un multiplexer si può ottenere combinando la route con la pack .

Realizzare un multiplexer e un demultiplexer utilizzando gli oggetti pack , route e spigot .

Ritardi, code e gestione del tempo

In [link] è illustrata l'utilizzazione di ritardi e code . La delay ritarda un bang in ingresso di un numero di millisecondi pari al suo argomento. Se si vuole ritardareun flusso di dati bisogna usare la pipe , la quale è realizzata come coda a buffer circolare .

In [link] si vedono alcuni oggetti che consentono di scandire, misurare, e avanzare il tempo. Rispettivamente, ciò si ottiene con metro , timer , e line . Quest'ultimo oggetto genera una rampa lineare, da un valore iniziale a uno finale, in un certotempo.

Nel patch di [link] , si provi a rimuovere e ripristinare i collegamenti che arrivanoalla inlet di destra dell'oggetto float , e si verifichi che il reset dell'indice una voltaraggiunto il limite di 128 può non avere luogo. Perché? Come si può introdurre in maniera deterministica ilreset dell'indice?

E' sufficiente introdurre un elemento di disaccoppiamento (ad esempio, una pipe 0 ) che imponga un ordine tra l'immissione del numeroincrementato e l'immissione di 0 nella inlet di destra.

Message passing

Il funzionamento dataflow di Pure Data avviene mediante pipe che corrispondono alle connessionitra oggetti. E' anche possibile operare in regime di message passing , cioè ricevere ( receive ) e spedire ( send ) dati tra diverse parti di un patch o tra patch diversi. Ciò è illustrato in [link] . Invece, l'oggetto value realizza una sorta di variabile globale.

Modularità

Nella programmazione visuale la modularità si ottiene con i meccanismi di subpatching che, in Pure Data, sono di due tipi:

  • Si utilizza l'oggetto pd per dichiarare un subpatch. In quest'ultimo, si specificano le inlet e outlet . Si veda [link] .
  • Si costruisce un patch come file separato, che a questo punto diventa uno deglioggetti a disposizione di Pure Data. Si veda [link] .

Questions & Answers

what is variations in raman spectra for nanomaterials
Jyoti Reply
I only see partial conversation and what's the question here!
Crow Reply
what about nanotechnology for water purification
RAW Reply
please someone correct me if I'm wrong but I think one can use nanoparticles, specially silver nanoparticles for water treatment.
Damian
yes that's correct
Professor
I think
Professor
what is the stm
Brian Reply
is there industrial application of fullrenes. What is the method to prepare fullrene on large scale.?
Rafiq
industrial application...? mmm I think on the medical side as drug carrier, but you should go deeper on your research, I may be wrong
Damian
How we are making nano material?
LITNING Reply
what is a peer
LITNING Reply
What is meant by 'nano scale'?
LITNING Reply
What is STMs full form?
LITNING
scanning tunneling microscope
Sahil
how nano science is used for hydrophobicity
Santosh
Do u think that Graphene and Fullrene fiber can be used to make Air Plane body structure the lightest and strongest. Rafiq
Rafiq
what is differents between GO and RGO?
Mahi
what is simplest way to understand the applications of nano robots used to detect the cancer affected cell of human body.? How this robot is carried to required site of body cell.? what will be the carrier material and how can be detected that correct delivery of drug is done Rafiq
Rafiq
if virus is killing to make ARTIFICIAL DNA OF GRAPHENE FOR KILLED THE VIRUS .THIS IS OUR ASSUMPTION
Anam
analytical skills graphene is prepared to kill any type viruses .
Anam
what is Nano technology ?
Bob Reply
write examples of Nano molecule?
Bob
The nanotechnology is as new science, to scale nanometric
brayan
nanotechnology is the study, desing, synthesis, manipulation and application of materials and functional systems through control of matter at nanoscale
Damian
Is there any normative that regulates the use of silver nanoparticles?
Damian Reply
what king of growth are you checking .?
Renato
What fields keep nano created devices from performing or assimulating ? Magnetic fields ? Are do they assimilate ?
Stoney Reply
why we need to study biomolecules, molecular biology in nanotechnology?
Adin Reply
?
Kyle
yes I'm doing my masters in nanotechnology, we are being studying all these domains as well..
Adin
why?
Adin
what school?
Kyle
biomolecules are e building blocks of every organics and inorganic materials.
Joe
anyone know any internet site where one can find nanotechnology papers?
Damian Reply
research.net
kanaga
sciencedirect big data base
Ernesto
Introduction about quantum dots in nanotechnology
Praveena Reply
what does nano mean?
Anassong Reply
nano basically means 10^(-9). nanometer is a unit to measure length.
Bharti
do you think it's worthwhile in the long term to study the effects and possibilities of nanotechnology on viral treatment?
Damian Reply
absolutely yes
Daniel
Got questions? Join the online conversation and get instant answers!
Jobilize.com Reply

Get the best Algebra and trigonometry course in your pocket!





Source:  OpenStax, Programmazione di artefatti interattivi. OpenStax CNX. Dec 09, 2010 Download for free at http://cnx.org/content/col10417/1.9
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Programmazione di artefatti interattivi' conversation and receive update notifications?

Ask