Some thoughts on vvvv

trying to keep it simple:


and maybe put an I before the H

I’ve always been a PC user but rrrr’s thoughts are interesting. One of the short comings of this design tool being Windows only is that universities are heavily Apple Mac-orientated, as far as UK design courses go. I remember in my last year of study arguing they should have at least one Mac running Bootcamp, to no avail, and I was forced to do everything on my dying Toshiba, God rest its soul.

Max/MSP with Jitter on the other hand is taught in a fair few digital interactive courses I hear from people I’ve come in contact with that either study or teach the subject, always on the same defacto hardware, forcing the likes of me to add to Steves Jobs’ pension so I take my work home. None have ever heard of vvvv, and while the name doesn’t slip off the tongue in conversation, I think a major hindrance to it being more widely used is that it struggles to get a mention in design/academic spheres: like Sony Vegas vs Final Cut Pro, design courses will always opt for Mac friendly software.

While I’m happy to be a vvvv evangelist its much harder to be a Windows one. But probably not as hard as porting vvvv DirectX to OpenGL/CL. I imagine. I’ll stick with my PC.

@catweasel thanks, i’ve totally forgotten about that. helps a lot, but doesn’t fix the draggin’ thang.

@hannah good point. windows is the minority in our world.

ps. just reread everything and found one point that might have been missunderstood because my thought wasn’t clearly drafted: it’s not ridiculous to stick with directx (although i think that’s not the right path for named reasons…). what i wanted to say: microsoft’s decision is ridiculous installing windows 7 on a 10" touchscreen device, without adapting their UI.

pps. won’t argue on any of the win/mac stuff. clearly this wasn’t about apple but the entire world that lies outside the bounds of something we know as a Windows PC now; where it’s not possible to use vvvv for, but it should be possible.

oh, and i totally do like great tremendous phenomenal videos like this one:

I feel in-between about this discussion:
1-I am a mac user so personally i used to dislike windows pretty much. I decided to bootcamp just because of vvvv. But after almost 1 year using it i have the sensation it is about getting used to the system. The three button thing was strange at the beginning but i do agree it is a functional interface.
2-Coming from a more jitter-based background(though I really do love vvvv), i think that each program has something good to offer BUT jitter is far more flexible when it comes to integration: you have the max/MSP libraries together with a well supported GLSL wrapper(jxs) and the integration of java and javascript which, believe me, is a very powerful tool(you can port processing code or use external libraries for physics, etc). So sometimes i miss these important features on vvvv. I don’t think an FFT is enough to represent the immense possibilities of bridging sound into image and vice-versa.
3-HOWEVER, it is nice to have vvvv working only on windows because it allows the use of DirectX which, indeed, handles some features better than openGL. To swap between both of them is actually quite enriching. Doing more and more vvvv defies and enriches the perspective i have about certain visual paradigms.
Emmanuel

I like this thread, thanks for starting it rrrr.
Personally I dont feel any limitation because its Win only. I like to have a sort of guts-knowledge why something isnt working as expected. Dont think one will ever have this on all plattforms.
-I dont think its a win for V4, its interface and technology (directX) if it would be available on Linux/Mac/Iphone/Android/others as well. There would be so many drawbacks out of plattform limitations, that in worst case the lowest common denominator would rule others.
-As xd_nirto said: Better to focus on V4s own strengths than misled into other domains you cant win. And right now in my perspective the strengths is the developer interface, the right programming depth (precompiled nodes), and even openness (plugins, freeframe, xml source) and most important warm and helpful community of visuals and nerds.
For me it feels right, but enriching the horizon is always good.
@efe Yes, a sort of javascript interpreter would be awesome or a refereshed flash plugin would do it either.

Just an idea: why not to kill two birds with one stone and make a sort of player application for different systems and even browsers (keeps limitations onto its plattform), but developing and patching will still be open on windows like now.

  • Just an idea: why not to kill two birds with one stone and make a sort of player application for different systems and even browsers (keeps limitations onto its plattform), but developing and patching will still be open on windows like now.

this is also what i wanted to suggest: keep kernel and interface separate (Pd uses a network protocol for that). the kernel can run on a multitude of devices (even on Apple devices through MonoTouch); someone else could write an interface for mac or linux then.

I was just re-reading some of this thread and can’t believe I didn’t comment on this earlier:

  • The PC era just ended.

“A personal computer may be a desktop computer, a laptop, tablet PC or a handheld PC (also called palmtop).”

Don’t panic. ;)

Although we are seeing a lot of new devices with different operating systems in the past couple of years (iPhone, Android), this shouldn’t worry you. In 10 years, I bet we will still have Windows, and still be able to run vvvv on it, and use it with a broad range of input and output devices.

I personally have to agree with others about the platform choice and have another comment about screen size. When I think about it, I don’t need or want to run Ableton Live, or Visual Studio, or vvvv on a small screen on some weak mobile device and control it using my fingers. Even a 15" laptop screen is sometimes small for those apps. On the other hand, running web, email, youtube, music, video, gps navigation etc on a 5" or 10" screen? Sure, why not. :)

i think crossplatform would be good for vvvv, cause it would (imo) expand the userbase and streamline the work process, e.g. for people bootcamping into windows just to fire up vvvv. or enabling me to fully switch to linux :D. or enabling people to build and market hardware using vvvv, without having to pay windows license fees. a karistouf whitecat/black cat hardware device comes to mind, or other stuff?
having said that, i realize that it would be difficult to do. on the disadvantages of opengl vs directx i can’t comment much, only that other softs seem to be doing really well without directx (openframeworks and processing come to mind, as well as i don’t know how many great mac and linux apps)?

re the 3button mouse: i disagree with rrrr. having 3 buttons on your mouse multiplies the interaction possibilities you can bring to bear with one hand. recognizing that vvvv is a complex environment to work in (as opposed to, say, moorhuhn, which can easily be handled with a onebutton mouse), this is imo necessary.
also, i think that touchscreens are an ecxiting method for interaction, but mainly suited for control, and not (software) production. while it makes sense to use a simple painting software with a touchscreen (fingercolors style), no one would write said software with a touchscreen, and writing software (patches) is what we do in vvvv… still, you can patch yourself a nice interface in vvvv other language of your choice, and fire away with a touchscreen (touchosc shows this very nicely), but patching? no, i don’t think this makes sense.

re the server-client idea: i’m not sure if this would be used very much, you’d have to fire up two computers/OS’s to patch? this makes sense for remotely programming one or many computers which are fixed e.g. in an installation (bring your laptop, connect via LAN, fix patches), but if you are mainly using one machine for vvvv (e.g. the VJ use case) this doesn’t bring advantages i can see right now.

i can feel there’s holes somewhere in my arguments, but i’m not exactly fit right now, so i don’t find them ;-). just had to chip in here. should we maybe split threads since this discussion is getting really large, and maybe covers too many topics to discuss efficiently in one thread?

@frank

…refereshed flash plugin

you know we have a Flash(EX9) node now that implements flash in directX and allows custom mouse input. The only thing it is missing is a Get and Set technique but I’ve got my fingers crossed that that is coming.

For me, it is really interesting the discussion triggered around the topic of the cross platform:
1- I assume that switching from directX into openGL would mean to change considerable portions of the application, meaning that developers would need to switch all their priorities into the porting.
2-Some important elements of vvvv, the HLSL shaders, would need to be translated into GLSL. Believe me, you don’t want to do such a task!. Toneburst was dealing with the topic and even wrote on the vvvvorum asking for advice. Checking the threads would bring light into the topic.
3-Let’s say that, hypothetically, vvvv becomes a cross platform application, guess what? it would need to compete with already well developed openGL based applications. This way, it would need to deal with the versatility of processing, the GLSL/openCL architecture of QuartzComposer and the high-degree of multimedia integration that jitter has. What would be the share of cake for vvvv?…i guess.
4-Maybe what makes me very ‘conservative’ in my posture it is the admiration for the artistic achievements of vvvv AS IT IS. I am not pointing that the program should stay like this forever, but it is precisely the essence of its architecture that made me bother with a partition and all the process of bootcamping every time i want to use it. vvvv is a beautiful piece of software worthy of that.
Emmanuel

For me, it is really interesting the discussion triggered around the topic of the cross platform:
1- I assume that switching from directX into openGL would mean to change considerable portions of the application, meaning that developers would need to switch all their priorities into the porting.
2-Some important elements of vvvv, the HLSL shaders, would need to be translated into GLSL. Believe me, you don’t want to do such a task!. Toneburst was dealing with the topic and even wrote on the vvvvorum asking for advice. Checking the threads would bring light into the topic.
3-Let’s say that, hypothetically, vvvv becomes a cross platform application, guess what? it would need to compete with already well developed openGL based applications. This way, it would need to deal with the versatility of processing, the GLSL/openCL architecture of QuartzComposer and the high-degree of multimedia integration that jitter has. What would be the share of cake for vvvv?…i guess.
4-Maybe what makes me very ‘conservative’ in my posture it is the admiration for the artistic achievements of vvvv AS IT IS. I am not pointing that the program should stay like this forever, but it is precisely the essence of its architecture that made me bother with a partition and all the process of bootcamping every time i want to use it. vvvv is a beautiful piece of software worthy of that.
Emmanuel

re efe:
3) but competition does not go away from choosing a niche?

example: if vvvv has to compete with e.g. processing’s versatility, as you hypothesize, it would already have to compete right now, because processing runs on macos,win,linux! processing can compete with vvvv on windows, and vvvv can’t compete with processing on the other platforms.
and for bootcamping mac users like you, quartz composers GLSL/openCL architecture, and jitter, are already competing with vvvv. so what’s your point? why would cross-platform be bad for this?
i think it’s on the contrary, it opens new platforms and niches for vvvv to explore and gain a foothold in. the cake can’t get smaller…

  1. and why would the essence of vvvv’s architecture and beauty be copmromised by going crossplatform and easing your workflow? does it somehow become unworthy because it runs on linux or macos?

wow, what a discussion. thanks rrrr for starting this discussion, and thanks for the manifold contributions.

some more thoughts:

(1) user interface. in fact its true that vvvv somehow requires the three button mouse. as great as this is, we could also complain about vvvv not being able to make the most out of the classic keyboard keys (think e.g. arrow keys for selections). but in fact a very constructive dialog is developing here - how to use multitouch metaphors or wacom tablets for efficient patching? what about gestures? especially for tablets it seems that there are just some tiny things wrong to get people productive. so what metaphors are cool? which details need to be changed?

(2) if this is about thinking out of the box, i´d love to avoid discussing the pros and cons of apple vs. windows vs. linux again and again. seen from a distance they are the same. they run on the same processors, run the same graphic processors, they have the screens, even the keyboards have the same layouts. just programming is completely different.

how would a vvvv run on an arduino? how would vvvv run on an amazon elastic compute cloud? how would a girlgroup out of mobile phones work? is a dataflow metaphor the right thing when designing applications for a cloud of mobile phones? any great examples? (and i am not talking about yahoo pipes here) how would one do stateful transactions with a data flow language? isnt the ipad just a nicer looking netbook with more restricted (and nicer looking) software? btw. how would one comply to apples rigid rules for application look and feel in a graphical language like vvvv? would you rather open up an editor to enter assembly code? pass strings with x86 machine code into nodes and let them run? run vvvv in a browser?

(3) one major issue behind the recurring “when will vvvv run on a mac” discussions: from vvvv´s architecture, it wouldnt be difficult to create a set of nodes and renderers for opengl or quartz3d or whatever rendering library one would favour. somehow similar to the TTY, GDI and EX9 subsystems right now. In fact the existing plugin api would probably only need some minor additions to allow for such an endeavour. BUT, and this is the major reason for myself being very conservative about this - an OpenGL patch would require a different style of patching than an DirectX patch, an Quartz3d patch would never run on linux etc. The libraries are just different. While in all these libraries many things are roughly the same, things like render states, shader syntax, matrix orientation, performance tweaks etc. are completely different. One of vvvvs strengths is, that people CAN actually care about these things, and you CAN get amazing results when knowing the details.
So either one would go the least-common-denominator approach and avoid all the cool features of e.g. OpenGL to exactly emulate DirectX9 OR each platform would have its different incompatibe patches (and their separately maintained subsystems).

waiting for WINE to catch up always seemed to me the simpler option. but on the other side libraries are also developing further and instead of moving vvvv to DirectX11 there might be other sustainable paths instead.

wow, what a discussion. thanks rrrr for starting this discussion, and thanks for the manifold contributions.

some more thoughts:

(1) user interface. in fact its true that vvvv somehow requires the three button mouse. as great as this is, we could also complain about vvvv not being able to make the most out of the classic keyboard keys (think e.g. arrow keys for selections). but in fact a very constructive dialog is developing here - how to use multitouch metaphors or wacom tablets for efficient patching? what about gestures? especially for tablets it seems that there are just some tiny things wrong to get people productive. so what metaphors are cool? which details need to be changed?

(2) if this is about thinking out of the box, i´d love to avoid discussing the pros and cons of apple vs. windows vs. linux again and again. seen from a distance they are the same. they run on the same processors, run the same graphic processors, they have the screens, even the keyboards have the same layouts. just programming is completely different.

how would a vvvv run on an arduino? how would vvvv run on an amazon elastic compute cloud? how would a girlgroup out of mobile phones work? is a dataflow metaphor the right thing when designing applications for a cloud of mobile phones? any great examples? (and i am not talking about yahoo pipes here) how would one do stateful transactions with a data flow language? isnt the ipad just a nicer looking netbook with more restricted (and nicer looking) software? btw. how would one comply to apples rigid rules for application look and feel in a graphical language like vvvv? would you rather open up an editor to enter assembly code? pass strings with x86 machine code into nodes and let them run? run vvvv in a browser?

(3) one major issue behind the recurring “when will vvvv run on a mac” discussions: from vvvv´s architecture, it wouldnt be difficult to create a set of nodes and renderers for opengl or quartz3d or whatever rendering library one would favour. somehow similar to the TTY, GDI and EX9 subsystems right now. In fact the existing plugin api would probably only need some minor additions to allow for such an endeavour. BUT, and this is the major reason for myself being very conservative about this - an OpenGL patch would require a different style of patching than an DirectX patch, an Quartz3d patch would never run on linux etc. The libraries are just different. While in all these libraries many things are roughly the same, things like render states, shader syntax, matrix orientation, performance tweaks etc. are completely different. One of vvvvs strengths is, that people CAN actually care about these things, and you CAN get amazing results when knowing the details.
So either one would go the least-common-denominator approach and avoid all the cool features of e.g. OpenGL to exactly emulate DirectX9 OR each platform would have its different incompatibe patches (and their separately maintained subsystems).

waiting for WINE to catch up always seemed to me the simpler option. but on the other side libraries are also developing further and instead of moving vvvv to DirectX11 there might be other sustainable paths instead.

  1. sounds great to expand the interactivity options, as long as they don’t become essential to the experience.
    [snipped away the blabla](snipped away the blabla) btw is there no possibility to have a three-button mouse on a mac? does it for some (apple) reason not work with the hardware?

  2. thank you very much for your valuable insights into the decision process here! bummer to hear it, though…

WINE: from what i can see, they have made tremendous progress in the last years. vvvv somewhat “runs” on WINE, i think GDI renderers work, but directx renderers stay black or gray, and the shell is spitting loads of fixmes at me. i’m way out of my depth here to judge the feasibility of complexity of actually fixing the errors, but maybe the wine devs could share insight? e.g. from what i’ve heard, one of the devs responsible for wine’s directx support is sitting here in vienna at the technical university.

what are you saying exactly with your last sentence? :-)

  • is there no possibility to have a three-button mouse on a mac? does it for some (apple) reason not work with the hardware?

sure it’s possible. the mac has become a standard pc with the switch to intel architecture. but when patching in the train for example, using a mouse isn’t possible sometimes, or when there is just no space for your mouse in experimental night venue setups etc.

counterquestion: are there still no other notebooks around, where multitouch gestures are supported just like on a macbook? once you’ve used double swipe or tripple swipe in a webbrowser you don’t want to go back using your mouse, believe me. win7 is multitouch out of the box aight? apple patented this?

  • WINE

i’m pessimistic about the wine thing. the best solution running vvvv on a mac is setting up winxp in vmware and use the ‘unity’ feature (all the windows clutter goes away, you get vvvv as an application in the dock, almost as it would be running on the mac). dx9 is working too. but of course it’s far slower than running native, which would also always be the case when using WINE libs. it adds complexity, not reduces it. for mobile devices this would be a no-go too.

counterquestion: are there still no other notebooks around, where multitouch gestures are supported just like on a macbook? apple patented this?
i think you answered this question yourself. :-( software patents are ridiculous imho

but of course it’s far slower than running native, which would also always be the case when using WINE libs.
sorry but you’re wrong. using the wine libs is not far slower than native. ask all the people playing directx computer games on wine.

it adds complexity, not reduces it.
so? adding other features (e.g. gestures and multitouch) also adds complexity. what’s your point?

This an good thread, I would really like to join the discussion.

first off @rrrr, I have an asus eeepc and a lager dell laptop, both have multitouch touchpads with gestures.

Secondly what I miss most besides little quirks here and there would be the the possibility of some sort of object oriented approach or some sort of possibility to use subpatches/modules more like objects.

I know you can switch patches using setpatch but it quickly becomes a very complex job if you want to programmatically “repatch”

I have no idea how to do this… I have been told that max/msp is object oriented so perhaps a look in that direction would be helpful.

Some other thoughts

I know there have been made some efforts into making user interface elements. but it would be nice to have some nodes to quickly and easily create a user interface. to me it doesn’t even have to look cool, but I guess I am alone with that.
It could perhaps even be a separate tool that ran by itself and used osc or something similar to communicate to vvvv or something completely different… that tool could be multi platform since its main task would be to make a user interface. of course it should be multitouch, with this you could create your own lemur really fast. it could perhaps even run on devices like the iPad. I would like it to be a patching or similar tool, since I dislike code ;)

regarding the whole multiplatform issue, I don’t really care if it run on other platforms than windows. I find the much larger options of hardware/software ranging from really cheap crap computers to very high end workstations very appealing. If vvvv swapped to mac or linux, I would probably too.

just my 0.02€

sunep

  • sorry but you’re wrong. using the wine libs is not far slower than native. ask all the people playing directx computer games on wine.

hmm benchmarks are mixed…

http://wiki.winehq.org/BenchMark-0.9.5

…but i think you are right:

http://www.phoronix.com/scan.php?page=article&item=crossover_games&num=4

  • so? adding other features (e.g. gestures and multitouch) also adds complexity. what’s your point?

wine is a workaround, that would work for os x + linux, nothing else…

  • ui controls

@sunep have a look at the new GUI plugs by tonfilm / vux. you’ll patch your controls in seconds… if you want to have a controller on the iPhone/iPod touch use TouchOSC