Updating positions in a queue that gets updated at given time intervals

Hi everyone! Excuse me in advance for a somewhat cumbersome first post :-)
I’ve been toying around with vvvv for some time now (it rocks!), but my more textual programming oriented mind (C++) has brought me to a point where I can’t continue without asking.

I’ve got the setup you can hopefully see in the attached image:

The inputs for the queues can come from a mouse, a wiimote or whatever can give a (mapped) position in XY terms. At every change from the LFO, the current XY position gets inserted into the queues. Now the interesting (missing) part: I want each letter to be “born” at the said XY coordinates, but to move randomly upwards on every frame following its birth. How can I achieve this? I’ve tried lots of combinations with Framedelay, GetSpread, SetSpread, and the like with no success.

Another example, which hopefully will explain my problem better:

  • We have a queue with 30 letters, and the corresponding X and Y position queues.
  • At frame F, the LFO bangs a change; the current X and Y positions get inserted (the former “slice 29” gets discarded).
  • Now, at frame F, “slices 0”, shouldn’t get updated, but slices 1 to 29 should (for example adding 0.01).
  • This is, at F slice0position=(X,Y). At F+1 slice0position=(X+0.01,Y+0.01). At F+2 slice0position=(X+0.02, Y+0.02). etc
  • But all of this taking into consideration that a new element gets inserted at each bang from the change pin in the LFO. This means the indexes get shifted at every time interval of the LFO.

And that’s the reason it’s drivig me crazy. I can’t seem to create a correct update “loop” which accounts for the shifting slice indexes. Thanks in advance for any pointers in the right direction!

P.S.: I’ve tried writing a plugin in C#, but I can’t figure out some problems with the sign (positive or negative) of the value that gets added to the position.

u can solve that pretty simple, by adding reverse node after the queue, otherwise u have to build something that gonna insert slices in desired order…

hei axa,

so it sounds like you’re creating a dynamic particle system. here are 2 pointers to get you started:

  • if you want to go the c# route have a look at the \girlpower\Spreading\Spray.v4p demo which is using a dynamic c# plugin: Spray (Animation)
  • otherwise have a look at \packs\VLIntegration\girlpower_Basics\Spreading\Objects.v4p which compares patching of a simple dynamic particle system in vvvv and VL (note: this needs latest alpha to work)

Hey joreg,

thanks a lot for the pointers! It never occurred to me to look at it like that, but it actually IS a dynamic particle system.

The example you mention with spray is pretty much it (with the addition of age decay!). However, this sparks a new question, since the example uses Halo to create a sort of “bubbles”.

Is there an easy way or effect that directly renders characters? Or do I need to use AsTexture to convert my characters and apply them to some geometry or effect?

try Text (EX9)