» Blog
This site relies heavily on Javascript. You should enable it if you want the full experience. Learn more.

Blog

new post

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.

  reset tags

addon-release core-release date devvvv gallery news screenshot stuff
delicious flickr vimeo
Order by post date popularity

There's been another update to the mouse and keyboard nodes before but that turned out to still cause troubles:

  • key presses could still be missed (think: typing too fast on typewriter)
  • global keyboard didn't work properly with all applications
  • mousewheel didn't work globally
  • no nodes to deal with touch devices (2013! hellooo!)

Now there've been notable contributions to work around some of those issues, like windowstouch, global-keyhook and directinput-(devices) but those being really basic things we thought we'd give it another shot.

So here is what you get:

  • Keyboard and Mouse nodes in variants: Desktop (was: Global) and Windows
  • where Keyboard and Mouse (Desktop) are spreadable (ie. understanding multiple keyboards/mice attached. quite nerdy, what you think?)
  • a new Touch (Devices Window) node
  • all those nodes come with a Queue Mode to distinguish Enqueue (don't miss anything) and Discard (just take the latest) modes
  • KeyStates, MouseStates and TouchStates split-nodes (for comfortable use in subpatches)
  • KeyEvents, MouseEvents and TouchEvents split-nodes (allowing for advanced ... stuff)
  • join-nodes for some of them

like so:

Device type Source nodes Sink nodes
Keyboard Keyboard (Devices Window)
Keyboard (Devices Desktop)
KeyEvents (Keyboard Join)
KeyEvents (Keyboard Split)
KeyStates (Keyboard Split)
Mouse Mouse (Devices Window)
Mouse (Devices Desktop)
MouseEvents (Mouse Join)
MouseStates (Mouse Join)
MouseEvents (Mouse Split)
MouseStates (Mouse Split)
Touch Touch (Devices) TouchEvents (Touch Split)
TouchStates (Touch Split)
As you can see from the table not all possible combinations have been implemented. We concentrated on those which we felt had a good use case.

For the plugin-developer:

  • Plugins that are using the (now) legacy "KeyboardState" and "MouseState" datatype don't need to be modified - vvvv is gracefully taking care of this with an auto-wrapper.
  • The new "Device" datatype merely is a wrapper around a push based sequence of Device notifications. See KeyboardNodes.cs for an example of how to use it in your new developments.

all available now for testing with the latest alpha builds

Elias, Tuesday, Dec 10th 2013 Digg | Tweet | Delicious 13 comments  

Due to our recent build server change, we accidentally broke the fetch-binaries script, which gets called by various post merge/checkout hooks installed by the init script and so in turn we managed to break the whole checkout/pull procedure :/

Sorry for that.

We decided to get rid of all these post merge/checkout hooks entirely and let the user decide when to invoke the fetch-binaries script for the following reasons:
The init script was used in the past to install post merge/checkout hooks to your local .git folder. These hooks did stuff like updating symbolic links or downloading a matching vvvv.exe from our build server. We got rid of the symbolic links about a year ago and the automatic download of a new vvvv.exe everytime you switched a branch started to get cumbersome.

Now in order to get everything running again you'll first need to delete those broken post merge/checkout hooks installed in your local .git folder.
Navigate to vvvv-sdk\.git\hooks and delete all non-sample files like this:

You can now do the usual

 git pull upstream develop

And after ensuring that powershell 3.0 is installed (installed by default on windows 8) you can fetch a matching vvvv.exe (32 bit) with

 scripts/fetch-binaries

Or in case for a 64 bit version do a

 scripts/fetch-binaries x64

We've also updated the vvvv sdk page to reflect these latest changes.

Elias, Monday, Dec 9th 2013 Digg | Tweet | Delicious 3 comments  

When writing a plugin for vvvv the developer needs to at least add a reference to the VVVV.PluginInterfaces assembly. In order to do so there've been two choices up till now:

  1. Reference the assembly directly (e.g. from a vvvv-release)
  2. Reference the VVVV.PluginInterfaces project from the vvvv-sdk

Both of these choices have drawbacks. Referencing directly requires the developer to update the assemblies manually with every new vvvv release, referencing the project enforced the inclusion of the whole vvvv-sdk which is quite large and sometimes tiresome to build.

Thanks to NuGet (a package manager for the windows development platform) and TeamCity (a build and NuGet server) a third choice emerged without the drawbacks mentioned above: referencing the assembly via a NuGet package.

Everytime our build server builds a new version of vvvv, it will also create a bunch of NuGet packages (VVVV.PluginInterfaces, VVVV.Utils, etc.) with the appropriate version information. When doing an alpha build those packages will be considered as a so called pre-release package by NuGet, when doing a beta build those packages will be considered as a stable release.

All packages prefixed with VVVV. are intended to be used for plugin development only and will therefor install all references in a way so that they won't get copied to the output folder (Copy Local set to false). This was done to avoid assembly conflicts at runtime.

Now in order to create a plugin for vvvv by using NuGet, the developer has to:

  1. Ensure the project is targeting at least .NET Framework 4.6.1 and is configured with the platforms x86 and x64.
  2. Add http://teamcity.vvvv.org/guestAuth/app/nuget/v1/FeedService.svc/ as a NuGet package source in the settings of the NuGet package manager shipped with either Visual Studio or Sharp Develop.
  3. Select the VVVV.PluginInterfaces package and click install.

NuGet will now download and add all the necessary dependencies to the project file and whenever a new version of vvvv is available, the NuGet package manager will ask whether or not to update the installed packages.

When installing the packages it might happen that the IDE won't find the referenced assemblies immediately (putting a warning sign on it, or not even showing them). In such a case ensure that the solution build configuration is setup properly (most of the VVVV.* packages are only available for x86 and x64, not AnyCPU) and/or reload the whole solution.

As of version 34.101 the packages should work in AnyCPU - for details see here

EDIT:
As of beta35 the official vvvv packages on nuget.org contain the AnyCPU configuration. no need for 'pre-release' setting or special nuget server anymore, unless you need features that are only available in the current alpha releases.
Elias, Thursday, Nov 28th 2013 Digg | Tweet | Delicious 18 comments  

This was long overdue. While patching with vectors it happens quite often that you have to convert from 2d to 3d or vice versa. Until now you had to create the appropriate vector join/split nodes and connect the components with each other. this is history. the new swizzle nodes should cover 90% of those cases.

And while at it, the vector join/split nodes got a rewrite and are now 4-5 times faster.

Try it out in the latest alpha build and report the bugs as usual.

best,
dvevvsv

tonfilm, Thursday, Oct 31st 2013 Digg | Tweet | Delicious 3 comments  

Announcing a random new feature: ctrl+F10 to toggle debugging spreadcounts

A link can have any of 4 styles:

  • dotted: when carrying ø
  • normal: when carrying 1 slice
  • thin: when carrying a slicecount less than half of the patchs maximum spreadcount
  • thick: when carrying a slicecount greater then half of the patchs maximum spreadcount
  • fat: when carrying the patchs maximum spreadcount

We hope this to be specifically usefull when teaching beginners about spreads or hunting for large spreads or ø.

Available now in latest alpha builds

joreg, Tuesday, Oct 22nd 2013 Digg | Tweet | Delicious 6 comments  

holahola,

this is to update you on some recent fixes on boygrouping. As has been pointed at in this thread boygroup-(critical)-bugs there've been some unresolved buggers after the transition to a new networking library vvvv had to undergo with the all the unicode/64bit updates for beta29.

Here's whats fixed:

  • clients/server can again be started in any order and will find each other
  • clients again try to reconnect periodically when they lost connection
  • a memory leak that kept a copy of each graph-dump for each client is closed

There is a thing though that may cause troubles but has to be solved patchwise: By default vvvv sends value-changes in the graph via udp but switches to sending via tcp if a message is too large (ie. a spreadcount too high). Please read the updated section boygrouping basics#warnings to understand how to detect those bottlenecks and how to deal with them.

Those fixes should get your boys back n'sync.
Please check the latest alpha builds for those changes.

joreg, Thursday, Oct 10th 2013 Digg | Tweet | Delicious 2 comments  

dear commercial users of vvvv,

it has been brought to our attention that you're looking for a way to protect your precious patches from some untrustworthy bunch.

для Вашего большой бизнеса

as announced during the keynode at node13 such a system is now in place and ready for testing. interested parties who are owners of an active (not older than a year) vvvv license please send an email with their postal address to licensing@vvvv.org to apply for a test-dongle. you'll then receive further instructions.

pricing and public availability still to be announced.

joreg, Friday, Apr 26th 2013 Digg | Tweet | Delicious 5 comments  

vvvv contained two RS232 nodes, both with different pros and cons:

  1. RS232 (Devices) shipped with the core package
  2. RS232 (Devices Spreadable) shipped with the addonpack
    • + spreadable
    • - used datatype String

apart from those differences both of them didn't output the DSR, DCD, CTS, RI and Break states as requested by reaktant in this forum post.

we therefore decided to make the previous two nodes legacy (not breaking existing patches) and rewrite the RS232 node as a plugin with all the features of the two previous nodes combined:

  • uses new datatype RAW
  • fully spreadable
  • allows setting of DTR, RTS and Break states
  • returns DSR, DCD, CTS, RI and Break states

the new RS232 (Devices) is now available for testing in the alpha versions of vvvv >= 29.5.

Elias, Wednesday, Apr 17th 2013 Digg | Tweet | Delicious 4 comments  

the mouse and keyboard nodes of vvvv have seen a complete rewrite in the lastest alpha version (29.4). their interface (in- and outputs) and behaviour is still the same, but under the hood they work differently:
up till now vvvv installed a so called system wide global hook on startup which rerouted mouse and keyboard messages from other processes to the vvvv process.
for reasons beyond the scope of this blog post, this caused random freezes of vvvv or even crashes of other processes. another issue was that it only worked with one vvvv instance at a time.
with the new nodes we got rid of those global hooks. in case of the window versions of the nodes we use a much safer technique called subclassing and in case of the global versions the keyboard and mouse states are retrieved at node evaluation.

hopefully this change shouldn't affect the user at all, if it does, please report in our alpha forum.

what's probably also worth mentioning is that the mouse nodes now output the state of XButton1 and XButton2.

to plugin developers:

  • if you're writing a gui-plugin (eg. a renderer) and want the window versions of the mouse and keyboard nodes to work with your plugin, implement the new interface IUserInputWindow where you return the window handle of the control which has focus. for an example have a look at the source code of our svg renderer.
  • MouseState uses the System.Windows.Forms.MouseButtons enumeration now.
Elias, Friday, Apr 5th 2013 Digg | Tweet | Delicious 3 comments  

Made a little cleanup of the midi output modules.

Renamings:
MidiCtlOut (Devices) -> MidiControllerOut (Devices)
MidiPgmOut (Devices) -> MidiProgramOut (Devices)

There were two midi note out modules, i renamed one to MidiNoteOut(Devices Bang), check the help patch to see the difference between the two.

And the two MidiControllerOut modules are merged, it has a bool to enable the send on change behavior.

All modules use midi channels 0-15 now.

This might break some midi patches of you. very sorry, but its clean now.
If you encounter any problems, please check the midi channel and whether you have the correct module loaded.

happy midi,
tf

tonfilm, Monday, Jan 28th 2013 Digg | Tweet | Delicious 0 comments  

anonymous user login

Shoutbox

~15d ago

~18d ago

joreg: The Winter Season of vvvv workshops is now over but all recordings are still available for purchase: https://thenodeinstitute.org/ws23-vvvv-intermediates/

~24d ago

schlonzo: Love the new drag and drop functionality for links in latest previews!

~1mth ago

joreg: Workshop on 29 02: Create Sequencers and Precise Clock Based Tools. Signup here: https://thenodeinstitute.org/courses/ws23-vvvv-08-create-sequencers-and-precise-clock-based-tools-in-vvvv-gamma/

~1mth ago

joreg: Workshop on 22 02: Unlocking Shader Artistry: A Journey through ‘The Book of Shaders’ with FUSE. Signup here: https://thenodeinstitute.org/courses/ws23-vvvv-12-book-of-shaders/

~2mth ago

joreg: Talk and Workshop on February 15 & 16 in Frankfurt: https://visualprogramming.net/blog/vvvv-at-node-code-frankfurt/

~2mth ago

woei: @Joanie_AntiVJ: think so, looks doable