<< 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 microbiology
Agebe Reply
What is a cell
Odelana Reply
what is cell
Mohammed
how does Neisseria cause meningitis
Nyibol Reply
what is microbiologist
Muhammad Reply
what is errata
Muhammad
is the branch of biology that deals with the study of microorganisms.
Ntefuni Reply
What is microbiology
Mercy Reply
studies of microbes
Louisiaste
when we takee the specimen which lumbar,spin,
Ziyad Reply
How bacteria create energy to survive?
Muhamad Reply
Bacteria doesn't produce energy they are dependent upon their substrate in case of lack of nutrients they are able to make spores which helps them to sustain in harsh environments
_Adnan
But not all bacteria make spores, l mean Eukaryotic cells have Mitochondria which acts as powerhouse for them, since bacteria don't have it, what is the substitution for it?
Muhamad
they make spores
Louisiaste
what is sporadic nd endemic, epidemic
Aminu Reply
the significance of food webs for disease transmission
Abreham
food webs brings about an infection as an individual depends on number of diseased foods or carriers dully.
Mark
explain assimilatory nitrate reduction
Esinniobiwa Reply
Assimilatory nitrate reduction is a process that occurs in some microorganisms, such as bacteria and archaea, in which nitrate (NO3-) is reduced to nitrite (NO2-), and then further reduced to ammonia (NH3).
Elkana
This process is called assimilatory nitrate reduction because the nitrogen that is produced is incorporated in the cells of microorganisms where it can be used in the synthesis of amino acids and other nitrogen products
Elkana
Examples of thermophilic organisms
Shu Reply
Give Examples of thermophilic organisms
Shu
advantages of normal Flora to the host
Micheal Reply
Prevent foreign microbes to the host
Abubakar
they provide healthier benefits to their hosts
ayesha
They are friends to host only when Host immune system is strong and become enemies when the host immune system is weakened . very bad relationship!
Mark
what is cell
faisal Reply
cell is the smallest unit of life
Fauziya
cell is the smallest unit of life
Akanni
ok
Innocent
cell is the structural and functional unit of life
Hasan
is the fundamental units of Life
Musa
what are emergency diseases
Micheal Reply
There are nothing like emergency disease but there are some common medical emergency which can occur simultaneously like Bleeding,heart attack,Breathing difficulties,severe pain heart stock.Hope you will get my point .Have a nice day ❣️
_Adnan
define infection ,prevention and control
Innocent
I think infection prevention and control is the avoidance of all things we do that gives out break of infections and promotion of health practices that promote life
Lubega
Heyy Lubega hussein where are u from?
_Adnan
en français
Adama
which site have a normal flora
ESTHER Reply
Many sites of the body have it Skin Nasal cavity Oral cavity Gastro intestinal tract
Safaa
skin
Asiina
skin,Oral,Nasal,GIt
Sadik
How can Commensal can Bacteria change into pathogen?
Sadik
How can Commensal Bacteria change into pathogen?
Sadik
all
Tesfaye
by fussion
Asiina
what are the advantages of normal Flora to the host
Micheal
what are the ways of control and prevention of nosocomial infection in the hospital
Micheal
Got questions? Join the online conversation and get instant answers!
Jobilize.com Reply

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




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