Blog-posts are sorted by the tags you see below. You can filter the listing by checking/unchecking individual tags. Doubleclick or Shift-click a tag to see only its entries. For more informations see: About the Blog.
previously on vvvv: vvvvhat happened in March 2018
more than a month now since the release of b36 and we are happy with it. but are you? anyone using a previous version still? meanwhile we have b36.1 heavily in the making where we are concentrating our work on the vl CoreLib. making it more managable so we can finally open it up for contributions. some of the fruits can already be seen in the nodebrowser if you're using alpha builds. announcement and some explaining words on this still pending. and then quite some crazyshit is happening in the secret labs that we hopefully can talk about soon...geee
one of the more often requested features for vvvv was the ability to run different parts of a project in different mainloops. since b36 this is conveniently possible using vl and the article Patch Your Own Mainloops explains how. no more excuses...
still more on the beginner end of things?
and in case you missed the annoucement: LINK - the vvvv summercamp application will open soon and selected participants will then be informed by june 8th, leaving you with 2 months to arrange your travels.
|some nifty new stuff:||
and updates for two oldygoldies:
and two nice teases from upcoming work by microdee as part of his md.ecosystem 3.0:
happy to see three works in progress shared in april. keep them coming:
and meso documented 3 of their latest works:
Welcome dear patchers to a new episode of devvvvs giving you control over your PC mainboard.
When you work in vvvv or VL the evaluation of your patch is automatically driven by a mainloop. It executes the nodes in your patch (usually) 60 times per second and by this allows changes to happen in your patch over time.
If you have a look at the PerfMeter in a renderer with a mainloop timer without any tweaks you will see lots of flickering like this:
Those flickers indicate that the time between two frames of the mainloop is changing a bit every frame. In an ideal world those flickers would not be there and the time between two frames would always be the same. An unstable mainloop like this creates jitter in animations, drops video frames and lets the visual output of your patch look less smooth.
It's quite a difficult task to get high-precision timer events on a modern computer architecture. Timers and me go way back to the early vvvv days at MESO when i worked on the vvvv mainloop and the Filtered time mode. Since then we could improve the vvvv mainloop time stability quite a bit by doing tricks like changing the windows system timer resolution and introducing a short busy wait phase at the end of the mainloop. The result of this work looks like this:
The experience gathered from the vvvv mainloop improvements is now available in the VL library, so you can build your own sub-mainloops.
But why would you need your own timer at all if you have a good mainloop already? There are a few reasons:
In VL the patch of a process node by default has a Create and an Update operation. Create gets called once an instance of the process is created and Update gets called periodically by the mainloop. In this process node patch you can place other process nodes that 'plug into' those two operations by placing their own Create on the Create of the surrounding patch and their Update on the Update of the surrounding patch.
This is the same for stateful regions like ForEach [Reactive], only that the Update of the ForEach region doesn't get called automatically by the surrounding patch but gets called by the events of the incoming observable. More on that in this blog post: VL: Reactive Programming
There are many sources of observable events. For example Mouse, Keyboard and other input devices as well as AsyncTask or MidiIn. The timer nodes work in the same way. The output is an Observable that is on a new thread and either sends the frame number (for the system timer nodes) or a TimerClock (for the MultimediaTimer or BusyWaitTimer). A patch would look like this:
The use of observables also makes it easy to swap one timer for another if neccessary.
Basically there are 3 ways to setup timers in windows and now VL has them all!
This is the most common timer but it usually only has a precision of 16ms. It can be used for recurring events when accuracy is not the most important issue and the interval is in the seconds range or a higher millisecond range. Nodes that use these timers are for example Interval and Timer in category Reactive:
This is a dedicated timer for applications that do video or midi event playback. It is fairly accurate to about 1ms and doesn't need much CPU power. So it can be used for most time critical scenarios. To use this timer, make sure you enable the Experimental button in the VL node browser and create the node MultimediaTimer:
So that's nice, but it has two little draw backs. You can only specify the period in whole milliseconds and as you can see there is still some flickering in the measured period times. The flickering is well below 1ms but still, we can improve that:
Since its possible to measure time with high accuracy, one can write an infinite loop that always checks the time and executes an event once the specified interval time has passed. This timer always uses 100% of one CPU core because it checks time as often as it can. But hey, how many cores do you have these days? With this method you can achieve precision in the micro second range, which is insane!
If any patch processing is happening on the timer event, the power of your core is of course shared with the busy wait. Just make sure that the processing doesn't take longer as the specified period:
This timer has an option to reduce CPU load for period times that are higher than the accuracy of your system timer. You can specify a time span called Wait Accuracy. This is a time span before the desired end of the period that specifies when the busy wait phase should start. Before that time the timer is set to sleep for 1ms periodically. 16ms is a safe value, but you can decrease it until the Last Period starts to jump in order to reduce CPU load even more.
Both the MultimediaTimer and the BusyWaitTimer start their own background thread with priority AboveNormal. The thread priority setting might become an input pin in the future.
So now download latest alpha, enable the Experimental button in the VL node browser and give it a shot. If anything unexpected happens, let us know in the forums.
HEY we got news!
we will have vvvv beginner's courses in
Berlin, London, Saint Petersburg, Athens and Linz this summer!
In 6 days, these courses will give beginners a solid grip on vvvv basics and interactive tech.
previously on vvvv: vvvvhat happened in February 2018
we did it!
beta36 is out, after only a few months overtime, packed with new features. please read the release notes carefully to learn about all the goodies. judging by the >100 downloads a day and not too many crazy bugreports since, i think it is fair to say at this point that it turned out well. if there is still a particular reason you're using an older version, please make sure to let us know about it!
are you into computer-vision? wanna see one particular thing you can do with beta36? check out our first episode of vvvvTv in which we cover a new computer-vision library for vl available as a prerelease now.
planning your summer travels? save the date for LINK - the vvvv summercamp!
and a new book it out about learning vvvv: it is in chinese. so only the majority of people on earth now got a chance to get in touch with vvvv, horray! many thanks to the authors for their dedication!
|two new ones by new user Bartuc, welcome!||and updates by our trusted gang:|
all not good enough? check out these job boards:
Who david, a a a a, joreg, sebl and hopefully you
When Wed, Aug 8th 2018 - 10:00 until Sun, Aug 12th 2018 - 23:59
Where At a peaceful lake near Berlin, somewhere near nowhere, Germany
We're planning to spend some good times.
Save the date for LINK, the very first VVVV summer camp.
The summer camp will take place from August 8th to August 12th this year at a wonderful and peaceful sight near Berlin. The camp will be a short vacation from your everyday life, a time for ideas and projects you never found the time for.
You are willing to bring your ideas and developments and this communtiy further? Then this is the place for you!
Nota bene: There will be only a super limited amount of seats available. The summercamp is not like an academy or workshop. You are not coming to learn. Here you are coming to share and spend quality time together while bringing forward your developments and ideas for future developments.
Expect 5 fantastic days at the lake with tents, barbecue, wine and overheating notebooks.
So save that date now.
Details on everything and how to apply for it will follow soon here.
we're starting to collect the fruits of our hard efforts of making it easy to use thirdparty libraries. please give a warm welcome to VL.OpenCV
remember the amazing ImagePack initiated by @elliotwoods years ago? VL.OpenCV is essentially the same, only for vl: a collection of nodes for computer-vision tasks based on the industry standard library OpenCV.
OpenCV is a vast library with an endless number of interesting features. elliot back in the days did a great job in hand-picking some of the most interesting ones and wrapping them into easy to use nodes for evvvveryone.
meanwhile OpenCV has progressed and so we thought we'd give it a try and make it accessible for everyone in vl. watch this first episode of vvvvTv where ravazquez who has been working on this for the past 2.5 months, explains how you can use the prerelease package today.
if we haven't missed anything, most of the functionality you know from the ImagePack should already be available, except some special video input devices, StructuredLight and FeatureDetection stuff but on the other hand already much more:
so we have:
and most of the nodes and pins come with documentation in the tooltips!
as opposed to the ImagePack, this library is completely free of the complexities of threading. instead a user can use the threading regions of vl to define their own threading. while this indeed puts a bit more effort on the user we hope that the flexibility in dealing with their own threading outweighs the cons of this.
the library is open for everyone to contribute. since it is mostly done in pure vl, with hardly any c# written, it is quite accessible for everyone to extend. so please do so and best join us in the chat to discuss matters when they arise.
this is a big one!
in the works for more than half a year, it is finally out: beta36 comes with a lot of new stuff for both vvvv and vl. many thanks to everyone who helped us tweak the release by reporting problems with the release candidates. but now please have a look at the following list of highlights of this release:
for many more details, please consult the changelog as linked to below.
so where are we at? with the nobrainer access to .NET libraries now at hand the question "can vvvv/vl do X?" has just become even less relevant. chances are that if you have a .NET library that you want to use in vvvv/vl you can just do so. extending the node libraries of vvvv and vl is therefore now much easier than it has ever been since in many cases not even c# has to be written anymore.
also with the added possibility to create DX11 buffers and images/textures in vl, dx11-heavy projects can gain a lot of performance by doing their CPU heavy parts in vl, possibly using the new AsyncLoop and AsyncTask regions to finally use the power of all your CPUs cores without the need to run multiple instances of vvvv.
consider this release the foundation of all the good things to come. it is now on you to make use of all these new possibilities. we're looking forward to your questions and contributions and to showing you the other things up our sleeves..
Dear patchers worldwide,
we're planning to take the vvvv academy on tour this summer. There will be another course in Berlin in July and we'd like to also take it to 2 more cities in europe or beyond.
The course ideally runs like this:
• wednesday, thursday, friday plus monday, tuesday wednesday of the next week
• 2x3 hours a day
• with ~6 participants
• I'll be coming to run the course and could need a local assistent
So here is our question:
• Do you have an office space (~30sqm room with power, internet, projector) that you could offer for a week?
• In the time between end of July to end of September?
• Can you help us activate your local community so we get ~6 people signing up for a course that will cost 800€?
What's in it for you?
• To be discussed, but for one thing you'll meet a crowd of motivated people who could potentially be interested to work with you in the future.
Please let us know your thoughts and questions. If you're interested please get in touch via firstname.lastname@example.org
it is happening: beta36 is scheduled for a release in early february. we're quite confident with the state of the new features we've added and would like to ask you to give it a final spin with the release-candidates as listed below. please open the projects you're currently working on and see if they run as expected. if not, please let us know in the forum using the alpha tag.
since the dawn of vl, vvvv has become increasingly more powerful. we see initial proof in the works of schnellebuntebilder and intolight who are using the combination already to their advantage. it allows them to create projects of a complexity that would have been very hard if not impossible to realize with vvvv alone.
so far though, vl could only be used for IO and logic tasks. anything related to rendering was still in the hands of vvvv DX9/DX11 only. with beta36 we're introducing a new bridge that will allow you to prepare textures and buffers with the convenience of vl features and hand them over to vvvv using a new set of nodes. have a look at \girlpower\VL\DX\DynamicBuffersAndTextures.v4p to see how this works! and here are some more highlights:
for an in depth list of changes have a look at the changelog.
VL documents you save with these candidates will not open anymore with beta35.8!
if you have the feeling that this release will not have anything for you, we'd only partly agree. true, maybe not directly. but we'd like to point out that what's hidden behind the unpretentious bullet point "Use .NET Libraries and Write Custom Nodes" listed under vl above can conservatively be understood as a bombshell. it means that anyone now has access to a vast range of .NET libraries in vl and therefore can also use those in vvvv. while this may exceed your personal abilities, it lowers the barrier to contribute to vvvv/vl in general by far and if we get this communicated right, this should be a win-win for evvvveryone. so tell your .NET developer friends about this..they should understand the implications.
at the same time this makes it easier for ourselves to now start building more interesting libraries for vl, which in turn will be a win for all vvvv users as well. hope this makes sense..
but now we wish you all some happy holidays and are waiting for your feedback on the candidate!
anonymous user login