» it.Generare Feedback Loops
This site relies heavily on Javascript. You should enable it if you want the full experience. Learn more.

it.Generare Feedback Loops

English | Russian | French

The original english version of this page is newer and may contain information this translation does not have! Click here to view the english version.

Perché non riesco a connettere due pins dello stesso tipo?

Questo succede perché si sta tentando di generare un ciclo, loop, nel grafico.

Il concetto di loop (alla radice di tutta la cibernetica) è potente, ma quando lo si applica in una patch è necessario fare attenzione. La regola di base da ricordare è:
vvvv valuta i nodi del grafico una sola volta per ogni fotogramma, frame.

Se tutte le cose nel grafico succedono nello stesso momento, ecco, questo semplifica la pianificazione ed il debug della patch. Non c'è un ordine di esecuzione (come in altri linguaggi di programmazione grafica: ad esempio Max o PureData). Tutte le cose vengono automaticamente calcolate secondo l'ordine necessario. Anche i nodi non ritardano nel gestire i loro dati (come nell'elettronica digitale). Non ci si deve preoccupare di segnali che non arrivano nello stesso momento.

Ma in pratica, perché non funziona un loop in una patch? Succede perché finché un input non è noto, un output non può essere calcolato; e viceversa (tenendo presente il principio per cui vvvv calcola una sola volta i valori per ogni frame).

Anche se questo sembra il classico paradosso foriero di crash e schermi blu la soluzione è abbastanza semplice: in un certo punto del loop dobbiamo ricorrere al valore dell'ultimo frame, così da evitare infinite ricorsioni. Fai attenzione: il punto in cui si risale all'ultimo frame è importante, e cambiarlo potrebbe portare a variazioni più o meno sensibili del comportamento del loop.

Quindi, ogni volta che si fa una connessione, l'interfaccia di vvvv controlla se potrebbe presentarsi una situazione in cui l'ingresso di un nodo dipende dell'uscita dello stesso nodo, esattamente in quello stesso frame. Se questa condizione viene soddisfatta, vvvv non consente la connessione, in quanto non saprebbe dove andare a prendere quel valore dall'ultimo frame.

Ma allora come si può generare un loop?

La soluzione è semplice: nodi come hanno un output che non dipende dall'input di questo frame, ma da quello dell'ultimo frame (cioè di quello precedente, o del penultimo, o come preferite), cosa che è permessa senza alcun problema perché non contraddice la logica spiegata sopra. Così, se all'interno del loop c'è almeno uno di questi nodi (ne esistono altri con questa proprietà), il loop può esser chiuso.

Non esiste una regola generale che indichi a che punto del loop questi nodi debbano essere sistemati; anche perché dipende da come è costruita la patch e da cosa si vuole ottenere. Ma in fin dei conti, non è poi così complicato, no?

Per concludere. I loops sono roba forte, che consente ad esempio di memorizzare e modificare valori da un frame all'altro: contatori e calcoli d'iterazione risultano semplici da sviluppare come loops.

Quando si generano feedback loops usando il nodo FrameDelay (Animation) è importante evitare Spreads Vuoti.
Se ci sono problemi a salvare o riaprire la patch (ad esempio uno o più moduli riportano uno zero barrato, "Ø", nel pin di output) visitare questa pagina.

anonymous user login

Shoutbox

~24h ago

joreg: Release Candidate 3 for #vvvv beta39 is out: beta39-release-candidate Please test and report your findings!

~1d ago

young47: Will visit Köln and Düsseldorf this week. I'm an artist from Moscow, would be happy to meet someone! If you will be there, reply :)

~1d ago

microdee: vpm got a clean-up update. Download here: https://github.com/vvvvpm/vpm/releases/tag/1.3

~3d ago

joreg: @udo2013 please note that bass is only available with x86 builds!

~3d ago

aeckheim: Can't find the visual c++ runtime 2008. setup.exe link leads to nowhere. try to setup newest beta version

~4d ago

joreg: More #vvvv workshop dates for the coming months are announced: upcoming-full-day-vvvv-gamma-workshops-in-berlin

~6d ago

mburk: @synth can confirm crashes with instance noodles. studio drivers fixed it.

~7d ago

synth: @nissidis: So i am not crazy! Thanks for confirmation :) These are the things i do have problems with as well.

~7d ago

nissidis: @synth I do with Instance Noodles and FieldTrip (RTX 2080) I rolled back to Studio Drivers (instead of GameReady ones)