VL Member operations in vvvv


At the moment, I’m not able to get any member operations of a VL patch into vvvv. The only thing showing up is a patch with the pins of the Update operation. Is there any solid reason for that?

I got a datatype that does nothing but wrapping multiple fields of data. I have to manually create setters and getters for each field, which is annoying enough (but only for now, I get that). Not to get these getters and setters into vvvv, I have to create an operation in the document canvas for each one of those, which seems like a huge unnecessary overhead.

Also what was very confusing for me: if there is no update operation in a type, or it has no inputs/outputs, I get that node without inputs and outputs without explanation in vvvv.

All in all: the bridge between vvvv and vl, what shows up and what doesn’t, is 1) confusing and 2) unnecessarily restrictive.

Maybe I’m seeing it wrong though, I’d be happy to hear a better solution than creating an operation in the document canvas for each node I want to have in vvvv!

Is my question unreasonable or hard to answer? ;)

Could you post the vl file?

I found it fairly straight forward to get this to work for documents created through vvvv’s “v Template” cloned file but not so simple for Documents made in VL alone.

To get a new operator into vvvv I checked the the little button under the ‘O’ on the topleft corner of the operation.

You may have to drag and drop your VL file again but it may already be registered in vvvv’s node list.

This should be fine if you’re working from VL file created in VVVV.

Trickier is getting a fresh document seen in vvvv. For that have a look at “Project Structure” for the requirements towards the bottom of the page: Exposing data types.

In order to have a vl datatype show up as a node in vvvv it needs to meet the following criteria:

it needs to be a Class (ie. not a Record)
its category needs to start with "VVVV"
it needs to be non-generic (see below)

Aaaah, I see, I think the mistake I made was I was trying to do that with a Record, not a Class.

Now the problem is a different one - I don’t have that box to tick that is inside the class and makes it available in vvvv:

What am I doing wrong here?


I do not really understand your last sentence - a box to tick what??

The reason that you can only expose the Update operation and nothing else is that from a vvvv perspective there’s only one entry point (Evaluate) therefor allowing only one defined operation to get called seemed reasonable. Allowing more would add unnecessary complexity to the hosting layer - things which all can be solved in the one Update operation wrapping your VL code.

I get that the bridge between vvvv and VL is rather tricky as soon as you come from a different route than cloning a well prepared template. We’ll definitely try to improve that over time (auto join/split, allow Patch/Class, red links in vvvv if pins get deleted etc.). In the meantime I encourage you to open a TTY in vvvv should you run into similar issues again - the hosting layer does spit out some error messages.

With box to tick I meant this thing you can see in the screenshot at

So what I wanted to do is create a class in VL that would simply wrap a few properties. I made this class called Sheet:

It’s basically got a few properties and readers / writers for these.

I understand that these readers and writers may at some point become automated so I don’t have to create them manually anymore.

Now I want to use this datatype inside vvvv, not as one node, but as something to pass around, read and write properties. I now have to go inside the document canvas and remake all those readers and writers, because I cannot expose them directly to vvvv - that was my main concern.

So my document canvas looks like this:

All those things could be available in vvvv directly - right? (except the Join in this screenshot, which as you said might just come at a later point)

…sorry I’m not posting the vl file, I would have to separate it from the rest of the project - if still needed, I’ll do that of course.

Ok I see so we have an out of date screenshot and the generic flags are not consistent between operations and patches. Indeed super confusing. Will be fixed asap.

Regarding your patch: This looks indeed cumbersome. Will keep it in mind when we get to the whole auto join/split/get/set feature. Thanks for your input!

or in such a case (and don’t discard this thought too quickly): consider doing more parts of your project directly in vl and really only move to vvvv for drawing. can you name your particular reasons for wanting/needing to go via vvvv?

@Elias thanks a lot, good to know it’s just an out of date screenshot.
I guess that means for now my patch has to stay bulky as it is (for now)
I’m really looking forward to auto set/get, in any case!

@joreg i did have the same thought, just as I was reading through this again.
It might not be possible in my case for an untypical reason though: I want to use the patch for teaching newbies and want an easy to use ‘API’ that is in vvvv only, not split up into rendering vvvv and all else VL.
I’ll look into it again though.

Thanks a lot!

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