VVVV vs oF - What to learn and why?

Hi there,

I’m looking for some help with my decision to learn VVVV or oF.

I’m quite advanced user of Processing, but had some performance issues with more complex programms.
I had already a look inside the VVVV environement - but not sure if I like the visual programing surface.

My next project will be an installation with a kinect, projection and 3D Elements. Its supposed to work in a (hopefully low maintenance) standalone mode.

The advantages of VVVV I see, is that I would faster get results. But I don’t like the fact that I’m forced to use Windows and as soon as it gets more komplex, that I might loose the overview of my project.

With oF I like that it works on different plattforms - even android. But on the other side I would need to learn a new language…

Thanks for your help! I’m excited to read what you have to tell me :slight_smile:

i have been a user of max/msp for about 7 years and user of openframeworks for maybe 2. so hopefully can help you.

VVVV is nice, though never got into fully, due to being a mac user. i was quite interested in it. but really, if you are on say mac, look at max/msp. the latest version has many things that are vital, and things i helped put in. such as reloading patches from crashes.
plus its mac and windows. talk has been back and forth for linux, and it may come.

the thing with VVVV or max/msp at least is that you really will be able to get something made pretty quickly because of the visual programming style, and you will be able to make some really awesome things.
there are a ton of projects and objects ready for such projects, but thats also the same with max/msp. a big community.
also max has this thing called ‘gen’ which is for video and audio, where you can actually type out code into it. really powerful when used right. now i think it comes bundled. so its all just MAX, rather than max/msp/jitter/gen :wink:

the same can be said with openframeworks. BUT. you really will need to know something about the c++ language, not really openframeworks so much at first. because since openframeworks is really c++ distilled into smaller and better chunks to digest :wink:
i guess it would really matter how long, or when this project is happening. if its happening in the next few weeks, go for VVVV or max/msp.
but if you have months upon months [even a year or so] to plan. then openframeworks would be good. but really you would even have to know what it is exactly you would need to do. because whilst there may be slight changes, that can make a big difference in openframeworks, i think. whereas max/msp can be pretty easy to sort out due to it being objects connecting, rather than code. very wrong code can kill a project, whereas a missed connected patch cord can be fixed very easily.

i have been learning from more c++ tutorials of late, to get back into oF further plus just game making in general. and have found that going to path of game dev tutorials in c++ has been the best due to them really dealing in graphics etc.
here is a fantastic resource i have been learning c++ from.


the guy is super nice and answers questions that may be a bit hard for you to figure out. though his tutorials are made on windows, and its different slightly for mac, but thats a good way to learn and to figure out the way they both work.

hope this somewhat long response has helped shed some light. :wink:
im not choosing one over the other per-se, but just thinking that when the project starts is the key.

best

lewis lepton

1 Like

and just to add
even if you do go the max/msp or VVVV route. you can make something that could talk to something in openframeworks [or visa versa] using OSC or whatever really

just an added thought :wink:

I like to see that OF is based on C++ not as a handicap but an opportunity. I started (does it ever ends) learning C++ with my first OF project, after hitting Processing performance wall, and never regret it. Learning C++ opens you to a lot of new development possibilities, not only OF based. So depending on your interests the disadvantage of having to learn C++ can be an advantage.

Also I don´t feel truly comfortable with the boxes-cords thing in big or collaborative projects but I guess that’s really a personal matter :wink:

Thank you so much for your answers.

@notpelsiwel
I never thought about max/msp as an option - will have a look into it.
I really got stuck at this problem with being only able to work with VVVV on Windows.

@pelayo
And to say that learning C++ is an opportunity sounds great.

I think I’m getting now more in the mood to learn oF… but still thinking. Will let you know how I decided :slight_smile:

Franckly, I’ve spent some times on Max/Msp, trying to tame the beast… At the end, I think that visual programming sucks. Everything that you can do easily with code is done the hard way with blocks and connections. Understanding is difficult, debugging more difficult, and trying different approaches is a nightmare due to unpatching / patching.
This point is so true that during a conference/workshop (available on Youtube) a guy from Cycling 74 explain that everything can be done in a more efficient way inside Max/Msp with… Javascript ! Yes. Unfortunately there are few tutorials about JS under MAX, so learning by trial and error is very long.

At the contrary, OF (and because it is C++) gives you an unlimited access to all the C/C++ libraries, all the books, free tutorials, all the algorithms that you can borrow from other platforms (game engines, Processing) and a wide community.

My C++ skills are very limited, just the basis, but what I have succeed to do with OF is far more advanced that what I could have done with Max/Msp.

And, as a big PLUS, OF is multiplaform : Mac OSX, Windows, Linux, Android, and so on…

i actually do agree though. id prefer to use code more than anything else, because of power. pure dirty power. it is a shame my computer is near its death. plus its multiplatform, incredibly small size in projects [obviously what you are building]

i had used max for 6/7 years. but stopped because it killed my music making, was just making software. but now have calmed down and now changing to doing more code for public and private sectors. which im happy for now. not doing as much music, but more code based around music. if you get me :wink:
also against max as well, is cpu does get silly, because of its object based programming.
all you need really with oF is a text editor and compiler. in reality thats all you need. also terminal :wink: but if have marc, you have Xcode, visual studio with windows.

learning c++ has been great. hard, but great. though i would add that lyndas own tutorials are good, but really bloody boring. just so bloody boring. there is no active goal to what you are building, your not building anything. and I’ve done teaching, and its bad if you dont have something people can build. you are just coding for the sake of it. i think if you are making something with each tutorial, then that makes this just so much better.
with the link i posted before, with the advanced tutorials, it builds to making your own 2d engine. brilliant.
you not only learn about c++ in a good way, and also different ways, but you make a 2d game engine

but as far as openframeworks learning goes. there is a good book on packt which teaches openframeworks. i bought the paper version a while ago and got the ebook with it for [technically] free


im currently back at it with my new blood flowing to get better

oh, and on getting that link, had noticed a new book coming out also, but in april

plus there is the rough as sandpaper nipples ofBook that zach and others are working on. but you can still look and add to and help with.

but i do agree whole-heartidly, c++/openframeworks is great once you start learning and really there is absolutely no end to what you can really do. but again, i would think on how long it is until your project.
you could, could just get a demo version or a limited license. then once its up thats it, go to c++ with some time you now have to spill c++ into.
if you have the time, totally go for c++ and oF

1 Like

I agree with a lot of the discussion above. I think in the end the barrier to entry is not that much higher from no knowledge to basic OF compared to no knowledge to basic vvvv. OF has an amazing community - for the first few years you can get every question answered by searching the forum. This in itself in an amazing advantage - its like a dedicated OF university you can search and get answers from. Knowledge gained from OF gives you knowledge applicable in other fields - you are learning C++. Mostly knowledge you get for solving problems in vvvv or max/msp is a kind of dead end- it is not really true outside of the environment (this is not always the case I know but largely).

I have given beginners classes in OF and in visual based environments, in both cases in a fast intro workshop there is a lot of skipping over -“dont worry about why but we do it this way”. At least when I leave the OF workshops I can leave them with amazing online resources and a huge set of examples- either way beginners have to learn- learning a bit of c++ to do simple things is not that much harder than learning vvvv but I find has way more of a future for the student.

Although vvvv is free many environments like this are not so obviously a free tool that can potentially work well is a must- at 399 I think max/msp is out of bounds for many people- especially outside of Europe and America.

Last cross platform, mac windows linux android ios raspberry pi and more with pretty much the same code- nothing comes close to this and this is a major detail that none of the spaghetti platforms offer. I can offer a beginners workshop and not say you have to have xxx computer, nor do you need 400 bucks to participate.

Fred

The only caveat with OF during the learning stage that I can see is that you must keep clear from C++ standards. I mean, C++ can be (and IS) a very difficult language if you try to follow the best practices : std/boost libraries, templates, and so on.

I found myself on a dead end trying to do things the “right way” (in a C++ purism meaning) instead of doing things the way I can and was quite to loose track of my project.

I use nude pointers ? Ok. tried to mix std::shared_ptr and std::map, I don’t get them. I’m just responsible for what I do
I avoid templates ? Ok. I don’t understand them enough to do any kind of type abstraction (type erasure)
Is multiple inheritance evil ? No. I use compositing but MI is sometimes a good and simple thing
Do I const on const const ? No. Too complicated for me
Lambdas ? No ! Is it OF on Ruby or what ?
Can I use a vector of references ? No. So, do I use references ? Most of the time : No.
Do I use vector iterators ? Nope. [i] is fine !

What I want to say is that with C++11 and C++14 tends to be very very very complex… It’s far beyond my skills and far beyond my needs. I want to stay focused on which goal I plan to achieve, and simple coding (sometimes dirty) is OK as long as the project is done. Do I want to see dancers following visual effects on stage, or do I want to go mad with state of the art C++ and abandon the project ?

I just lost 3 weeks making this mistake, at the end feeling quite nauseous because the more I was trying to understand C++ type erasure, the more the light was escaping to me. I’ll take a breath and then, I’ll go back to my old plain solutions.

So which C++ ? Pre C++98 is fine. I just want C with classes. Of course my feelings are totally biased :smile:
But for sure, the 700+ pages book about C++ I got from the town library will soon return on theirs shelves !

I’m amazed by all these replies! Nothing compared to the few replies in the VVVV forum!

The more I read the more I get totally motivated to start learning!
It gets more and more clear that working with code has more future and broader extensions for me than tools with a visual surface.
PLUS the fact of being multiplatform! Working with raspberry pi gets very interessting with this point!

@notpelsiwel
I’ll have a look at this youtube channel you gave me and at the books. They look great!

@tactif
thats a good point to remember - not to loose track of the projects goal. I remember my dirty code I wrote for my final thesis. Back than I had no experience with writing Processing, mostly copy and paste. year later, when I got really into Processing I had a look at the code again…How could this code actually work? ?? I deleted at least 2/3 of it and it was still working :slight_smile: the code was a mess!

Good thing is, I’ve got enough time to start learning.

cool cool. i think you are making a great choice. c++/openframeworks is so extendible. so even if you felt in some way that oF was not for you. you can find another creative coding platform, there are many about. obviously its better to stick with one type, otherwise its just battling then :wink:

i think brush up on c++ is good, its also nice to know a few things. not everything, but just some of the broad strokes that makes coding what it is. understanding for loops, if statements. some of the most used things.
i do agree with @tactif - but again, learn what you can, or feel interested in learning. if you do go that path of ‘right, im going to learn c++’, then it will be just a bit much, and more so quite boring, i feel. i have been learning c++ more and more, but skip around things that i really want to know. but also with the youtube link i gave before, that at least has a goal to what you can do, which i like. its practical rather than just being informative. and also he sounds like he enjoys what he does, which i think makes you want to do more.

but go for it. learn learn learn :wink:

i haven’t really used vvvv so i can’t comment much on it, but elliot woods built an addon that lets you share texture data between the two:


it’s a couple years old so not sure if it’s up-to-date, but it might mean for your sake that focusing on one or the other may not box you in very much.

@elliotwoods might be can give some insights on both frameworks,:slight_smile:

Had this conversation a few times…

OF has a wider community, largely because it’s ‘free-er’ (cross platform, open source, used in education, more general purpose in some ways). If windows isn’t your thing then I’d probably suggest not VVVV as you want to learn something you’re going to spend time with / have running in the background.

VVVV is better for graphics and rapid development

Max/MSP doesn’t compete at either of those (free or great graphics engine) but is an interesting choice if you have a passion for audio.

Sorry for hijacking this topic (with a somewhat related question), but can some of the veteran guys maybe give us beginners a great list with tutorials or videos on how to write solid (better) cpp code? :smiley:

Some of my frustrations when learning c++ through trail and error googling/youtubing:

  • tutorials are very boring and never go somewhere
  • not that much focus on creative coding (graphics, installations, art, design, …)
  • a lot of different coding styles (all pointers vs non-pointer style vs …)

I’m currently looking into the game dev youtube channel @lewislepton posted, but more is welcome! :smiley:

@polyclick try the oFBook?