vvvv Changelog

New in version 45 Beta 29

January 3rd, 2013
  • General:
  • vvvv now comes in a 32bit and a 64bit flavour, the second of which has some nodes missing, see: vvvv-64bit
  • vvvv is now fully unicode internally which removes taking care of ANSI/UTF8 settings on various string-handling nodes, see: unicorn-in-alpha-builds
  • there is a new basic data-type RAW for low-level bytehandling, see: new-datatype-raw
  • necessary switch to AddFlow5 component for gui slows down moving of many nodes (sorry for that)
  • fix for a special case of refactoring/grouping
  • CreatePatchInPatch now creates window and node at cursor
  • now using a new Directory-Selection Dialog
  • crack now checks for availability of MSVC++ 2008 redistributables as well
  • added /unregister commandline-option for crack.exe
  • some boygroup fixes:
  • Values are not transmitted as double (LittleEndian). was single (BigEndian). more bandwidth but less cpu usage
  • Strings are transmitted with UTF8
  • Colors are transmitted as colors (much faster)
  • The new raw datatype can be sent over network (boygroup)
  • IOBox (String) read from wrong array (action array) in case it was boygrouped
  • fixed initialization issue when creating plugin pins (/forum-alpha/weird-new-behavior)?
  • Fixed random memory corruption
  • Fixed some XML error warnings on startup
  • If creation of plugin fails, error won't be logged every frame anymore
  • New nodes:
  • Leap (Devices) implements the leap motion device SDK
  • Player (EX9.Texture) - a high-performance player for picture sequences
  • HTMLTexture (EX9.Texture) - a chromium based texture for playing back youtube, flash and more see: htmltexture-(ex9.texture)
  • a series of new XML-handling nodes: xml-nodes-added-to-alpha-builds
  • Reader (RAW), Writer (RAW) for reading binary files
  • PinInfo (VVVV)
  • Path (SVG) lets you build advanced 2d graphics paths
  • Database (MySQL Network) nodes
  • Removed nodes:
  • all Database (MySQL) nodes. Please use the new MySQL database nodes from the addonpack.
  • PictureStack (EX9.Texture*) is now legacy. See new Player (Ex9.Texture) node.
  • Replaced Vector (Spreads Join/Split) with Zip/Unzip (Value)
  • Changed nodes:
  • Reader/Writer (File) are now Reader/Writer (String) modules that default to UTF8 encoding
  • LogFile (VVVV) got a ShowTimeStamp
  • UDP (Network Server/Client) now have RAW in/outs
  • original UDP (Network Server/Client) are now UDP (Network Server/Client String) modules
  • TCP (Network Server/Client) now have RAW in/outs
  • original TCP (Network Server/Client) are now TCP (Network Server/Client String) modules
  • RS232 (Devices) now has RAW in/outs
  • original RS232 (Devices) is now RS232 (Devices String)
  • all nodes of the category MySQL had to be replaced by plugins
  • OSCEncoder/Decoder (Network) now have RAW in/outs
  • GUI 2d nodes work with the new mouse state and can handle multitouch
  • Added "Allow Empty Spreads" option to Zip node
  • Fixed nodes:
  • Cursor (System) now has its Y input flipped
  • DX9Texture (EX9.Texture) in cubemap mode now works with multiple rendertargets
  • PatchState (VVVV) got a memleak fixed
  • HTTP (Network Get/Post) now copes with https connections
  • fixed a special case of Linearspread: faulty-results-for-spreaded-linearspread
  • CreateEnum bug fix
  • Added support for multiple texture coordinates to collada loader.
  • Plugin interface:
  • IPin2.Subtype now includes enumName for enumpins
  • ColorPin now also returns priority
  • Updated to SlimDX version 4.0.13.43
  • The "Texture Out" pin of plugins using the texture template class will always be the left most pin
  • Fixed COM exception when setting SubType on INodeIn/INodeOut
  • Added possibility to set Dimension in IOAttribute for IO objects which do not have an inner generic data type set (like the pointer types)

New in version 45 Beta 25.1 (February 24th, 2011)

  • general:
  • now with crack.exe (replacing uninstall.exe). run once! (as you do..)
  • no more registration of .v4p filetype on starting vvvv.exe. now only via crack!
  • splashscreen now shows up when starting patch via doubleclick
  • subtype and iobox bug fixes
  • especially enum bugs. additionally enum features: invalid enum entries now lead to red nodes. useful e.g. when you have a r (Value) to a channel that doesn't exist (e.g. the patch with the corrsponding sender might not be open)
  • effect enums now update correctly when code changed
  • added vvvv.exe.config file to support debugging sd4/vs2010.
  • fixed the EStringError when starting without arguments out of sd3.
  • no accidental root saving any longer
  • better help on using contributions in root
  • modules again open in a window when opened by windows explorer
  • correctly getting dummy node after changing nodename of a plugin node
  • replacing nodes also changes legacy "nodename" attribute in "node" tag beta25-iobox-(color)-opens-as-iobox-(value-advanced)-in-older-versions
  • it should no longer be a problem to work with projects of same filename but in different locations. for example (vvvv/effects/file1.fx and patches/foo/bar/file1.fx).
  • if a cached nodeinfo is invalid (for example file is corrupted) a red node will appear instead of a gray one without any pins.
  • GUI plugin templates added
  • nice help files for templates added
  • vvvv shouldn't block windows from shutting down if started with /shutup argument or no patch is edited or user doesn't chancel the quit command: vvvv-prevents-windows-shutting-down-(stillagain)
  • .csproj now available in "OpenInPatch" dialog
  • dtd updated
  • GUI
  • Finder & Window Switcher:
  • fixed serveral memory leaks
  • other bug fixes
  • invalid enum entries now also can be found through the finder: the surrounding patch also gets red.
  • NodeBrowser:
  • now includes username-tags again
  • clicking in a patch to hide the browser now creates a comment
  • drag'n'drop works again from standalone version
  • ProjectExplorer:
  • the Add Reference dialog of C# projects can now browse for assemblies (additional to selecting assemblies from the GAC)
  • now supports adding existing documents to a project.
  • should give a hint if a referenced file is missing.
  • caused vvvv to crash if more than one reference was added at once.
  • CodeEditor:
  • fixed copy and paste issues introduced in beta25
  • Ctrl+F invokes correct find-monolog again
  • indents brackets correctly.
  • supports auto indentation (Ctrl + I).
  • does not show runtime errors of previously compiled assembly.
  • handles local/global ("" vs ) includes in .fx files correctly.
  • effect files use directory of vvvv.exe as global include path (for e.g. #include ).
  • only locally referenced fx files are copied in a clone operation.
  • fixed several memory leaks
  • PatchEditor:
  • while making a connection in a patch space+rightclick simulates a middleclick
  • scroll position is respected on drag drop again
  • undoing replaced nodes works again undo-(ctrl+z)-and-exchanged-nodes
  • patches now load with black background if so saved
  • fixed nodes:
  • Random (Value) is more random now between multiple instances
  • NodeList (VVVV) better performance when adding a search path
  • Sift (Value) fixed memory leak.
  • IOBox (String): fixed drag'n drop on it.
  • IOBox (String): fixed "very long iobox" issue after drag drop.
  • Cons (EX9.Texture) fixed
  • SharedMemory (Windows) output now returns complete string
  • CreateNode (VVVV): QuerySave bug fix
  • Count (EX9.Geometry): now updates if any of the upstream subsets changed
  • BoundingBox (EX9.Geometry): can now deal with meshes that have more subsets than attributetable entries.
  • plugininterface:
  • fix: generic input pin didn't fetch new upstream interface if upstream node was recompiled.
  • added BinSize property to InputAttribute.
  • if creation of a plugin fails treat it as runtime error instead of creating a red node indicating that the plugin is missing.
  • do not use MEF to scan an assembly for plugins. use it only on plugin creation. better performance and fixes several issues, if for example classes attributed with a PluginInfo didn't implement IPluginBase or a PluginInfo was defined twice.
  • IDiffSpread> implementations didn't fire changed event if bin size changed.
  • added new extension methods Add, AddRange, Remove, RemoveAt, RemoveAll, RemoveRange, GetRange, IndexOf, Insert, InsertRange to ISpread.
  • new modules:
  • OpenURL (Network) opens a link or file with the systems default application

New in version 45 Beta 25 (January 5th, 2011)

  • general:
  • caching now saves only one file into the application data/temp dir
  • slightly better startup performance due to lazy loading of dynamic plugins
  • fixed a crash of vvvv if a plugin tried to log from a different thread than the main thread
  • fixed various memory leaks related to plugins
  • dynamic plugins copy locally referenced assemblies to the output directory on compile, so it should not be necessary anymore to put external dependencies in the bin/managed or plugins folder of vvvv.
  • fixed a few threading issues regarding background parsing of c# projects and documents
  • pluginwindows now hide correctly when sent to box (ALT+2) while their parent window is hidden
  • plugin nodes are colored red in debug mode (ctrl+F9) if they throw runtime errors.
  • debug mode now consistently colors nodes throwing errors
  • only IOBox is selected after creating it with middleclick while making a connection
  • duplicate within context added for patcheditor (keeps input links on duplicated nodes)
  • file/dir open/save dialogs now open with the correct initial file/dir again
  • better integration of code editor by using vvvv's window management for tabbing
  • ctrl+click on a dynamic node brings up a dialog to choose which source file to open
  • code editor opens up on a per node basis. so it only shows runtime errors of a specific node.
  • string pins of subtype filename/directory now resolve environmentvariables like %USERPROFILE%
  • new window: Finder (Ctrl+F)
  • windowswitcher now based on Finder and also opens with ctrl+shift+tab
  • new window: ProjectExplorer (Ctrl+J)
  • project explorer displays project files of dynamic plugins and effects. it can be used to add/remove documents/references to a dynamic plugin and set the build configuration in order to debug a dynamic plugin in an external IDE like sharp develop or visual studio.
  • optimized queue node.
  • dynamic plugins don't need to be in vvvv/plugins anymore.
  • cloning a template will use the path of the active patch suffixed with plugins/effects depending on the type of template.
  • fix: cloning a dynamic plugin should handle illegal c# class name characters properly.
  • if not necessary project files of dynamic plugins are not loaded by vvvv on node creation.
  • fix: code editor should show errors in included fxh files too.
  • if a node referenced by a v4p file can't be found or in case of dynamic plugins can't be compiled it should show up as a red node. see nodes and paths.
  • fix: it shouldn't be a problem anymore to change the plugin info of a dynamic plugin during runtime. changing the systemname will result in a red node.
  • plugininterface:
  • better performance when deleting plugin/dynamic nodes (no more forcing of garbage collection)
  • fixed memory leak in reloading of dynamic nodes
  • generic output pin of type T registers GUIDs of T and all implemented interfaces and subclasses. for example an output of type Apple should be connectable to an input of type Fruit now.
  • colorpins are now using their subtypes correctly
  • texture-output-pins are now spreadable
  • ISpread shouldn't lose data if slicecount is increased or decreased
  • added new argument IPin to IPinUpdater.Connect/Disconnect methods
  • fix: setting slice count of GenericOutputPin to 0 didn't have any effect
  • fix: divide by zero in InputBinSpread
  • introduced new IPluginHost2 which implements IPluginHost and INode.
  • removed all wrapper pin classes in V2. reduces overhead a little and should therefore bring little performance improvements.
  • moved Pin and DiffPin from VVVV.Hosting to VVVV.PluginInterfaces.V2. it's now possible to import Pin instead of ISpread if advanced features like Connected / Disconnected events are required.
  • fix: SetRenderState/SetSamplerState and SetTextureStageState crashed since beta24. Text (EX9) used those methods so hopefully this fixes some strange behaviours reported by various users.
  • methods of IPinUpdater weren't called if used in conjunction with V1 plugin
  • reduced overhead a little in call to Evaluate method of plugin
  • fix: if a plugin only implemented IPluginBase Update on Config pins wasn't called.
  • fix: plugin input pins were deleted on recompile if plugin was evaluated each frame (for example if it was selected by inspektor), causing runtime exceptions.
  • Added extension method ISpread.Clone() and added extension method ISpread.AssignFrom(IList).
  • added property Buffer to Spread (use with caution).
  • did a complete overhaul of the v2 pin implementations. much better memory management, far less garbage collections necessary -> hopefully far less glitches.
  • added pin attribute Lazy to ISpread>. should be used in case one is only interested in a subset of the input. good example would be a getslice node.
  • fix: v2 plugins use plugin host to log instead of default logger.
  • Fixed overflow exception in RGBAColor when converting to System.Drawing.Color.
  • fix: ISpread> should handle spread of negative bin sizes correctly.
  • fix: v1 plugins weren't properly disposed if SetPluginHost method crashed.
  • StringOutput pin only writes to internal pin if necessary in order to avoid expensive marshalling costs.
  • introduced new INode2 interface which can be used by plugin writers to inspect the graph of vvvv. see IHDEHost.RootNode
  • fixed nodes:
  • Frac (Value) can output whole parts up to MaxFloat
  • QRCodeTexture (EX9.Texture) now only computes when one of its input changes and its textures are now accepted in Queue (EX9.Texture)
  • Cons (EX9.Texture) now evaluates correctly if first pins are nil.
  • Mesh (EX9.Geometry Split now reports vertexbuffer downstream correctly if input has empty or nil mesh
  • AsString (Value) now deals with a spreaded enum correctly

New in version 45 Beta 24.1 (October 7th, 2010)

  • general:
  • better error message when .net3.5 SP1 missing
  • no more error from nodebrowser when selecting local file via mouseclick
  • codeeditor had troubles being hidden via ALT+3 twice in sequence
  • fixed gettransformpointergetcolorpointer-bug
  • a vvvv_45betaXY directory can now again be moved on disk without stopping to work in the new place.
  • codeditor now works with effects as well
  • fixed nodes:
  • Timeliner loads data correctly again
  • Text (EX9) alignment and brush fixed
  • IOBox (Value Advanced) now merges subtypes when different nodes are connected downstream. The connection order will no longer be important. e.g. I (Spread) and Damper (Animation) connected to the Output of an IOBox will always result in a Integer IOBox.
  • new modules:
  • Line (EX9)
  • changed modules:
  • removed beattracker from AudioAnalysis (DShow9) due to licensing issues

New in version 40 Beta 23 (May 31st, 2010)

  • General:
  • fixed: newly created nodes are now selected
  • fixed texture size types to Int (was double). only FileTexture still uses double. Values between 0..1 are treated as values relative to the image size in file.
  • new option "Paste Within Context" connects pasted nodes to those upward nodes, that were connected with the copied nodes. easy to use, hard to explain
  • major GUI improvements for moving nodes
  • CTRL-Y is now able to reset links
  • win7 fixes: vvvv now shows up in ALT-TAB list and allows its windows to autosize when being dragged to screenborders
  • doubleclick in a patch to create a node followd by '.' now shows accessible .v4ps again
  • rightclicknodelist now shows up correctly even if taskbar not at bottom
  • New nodes:
  • String2Enum, Enum2String
  • New effects:
  • NormalsAndDepth.fx writes screen space normals and depth of a scene into a texture
  • Fixed nodes:
  • Find (String) had problems with nil on its inputs.
  • some XFile bug fixed
  • Writer (File) copes again with relative filenames
  • RandomSpread (Spreads) no longer acts like a saw tooth generator. bug
  • LFO (Animation) and LFO (Differential) freeze on Zero Period. bug
  • OSCDecoder (Network): had problems with unpacking cascaded bundles
  • Copier (File) now also copies files that are currently in use
  • VertexBuffer (Join): fixes for BlendWeight and BlendIndex inputs
  • CountIndices (Spreads) bug fix
  • switch fix
  • Changed nodes:
  • VideoTexture (EX9.Texture VMR9), VideoTexture (EX9.Texture VMR9 YUVMixingMode), VideoOut (DShow9) have a new output named Pixel Aspect
  • Ord2Enum has new output: EnumName
  • Fiducial (FreeFrame DShow9): renamed ID output to "Fiducial ID"
  • DetectObject (FreeFrame DShow9): renamed ID output to "Object ID"
  • Contour (FreeFrame DShow9): got new input "Show Filtered"
  • Contour (FreeFrame DShow9): got new inputs "Show Filtered" and "Reload Mask"
  • DynamicTexture (EX9.Texture String) is now spreadable
  • DynamicTexture (EX9.Texture Value) is now spreadable
  • DynamicTexture (EX9.Texture Color) is now spreadable
  • QRCodeTexture (EX9.Texture) is now spreadable
  • MainLoop (VVVV) got a new input: "Improve Timing Precision" which sets the windows timer to max resolution and uses a much more precise frame rate limiting
  • Keyboard (System Global) has a new "Keyboard Spread" output and has the "KeyCode" output now spreaded
  • Change (String) got an additional pin "Bang On Create"
  • Plugins:
  • plugins support new pins: TextureOutput, RenderStateInput, SamplerStateInput
  • the DimensionNames argument on the CreateValuePin methods finally works (beware: this may brake links to pins that already used those!)
  • plugins that save data in their own inputs don't contribute to the undo buffer anymore. fixes the problem discussed here
  • Bugfix: IEnumOut inherited IPluginIn instead of IPluginOut.