Manipulating only rows

I have two linear spreads connected with a cross2d advanced > transform > quad > renderer. My goal is to manipulate the properties of each row independently. For example I want each row to move from left to right at different speed, have different opacity and/or color, whatever I can think of.
Now you dont have to feed me the solution exactly but give some clues to help me build it, I have no idea how to continue, maybe it has to do something with the bins? But I dont know anything about bins and how to manipulate them.
This is the current patch:flow with spreads.v4p (5.3 KB)
In my previous attempt to make the same patch, I used an emitter and some spreads and got exactly what I wanted, a moving row that I could manipulate different properties of it, so I would just duplicate the rig as many times as needed to fill the whole screen and link them to a group node.
This is the old patch:paradigm.v4p (21.1 KB)
So now I was thinking if there is a better, cleaner way to work just with spreads.

classical vvvv problem. since everything is spreadable you have get all the correct bin sizes to manupulate your original spread. much easier in VL.

flow with spreads edit.v4p (15.8 KB)

oh boy oh boy, this is exactly what I was looking for I am twicking it as I type.
I have some questions for my deeper understanding:
1)You filter the waveshaper output throught a 2dvector node and then feed it to the setslice node.That is because setslice input pin needs 2 values, one for each axis and since we need movement only on the X axis, we force Y to be 0 in the vector2d node, and transfer the “animated” X value from waveshaper to setslice as is, right?
2)I don’t understand the node chain vector>count>select>setslice (pin:spread) it is static (aka nothing “moves” so my brain can’t algorithm out their functionality perpuse lol). Please elaborate.
3)at the *node (multiplication node) you multiply the spreadcount of the X affiliated Linearspread by 2 to input that as a binsize at the setslice node.Are you doing that because each row holds as many vectors as the spreadcount of the x-linearspread (in this case 9), but the bin size must be doubled because each 2D-vector is described by 2 slices (aka one corresponding to X coord and one to the Y coord)?
You can add everything else you wan’t.
I took a chance (and it worked) on how to manipulate the speed (ea the position) of each row independently.I just increased the input count in the +node (add node) and inserted more setslice nodes. In each setslice I manually set the index to 0,1,2,…,n to correspond to all my n-rows and for now I manually change the x-value of the attached vector node, later I wil animate it with a node or something.I wasn’t sure if increasing the inputcount of the +node whould do exactly what I wanted, why vvvv works like this in some and not in others?
I have some more questions but I ll keep them for after you respond, if you have time to respond ofcourse.
Thanks for the solution, really appreciate it.Sorry for bad english.

hi,flow with spreads edit2.v4p (30.7 KB)

  1. correct -but not filtering. I use the vector2 join node to add the missing Y coordinate. it works like the zip node. so we get a spread with 2 values. a moving x and a static y.

don’t get confused with vector nodes in vvvv. there is no such datatype, everything is treated as a spread of values. vector nodes just make patches more readable.

  1. 2x4 positions = 8 positions, each XY = 16 values. I generate a spread with the same dimension by counting the spread size, and then select 16 times the value 0 to get a spread with 16 slices, each with the value 0.

  2. correct.

try to patch your stuff in a way that everything is spreadable. meaning the output won’t break if you tweak the linear spread values on top. you will get a much better understanding of how things are connected and work together!

It seems you lack a basic understanding of how to work with spreads. See “working with spreads” tutorial on the website, check the girlfolder tutorials and always press F1 to load a helppatch for the selected node.

cheers, A

1 Like

Hi this is my new patch: Spread Flow Movement.v4p (19.5 KB)
I am trying to put up a control for each row’s position/speed.The thing is that I can’t figure out how to do this wihtout flooding my patch with dublicated nodes over and over because I am planing of having over 30 rows. Any suggestion?

as schlonzo mentioned, this gives good advise

I already read those multiple times. They give good advice but nevertheless they feel very basic.Now if what I am looking for is inside these basic information and I can’t understand it, then ok I’ll give it a rest, I don’t expect to be fed with answers. But if there is a distance between what I am looking for and these basic information how I am supposed to do the leap? I am only 7 days into vvvv, I 've made already exactly what I wanted with a patch using particles as I uploaded above and the same project on another program. I am just now trying to see if I can achieve the same with spreads which seems a cleaner way.
tldr; made it with: a)AfterEffects, b)vvvv/particles, looking for c)vvvv/spreads, any help?

define a spread of control values (one value per row) and select as many of these values as you have columns. add this to the positions like you already tried.


1 Like

You, sir, are the only one who understood what I was trying to do and made it possible only with two nodes!!But, how on earth the select node is what I need?I checked it at least 10 times, never seemed to be the one I had to use. I hit F1 and the patch describes something that it is not even remotely close to what the node select does.
Yeah man, extra points for the super elegant solution and thanks.
Check out the monstrocity I was “building” all past night:

select is one of the most useful nodes. it does not look like much but you need it all the time.
actually the help patch also shows exactly what its usecases can be. it might just not show the most basic case like in your patch :P
anyway dont get frustrated, we have all been there. vvvv has quite a lerning curve and it takes bit of time until all the new concepts make sense and you feel comfortable.

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.