not yet released. see preview downloads.
released on 07 07 20
- Updated VL to version 2020.1.6
- Update to latest RCPSharp
- Fixes for Spout thanks to a PR by @leadedge
- Fixed regression introduced in beta39 crashing vvvv when putting a DX11 renderer into boxed mode. This bug was also present in earlier versions but only harder to reproduce, one had to create a Keyboard (Window) node BEFORE creating the renderer.
- Fixed an issue with filedialogs opening on pin rightlick
released on 05 05 20
- fixed issue with SharedTexture (EX9.Texture) being broken
- fixed issue with TUIO nodes
- Rekorder node now correctly hides borders in all cases
released on 18 11 19
- simplified installation via Installer
- renamed setup.exe to config.exe (running it is only required if installer was not used)
- now requires .NET 4.7.2
- new documents are by default now saved to User\Documents\vvvv\beta(-preview)\Sketches
- "Recent Patches" is a new entry in the main menu
- vvvv.exe, config.exe as well as new installer are signed now
- vvvv beta and gamma follow the same version format for example "vvvv beta 39" or "vvvv gamma 2019.1"
- Rabbit (RCP), Stick (RCP), Carrot (RCP) for support of RabbitControl
- WebSocket (Network Client)
- Euler (Get) get euler angles from a quaternion
- Euler (Get Vector) get euler angles as vector from a quaternion
- MP3Parser node can now cope with unicode infos
released on 13 12 18
- pressing ALT+CTRL+rightclick on a node that also has a window, now resets the windows position to the mouse cursor position
- fixed json arrays not being converted from b37 to b38
- fixed regression that pin editors and resetting of pins didn't work anymore
- fixed regression that default values on pins didn't work when interacting with them
- RegisterServices methods can also be written in C# now. Moved registration of VL.CoreLib serializers into it.
- Static entry points (which register serializers) will be called on startup before any UI loads
- fixed race condition in IVLFactory implementation (caused random null pointer when serializing)
- fixed fallback editor being used for a short time when creating a new pad
- fixed bug in CLR type importer not being able to map generic CLR types to VL types
- fixed non-primitive default values not being emitted
- fixed handling of null as a default value for a parameter
- fixed crash when implementing interface in patch
- added the type to deserialize to the ISerializer interface so we don't have to rely on a default value being present
- fixed candidate lookup for anonymous types when hot swapping a delegate
- Executor: now has "Working Directory" input
- added swizzle nodes
- added Radix node
released on 20 11 18
- fixed a problem with CreateNode in /shutup mode
- new file format! Can read patches saved with beta37 but not the other way round!
- IO boxes can store any kind of data for which a serializer is registered.
- use Ctrl+K to expose pins to Create/Split from selected pads
- fixed crash when pasting auto connected node into document patch
- fixed incorrect target code in if region in case condition input evaluated to false at compile time
- fixed compiler crash when accessing default value operations of types it didn't see through a patch itself (reported by @bildwerk and @chk via riot)
- fixed relative paths to directories not working
- fixed process using CreateDefault instead of Create for initialization - https://discourse.vvvv.org/t/vl-forward-process-node-create-vs-createdefault/16692
- fixed wrong target code when using any Count or Length properties of mutable collections
- fixed crash in backend when using delegate regions with unused pins
- when looking up referenced assemblies the current document folder and all its subfolders will recursively searched for. This should lead to a more stable assembly lookup as it less dependes on already loaded assemblies. It also removes the requirement to package everything up in a NuGet package.
- caching access on disk when resolving assemblies
- fixed race condition when creating symbol sources for assemblies
- IPs, IPs (Ethernet), IPs (Wifi) -> return IPv4 infos
- Ping -> pings an IP
- Executor -> shellexecute node
- Batteries -> returns PC battery infos
- Args -> returns commandline parameters
- ScreenShot node (experimental)
- Ellipsis nodes...
- fixed Metronome
- fixed JSONReader (Reactive)
- Wanderer (2d) has better defaults now
- SplitToLines now works with all line-endings: CR, LF and CRLF
- fixed deserialization not working on classes
- fixed crash when serializing with FSPickler
- ToObservable nodes will now send the initial message to the first downstream subscribers in the first frame
- fixed experimental WebSocketServer node and added a help patch for it
released on 5th September 2018
- Tokenizers now handle irregular input correctly
- Camera (Orbit) hast damping again
- Fixed division by zero in TextEX9 node when fed with nil
- AsImage node will turn red in case it can't handle the incoming texture instead of just logging to tty
- Disabled context menu in HTML texture
- fixed small issues on CreateEnum (no multiline string, rare cyclic patch involving this node now works)
- Ex9 renderer with clear turned off: when re-enabling the renderer we now don't clear it
- big CoreLib Cleanup
- introducing keywords "Experimental", "Advanced", "Obsolete"
- "Internal" to hide nodes
- Adaptive nodes now can spread into different categories
- many NodeBrowser refinements
- Tooltip and Nodebrowser not always on top
- Improved File IO
- Patch Your Own MainLoops
- Better serialization
- Groups and Categories
- groups now can be placed everywhere
- Fix for undo/redo where sometimes the wrong patch got tackled
- note: a name change of a type, group or category is always covered by the undo history of this element. For undo you need to navigate into it.
- Better exception reporting
- improved document management:
- Close a document via Ctrl-F4
- Ctrl-W closes a tab. Hiding last tab hides window
- Drag dropping VL documents now simply opens the document as this is 99% of time what you want
- added scrollbar for enum dropdowns
- fixed glitches for enum dropdowns
- less verbose warning for mutable links (now only visualized with a yellow sock at the end of a link)
- IOBoxes cannot be interacted with anymore if only used for display
- SolutionExplorer navigates to open patch when opened
- Cache region can optionally dispose cached objects when creating new ones
- added many help texts to nodes
- dynamic enum for installed system fonts
- color editor remembers hue and saturation while changing value with mouse
- Destroy operation is now called Dispose as in .NET
- tooltip now uses custom ToString method (if defined) to display values
- In case hot swap fails the exception will be logged and the runtime will be put into the stopped mode so user can act upon error accordingly
- Rewrote how incremental compilation works and how model gets synchronized to symbols
- Compiling should be quicker now
- Fixes issues like "Object is no subtype of Object" when patching in document referenced by others
- Fixed that the UI wasn't always in sync with current compilation
- Enabled pin groups on process nodes
- Do not generate unique names anymore when pasting elements
- Added support for multi dimensional arrays
- Destroy is now called Dispose and user has to implement IDisposable interface on patch explicitly
- Added non-generic ISpread and ISpreadBuilder interfaces
- Added IVLObject interface which gives access to the VL runtime graph in a nice dynamic fashion
- Added IVLTypeInfo and IVLPropertyInfo in order to be able to reflect on VL object graph
- Added IVLFactory interface which gets passed in to new static RegisterServices entry points
- In case a VL document defines a non-generic RegisterServices operation it will be called once after each re-compile. For many documents they will be called in reverse topological order
- Virtual methods of the Object class can now be overriden (ToString, Equals, GetHashCode)
- Whether emitted VL types behave in an immutable fashion is now decided by an internal flag -> process nodes can be mutable as long as the surrounding context is
- Loops will now re-use the output spreads and only create new ones if the data actually changes
- Hot swapper will now traverse deep into the VL graph in order to figure out whether or not a swap is needed
- Removed restriction for apply pin lifting that first pins must be named Input and Output
- Documents can now be reloaded from disk
- Color editor remembers hue and saturation while dragging
- Redo now also works with CTRL+Y shortcut
- Splash screen for first long VL compile
- library developers can use the "lib-native" pattern early on. freeing them from the need of creating a package before they even start working on the library
- IOBoxes have much less annoying tooltip
- Spread generator nodes (LinearSpread,...) are now Processes with their stateless companions (CreateLinearSpread,...) being marked as advanced
- HoldLatestError (Reactive)
- MultimediaTimer and BusyWaitTimer see vl-patch-your-own-mainloops
- MidiClock in/out
- MidiMonitor to debug midi messages
- MidiPlayer to play back midi files
- Rectangle creators with anchor point
- Scale and Inflate to modify rectangles in each direction
- RotateBetween to rotate objects from one direction to another direction
- AlignBetween to align objects between two points
- TryDispose to safely dispose objects and collections
- Four new experimental nodes called TryGetValue, TryGetValueByPath, WithValue and WithValueByPath which allow you to modify VL instances in a rather dynamic fasion
- Imported all mutable .NET collections like List, Dictionary, HashSet...
- Filename (Split) has now string as first output to be opposite of Filename (Join)
- MidiOut closes device properly
- Filter (Animation) has a "Reset" pin
- OnOpen has a "Simulate" pin
- Fixed AsyncLoop stopping when patching outside of it
- Serial port sender and datagram sender nodes will now turn pink if they catch exceptions on background thread
- Fixed region choice not showing up on directly imported nodes
- Fixed default values not being copied to pin group pins
- Fixed not being able to get rid of red apply pin
- Fixed invalid target code when passing struct to method expecting an interfaces - boxing was missing
- Fixed dead lock when debugging with Visual Studio 2017
- Fixed issue where ForEach region was broken after Copy&Paste
- Border control points outside of regions will now show proper error message and will be rendered by UI
- Fixed Ctrl+Plus adding pins on nodes where lifting is not even supported - see https://discourse.vvvv.org/t/adding-pins-to-generic-fails/16348
- Fixed image copying functions to take scan size into account
- Fixed super expensive equality check of Path
- Fixed broken links when moving a selection into operation definition
- Fixed stack overflow when creating and using a custom operation called "With" on a class or record
- In case hot swap crashes for a particular field create the whole value anew
- Fixed pin value of optional apply pins on process nodes not working
- Fixed issue in converter of old VL patches that Break or Keep pins inside loops didn't show up anymore
- Fixed custom value indicator not working on first pin in case by-pass lifting was applied
- Fixed some settings not being reloaded when saving settings file
- Fixed crash when installing a package while vvvv/VL is running
- Fixed performance issue in compiler when opening patches with many links
- Fixed performance bottleneck in UI code when looking at patches with many links and subpatches
- Fixed a dead lock when loading VL documents
- Fixed a crash in "Code" window
released on 20 03 18
- fixed an issue where saving of patches failed and left ~temp files behind
- when cloning from a c# or vl template dummy help and tags are now removed
- CodeEditor: SaveAs now saves with correct file-extension
- NodeBrowser tooltip now shows filenames
- NodeBrowser deals correctly now with single-char tags
- saving a patch to a new location now updates searchpaths
- added link to "Tutorials & Demos" in main menu
- setup.exe now checks for latest vs2017 redistributable
- toggling UpdateView (CTRL+U) in patch is now visualized
- replacing nodes with comments now works properly
- CTRL+UP now works for all windows (not only patches)
- added C#6 support for dynamic plugins
- closing the VL editor via CTRL+W now immediately asks for saving (not only when closing vvvv)
- Fixed initialization issue when plugin was set multiple times during patch loading
- Removed nupkg files from vvvv zip (reduced download size)
- save all (alt-s) vs. save all + layout (ctrl-alt-s). now also ctrl-alt-s only saves patches that somehow got marked as dirty. Self (VVVV) node outputs layout changed info.
- enum consuming nodes like Enum2Ord make sure to be aware of all user created enums. They also auto-evaluate to make sure that the enum reported to ioboxes upstream is up to date, even if the output might not be needed. New explicit versions of Enum2String, Enum2Ord, Ord2Enum and String2Enum now allow to adjust enum subtype with own configuration pin. Null node got legacy. CreateEnum now comes with a hidden input that allows to propagate the enum type upstream.
- fixed resetting enums to default where default entry has a space inside.
- regarding infamous "defaced IOBoxes" bug:
- patches now refresh after panning and when vvvv is deactivated
- added 2 commandline options: /refreshonf5 and /norefreshonscroll
- NodeBrowsers ClonePanel now uses new directory chooser dialog
- all nodes come with an Evaluate pin now; "Evaluate" pins are reserved to us and get red when created via plugin, hlsl or vl. They still should work. Added a test case for both assumptions
- diffff mechanism now comes with /manualdiff option. see https://github.com/vvvv/vvvv-sdk/blob/develop/vvvv45/tests/testPack/manualdiff.xml for an example.
- You now can write plugins that are aware of if they get evaluated or not. FrameDelay serves an example of how to make use of that feature.
- tweaked mouse and keyboard .. notifications: sender is now attached to each notification. additionally VL got its own notifications, so they get converted on the way to VL.
- the windows form Application.Idle event will now be raised by vvvv - useful to drive mainloops of other UI libraries
- AllowFeedback attribute is obsolete. Implement IPluginFeedbackLoop to specify which ouput pins depend on which input pins.
- Fixed deadlock when hitting breakpoint inside VS 2017
- Line (EX9 2d)
- Tokenizer (Raw), see: new-tokenizer-nodes
- BarcodeReader (String): decodes various 1d and 2d barcodes
- Levin (2d/3d) (old ones are now set to legacy)
- UploadImage DX9 and DX11 to send texture data from VL to the GPU vl-image-exchange-interface
- UploadBuffer DX11 to send generic data from VL to the GPU
- added Headers pin to HttpGet and HttpPost nodes
- ArtNet nodes are now faster (powered by new UDP nodes in vl)
- Date (Astronomy) is now ~10 times faster
- Values can now be sent from a website to vvvv using window.vvvvSend function in the HTMLTexture node
- changed the default for AspectRation (Transform).Alignment: FitIn -> FitOut
- vl-one-frame-at-a-time: better runtime exception and debugging support
- node meta info (summary, remarks,..) now combines info from .xml with info saved in .vl document
- PatchExplorer now updates correctly on UNDO
- added hover style for comments
- SaveAs in vl now references the newly saved file for its vvvv-nodes
- use CTRL+2 to make a snapshot of a patch (also goes to clipboard)
- toggle CTRL+4 to capture an animated gif of the current patch
- tab history navigation now also via CTRL + < and CTRL + >
- LineUp commands lines up patch elements: ALT+L
- ALT+F1 searches for the nodes name on MSDN
- Color IOBoxes now parse colors in different formats
- values can now be edited on pins directly
- the settings file is now only written when its content actually changed
- pin tooltips now show values in more cases
- indicator (top left of patch) now shows when compiler is preparing new build in the background
- removed auto generated node definitions for enum entries - use IO box instead
- the default value for a type can be defined with "CreateDefault" operation
- value inspection will now also differentiate between the inner and outer parts of accumulators (all border control points for that matter)
- do not mark unconnected pins in pin group as unused anymore
- added Recompile command to context menu
- synchronization of a patch with its symbol will now be done in background
- links going into a region will now also act as seeds for the default moment inside the region.
- the default value of an observable is now Never (instead of Empty) - that way one can nicely wait on values to come in. Needed for network nodes which pull in background
- speed of patch tracing much improved by using a fixed sized array instead of concurrent dictionary to ask for a tracer
- new region called Anonymous similar to Delegate primarily used by stateful lifting mechanism.
- major rework of compiler which allowed us to write all primitive regions (Repeat, Foreach, If, Delegate, Anonymous) as plugins and put them into VL.CoreLib. This rework also exposed a couple of bugs related to apply pin and input group liftings.
- improved support for interfaces
- once user adds an interface to class/record the interface will be implemented immediatly using default implementations
- implementing generic interfaces should work now
- defining interfaces should work now
- Run, Stop, Pause modes added
- new settings "RuntimePauseOnError" in combination with "RuntimeAutoJumpToError" to control wheter or not VL will stop executing nodes and jump to the node which triggered the last exception as well as "RuntimeDisableJITOptimizations" to make it more precise. The graph will also be colored based on whether a node was executed or not.
- importing types, nested types, events to observable, forward all nodes etc.
- Many many more little bug fixes and performance improvements
- added easy base classes to write DynamicEnums
- press CTRL+SHIFT+J to open .NET Dependencies in SolutioExplorer directly
- Nested types show up correctly in SolutionExplorer
- drag & drop types and nodes from the SolutionExplorer
- reactive nodes throw their exceptions on the main loop for better debugging
- dynamic enum switches to default entry un definition update when it was empty before
- dynamic enums are sorted alphabetically, can opt out via property setter
- added ManualDynamicEnumBase for dynamic enums that will be modified in VL patch
- dynamic enum has a 'Tag' field to pass data along per entry
- SolutionExplorer navigates to inport when a corresponding node clicked in patch
- double click in vector editors works per component
- patches can now be nested into each other
- "Restructure Document" menu entry added. It reorganizes all patches by category and name.
- node browser improvements:
- node browser allows to browse foreign symbols (nodes, types and categories) from assemblies and nugets. They get colored differently. This feature is only available when .NET nugets or dlls are directly referenced. For if this is distracting or too slow, you can temporarily hide those foreign symbols by clicking the button on the right of the search box.
- for when nodes are ambiguous, multiple choice questions for categories and pins pop up to select the exact overload. the followup choices concerning categories are displayed in a way that you can distinguish between the actual choice and the full category info (black versus grey)
- simplified logic when to show "Node" or "Region" choices: at the end of the decision process
- Primitives like ForEach get rendered in a special way and don't lead to further questions.
- Ok button now always closes node browser. Within the multiple choice browsing process a user can click OK at any time (most likely resulting in a red node, saying that it is somewhat ambigous. you can go back to the browsing process at any time by double clicking on the node)
- better tooltips
- many compiler tests added
- type inference improved
- node and type references resolve/bind mechanism improved:
- now can deal with .NET type forwarding
- adaptive nodes: now version gets checked when still ambiguous. ToString (Hex) [Adaptive] and alike now working
- improved performance of lookup algorithm.
- better tooltip for if node or type is not found: we now distinguish two infos: the "last dependency" and the "last file" the symbol was found in. The user now can see over which reference the symbol was found last, which should be easier to understand than where it was found.
- types get searched in extended scope (e.g. in all dlls that are somehow referenced by docs referenced by the current doc). By that type annotations in ioboxes are still resolveable. For nodes this is not done to keep the node browser clean.
- cylcic graph checks improved
- Edit->Expose Pins on a node creates inputs/outputs for all its pins
- menu now shows documents red if they have missing dependencies
- missing nugets can now be removed or installed via menu (if they are available on nuget.org)
- newly added nugets can be used right away without a restart.
- new source package format PACKAGENAME/PACKAGENAME.vl
- backup files now have the same relative paths than the original file
- backup files now have the file extension .vlb
- added shortcut Ctrl+Shift+I to copy GUID of currently selected element
- reporting why very old files couldn't be loaded and how to work around
- performance fix for enum pins on node with huge spreadcounts. Calculating error status of pin took to long.
- fixed laggy feeling on machines with high double click area in windows system settings
- dynamic enums initialize correctly
- improved resize cursor on regions and it shows correct arrows
- allowing '_' for type annotations
- debug timer will not call into native COM code anymore
- time difference of IFrameClock will not be negative
- renaming generic types also updates it's type annotations
- importing enums sts them to immutable by default
- double click while linking works in all regions
- middle click while linking from any generic/adaptive/object input opens NodeBrowser with IOBox type choice
- bool IOBoxes display bangs much better
- regions with only pins as content have a min size
- bang IOBoxes don't stop upstream values anymore
- no more ToolTip flickers with wrong content
- fixed jumps while dragging nodes caused by finished compilation from the background
- fixed many redraw bugs after compilation is finished
- improved alignment of CLR and VL symbol information so selection of which node to draw pink given a runtime exception should be better
- got rid of a few special flags so replacing regions in a patch should behave better
- added a safety mechanism to our serialization so ids are always unique which should allow the system to also load "broken" patches
- fixed coloring of apply pins on process nodes
- fixed Surround menu entry not creating full node reference so resulting region could be ambiguous.
- fixed certain assemblies from GAC not showing up in reference dialog
- fixed loading of GAC assemblies with dots in their name
- fixed RAW input from vvvv to VL
- couple of fixes regarding referenced documents:
- paths will be made absolute on deserialization and relative on serialization
- removed lookup magic of unresolvable VL documents through installed packages and added converter for old patches
- Fixed creating a new VL document if reference couldn't be found
- couple of fixes related to imported and user written documentation of operations and pins not showing up in the node browser
- fixed dummy types propagating in patches and should they appear in patches the tooltip will read "No type"
- fixed empty sub patches being created on copy paste
- fixed hot swap to run over all entry points at once and not individually for each of them.
- in case there's no Update in a stateful higher order region one of the other subpatches will be chosen as default.
- fixed vectors and colors being deserialized randomly
- fixed links inside regions not being added to default patch
- fixed type annotation on pads not getting picked up anymore after assign a slot to it.
- changing the default category of a canvas wasn't picked up by incremental compilation.
- fixed default value for IResourceProvider by taking VL generated default resource into account.
- fixed memory leak when using Spread> as VL output in integration
- fixed link assignments being lost after copy/paste
- fixed error message complaining about recursive patches even though it wasn't recursivehttps://discourse.vvvv.org/t/vl-patch-window-freezes/15373/5
- "Input" and "Output" is a valid pin name now, system will use "State Input" / "State Output" in case of conflict
- hot swap can now deal with multiple instantiations of the same type
- links can no longer be made into an operation signature
- fixed position of stream going into VL nodes not being reset
- fixed importer treating input parameters as output parameters in case they had output marshalling information set
- fixed move handler selecting a region from a different canvas as drop target
- fixed state output showing up on process applications even though the kind of process was not explicitly set by the user
- fixed assembly resolve issue in emitter which caused compiler to crash
- default name for created pins while linking is now 'Input' or 'Output'
- remarks in help text now also displays 'see' tags to other types or methods
- Cache [Primitive] region - will only execute if one of the inputs changes, the outputs will be cached
- SerialPort [IO]
- Tokenizer [IO]
- SplitToLines [String]
- SpreadMax [Collections]
- Delay [Animation], Delay (Linear) [Animation]
- GetValue, GetValues, GetVector2, GetVector3, GetVector4 [IO.OSC]
- GetValue, GetValues, [XML.XElement]
- XPathGetValue, XPathGetValues, [XML]
- New UDP server/client implementation
- New type Datagram used by connection less networking nodes
- New nodes Sender (Datagram) and Receiver (Datagram) - UdpClient/Server implemented with those
- IPAddress and IPEndPoint have a proper = node now
- Added a generic implementation for the != node to the VL.CoreLib
- Added DistinctUntilChanged [Reactive] and CombineLatest [Reactive]
- C# scripting using Roslyn done with a new region called "Script" in VL.CoreLib.Experimental package
- ToValues to convert vectors to spreads
- Create (Sequence) to create a SpreadBuilder from any sequence
- Normalize [Path] to resolve any URI into an absolute path
- Round (Digits) to round a value to the desired decimal places
- IntPtr nodes to talk to low level libraries
- GetInternalArray [Spread] to access the underlaying spread data directly
- fast mutable Builder classes for Dictionary and HashSet
- adaptive constants like MinusTwo, MinusOne, MinusHalf, Half, Two...
- Reactive nodes with Scheduler input to DevLib for better threading control
- Triangle, Rectangle, Cosine and Sawtooth wave, also added comments and tagged all with "waveshaper"
- CustomEqualityComparer to provide custom equality checks per type
- Queue nodes
- more Create nodes for Dictionary
- KeyValuePair nodes to work with dictionaries
- BufferDescription to send generic buffer data to the GPU via vvvv
- Experimental WebSocketServer and simple HttpServer nodes
- DMXUsbPro (Sender) node in new VL.Entec package
- OnOpen [Control]
- Copy, Convert, Resize, ResizeAndConvert and Info nodes for Bitmap
- BinarySearch versions for values, KeyValuePair and custom KeySelector delegate as well as Lerp versions
- Combine for paths
- The patch inside of an if region can be stateful now - it can contain process nodes
- Improved speed of Reader/Writer [IO.Stream] nodes
- TryParse and ToString are now adaptive
- TryParse (Hex) nodes now can now also understand strings starting with "0x"
- reactive nodes are a bit simpler and faster
- animation nodes are faster because frame time gets cashed
- Osciallator and Damper come with Cyclic pin
- removed the nodes Control.Cache, Control.Cache (Experimental) and all IfAnyChanged nodes in favor of new Cache region
- FileWatcher now calls its changed events on the main thread
- Fixed null pointer exception when using = [Object] and first input is null
- Performance optimization in HTTPGet and HTTPPost nodes (affects vvvv also)
- Got rid of the delegate hack in the Changed node. The observable wrappers now use proxies for delegate inputs so no check necessary.
- Fixed default value of XDocument to also contain a root element so subsequent nodes don't crash with null pointer if a reader wasn't triggered yet.
- Fixed AsyncTask and AsyncLoop not propagating inner exceptions and moved them from experimental to VL.CoreLib
- MapWrap works correctly with negative inputs
- added tags "applytransform" and "*" to vector transform nodes
- Path nodes are much faster now
- Sequencer [Animation] now works properly and faster
- fixed ForEach [Reactive] regions randomly disposing the inner state while patching
- fixed object disposed exception popping up when aborting the async task region in quick succession
- fixed Zip node returning empty spread if one of its input counts was zero
- HoldLatest [Reactive] can be reset
- 3D/CubeTree has better parametrization
- added 2D/DifferentialGrowth
- added DX/DynamicBuffersAndTextures
- added Images/LoadAndSaveInBackground
- added _Basics/ValueRecorder
released on 25 06 17
- fixed crash when opening girlpower patches where Destroy operation was deleted
- fixed crash when using process state output in Create operation
- state output of empty record constructor was hidden
- fixed crash when having type with multiple Update operations
- fixed renaming of pins that are used in a pin group
- ToInt8 was in wrong category
- Filename (Split) now returns filename correctly without extension
- Filter (Animation) has 1 second as default time and got a Progress output pin
- Interval (Multimedia Timer) reactive event source with millisecond precision
- Interval (Busy Wait Timer) reactive event source with nanosecond precision, always uses 100% of one CPU core but shares that with the workload
released on 20 06 17
- setup.exe now checks for 2017 instead of 2015 vc++ redistributables
- splashscreen, tabs, finder are now dpi-aware
- Enums now pay more attention to the name of the entry than its index. In corner cases this should meet expectations more closely.
- added Red links to flag links between mismatching pins. Invalid links are stored in patches so that they can be reestablished when they match again. This should be helpful for dynamic plugin and VL development. Red links also mark all parent patches red so that they can be found easily.
- nodebrowser accepts patches again if they start with a lower-case letter
- Girlpower includes now the Molecule Viewer example app (see it in girlpower/Games/).
- added TransformVVVV to VMath in SDK
- added "Save all patches" (even those marked as unchanged). Useful for saving window layout.
- Scrolling in patches not perceived as a change
- cloning modules now does not inlude a trailing space if no version is set
- fix for Finder with vl nodes
- GetSlice added for Enum, Transform and Raw
- Universe (Network Join/Split) to work with the ArtNet nodes
- CR, LF and CRLF newline modules
- BezierSplines can be loaded/saved using the Reader (2d/3d BezierSpline), Writer (2d/3d BezierSpline).
- Enum shuffling nodes finally behave as wanted: CAR, CDR, Cons, GetSpread, Select, SetSlice, SetSpread, Unzip, Zip.
- fixed problem with Timeliner on high-dpi where tracks would get higher everytime they are loaded
- plugin-nodes that have no UI no longer can be put into boxed mode
- MJpegStream module no longer takes extra port which makes it work with all urls
- Fixed spreadability of the DigitalRead (Firmata)and the VL.IO.Firmata pack got its own girlpower folder.
- some Text (EX9) fix
- All Editors from the editing-framework have a Gizmo manipulator.
- Spout nodes now handle up to 40 channels
- ArtNet nodes now take a single Universe value instead of Net/Subnet/Universe
- SetSubType on INodeIn in with several GUIDs is interpreted as "or" to make Box2d run again.
- Node factories will be disposed of properly on vvvv shut down.
- Added new property IHDEHost.Version which returns the currently running vvvv version.
- Updated SharpDX to version 4.0.1
- Removed the restriction that patches exposed to VVVV need to be classes.
- VL packages which expose nodes to VVVV will also be released with a nodelist.xml file now. Improves the vvvv startup time.
- In case a stateful region is available on a node the choices in the nodebrowser will now show "Region" and "Region (Stateless)".
- Fixed linking to a process inside a nested region - such a link was red before with the invalid error message that the source and the sink are on different operations.
- Added a little explanation to the AsyncTask region what happens when triggering the Abort input.
- Fixed crash in backend when building a patch with just one generic output pin.
- Backup reminder when opening with new VL version
- When saving under new file name, all open documents referencing our document now reference the new document - via the new file name.
- updated JSON.NET to 10.0.2
- The "Loop" is now called "Repeat", so we can now say VL comes with two kinds of loops, "Repeat" and "ForEach"
- added solution explorer window (CTRL + J) to inspect all documents + patches
- Fixed a few crashes when restoring the state of running patches
- Less machine-made changes in patches. This is good when evaluating your changes via a diff tool.
- Comments are allowed outside dataflow context. (e.g. the Document root patch)
- Less restrictive naming rules. Categories and therefore "Group"-elements can now be named "2D" to be able to easily contribute to the Category.
- Autobackup only backups documents that have been openened in the editor
- documents last saved with an older version now show a green hint-icon in the ActiveDocument menu
- documents last saved with a newer version now show a red-hint-icon in the ActiveDocument menu
- Fixed null pointer when using parameter = null in imported C# node
- Fixed linking of process state output into a region
- Quad menu -> About and ActiveDocument menu now show a version
- Quite some tweaks and fixes on node browser
- comments can now wordwrap
- CTRL+F to find elements in a patch
- CTRL+SHIFT+F to find elements globally
- IO boxes inside if regions didn't report their dimensions to the UI
- press SHIFT to constrain moving nodes to x/y
- middleclick now deletes links even if not selected
- patch metadata (CTRL+M) is now saved correctly
- Duplication (Ctrl+D) of groups works now
- Duplicate (CTRL+D) of selections now offsets according to last move (as in vvvv)
- node-sizing pick-area is now zoom-aware
- typeannotation editor is now zoom-aware
- Undo wasn't always available when working in the patch explorer
- The assign menu entries will be disabled in case they don't have any effect - https://discourse.vvvv.org/t/process-in-member-op/15128
- Fixed performance issues of menu when system has .NET 4.7 installed
- Middle click on border control point behaves correctly
- Double click while linking opens node browser
- CTRL + left click while linking creates pin
- SHIFT + left click while linking creates pad
- CTRL + click while linking in IF or LOOP creates accumulator proxy
- CTRL + SHIFT click while linking in LOOP creates splicer proxy
- links snap to nearest accepting data hub while linking
- Fixed flickering tool tip on link when link had a warning
- More robust region size computation. Allows very small regions. Delayed auto-compacting: to trigger this move an element inside.
- Force dragging into/out-of regions is now on SPACE
- Force dragging elements into/out-of regions more responsive
- Force connection while linking is now in SPACE
- Force connection while linking highlights accepting hubs
- Save dialog fix (shouldn't pop up when already everything is saved)
- Boolean OutBoxes show every bang if UI can draw faster than 67ms
- SHIFT + double click or SHIFT + double right click on link inserts pad into link
- file readers/writers now don't block the file after their operation
- Matrix (Join) assigns elements correctly
- ForEach (Reactive) resets thread safe
- Filter (Animation) doesn't output NaN when time set to 0
- GetValues for matrix
- Integer Counters
- Conversion nodes (e.g. ToFloat32) now also Adaptive (any number value is ok), just to make using them less of a pain
- ToQuadTransformatio and FromQuadTransformation for Rectangle
- RandomSpread (2d/3d)
- OrderBy (Spreads)
- Dir and SubDir
- AND/OR (Spectral)
- Debug, Repeat, Retry, BackoffAndRetry, Merge (Many) and OnErrorResumeNext in the Reactive category
- The above and more in the Reactive.Observable category exposed by the VL.DevLib package
- ManageProcess lets you enable a process and reset it.
released on 19 04 16
- layout changes don't lead to a changed patch file anymore.
- enums: get notified again whenever an entry is not available.
- improved error-logging in case a ~temp file is written
- cloning vl Template (Value Stateless) now works correctly
- improvements and additions for the EditingFramework
- s/r channels sorted in pop up
- r nodes don't forget last sender when sender got deleted
- HTTPGet (Network) replacing now legacy HTTP (Network Get)
- HTTPPost (Network) replacing now legacy HTTP (Network Post)
- Reader (2d BezierSpline)
- Reader (3d BezierSpline)
- Writer (2d BezierSpline)
- Writer (3d BezierSpline)
- S+H (Transform) spreading now works correctly
- MidiTrack (Midi) performance improvements and fixes for files including sysex messages
- performance improvements for TUIO nodes
- fixed AreEqual (Test Value) not testing the slice count (link was missing)
- fixed evaluation order of Writer (Raw), Mover (File) and Copier (File)
- Select & SetSpread in pretty much all versions now can deal with an empty spread at Select
- Technique on EX9 effects: not red when null
- fixed default connection handler always returning true (introduced in b35) + other refinements.
- fixed crash in CyclicStreamReader -https://discourse.vvvv.org/t/setspread-problem-with-count/14820
- added implementations for IStream.CopyTo methods used by S+H (Raw) - fixes S+H (Raw) not working on upstream native nodes
- fixed the generic SetSlice plugin -https://discourse.vvvv.org/t/multidim-assignfrom/14850
- fix on registering GUIDs. added IPluginHost.RegisterType to be able to properly register each GUID with name
- builtin pins register themselves in a way, so that you can cast the object returned from GetUpStreamInterface to IValueData(..). By that you can write a custom connection handler that interacts with builtin pins.
- auto backups are now stored in Documents\VL
- added menu entry to open auto backups folder
- tabs of active document now visually distinguishable from others
- prev/next navigation now includes operations in a patch
- added "Reset To Defaults" for settings
- tooltip in NodeBrowser now shows more infos
- added hint-tooltips for certain ui elements
- IOBox now rasters to stepsize (same behavior as in vvvv)
- fixed problem with elements in document-patch not aligning on CTRL+L
- added 'open' button to IOBox (Path)
- dependency menu now shows loaded vs. referenced nuget versions
- better adaptive node errors
- fixed "Surround With .." for when other nodes with that name are in scope.
- fixed some crashes involved in creating a new vl document, saving it
- new category XML for all your xml/json needs
- new reactive nodes for async/concurrent event handling
- new midi nodes for event based midi processing
- Contains (Spread) checks whether an element is in the spread
- IfAnyChanged regions in Lib.Experimental, calculates and caches a result if any input value has changed
- HardwareChanged/Added/Removed nodes to get notified when the device configuration changes
- assigning pin to another operation keeps type annotation and default value
- performance improvements for OSC nodes
- fixed generated target code for if region with output connected to exact one upstream pin
- fields which somehow made it into a stateless context will now also be removed when synchronizing the model with the symbols (Ctrl+E)
- fixed pasting of pins from or to sub patches -https://discourse.vvvv.org/t/pasting-from-one-vl-doc-to-another-looses-pads/14787
- newly created regions will not auto sort their pins anymore
- fixed linking into process regions showing error on link that upstream hub is not on same moment as downstream hub
- moving pins in a delegate will trigger recompile
- VL now has dynamic enumerations, i.e. for device driver selections
released on 22 02 16
- small update on model. when saving your documents with the new version they will change slightly. beware: the new version won't open properly with beta35, so you might want to secure the old versions of your vl documents for the case you have to switch back for some yet unknown reasons.
- added warning when opening/saving newer document with older running version
- updated SharpDX to 3.1.0 so 3D text works in DX11
- nodes/ioboxes can now be resized like in vvvv
- double right click now creates an IOBox like in vvvv
- double right click on link inserts an IOBox
- can now grab a link to insert link point
- auto backup changed .vl files every 5 minutes
- added support for type Path to integration - VL pins of that type will be exposed as string using the subtype Filename in vvvv
- added IOBox for Chars
- removed nodes that work with radians, replaced with cycles versions except trigonometry nodes like Sin, Cos etc.
- Sin (Cycles) renamed to SineWave
- deleting a selected link is now via middleclick (was rightclick)
- NodeBrowser now always shows on correct screen
- small refinements in NodeBrowser
- referenced documents can now be removed
- fixed "Open" menu entry (or middle click on node) to jump to implementation
- undo after inserting node into link now also deletes the node
- default comment size is now 9pt
- settings are now in alphabetical order
- fixed highlighting of selected entry in enum value editor - https://discourse.vvvv.org/t/vl-enumerations-wrong-item-highlighted/14562
- Member Operation Nodes sometimes didn't draw their height correctly
- fixed glitches with region-bounds
- fixed a few flickering issues when changing values during runtime
- "Is Generic" button now operates the same in type- and operation-definition
- DocumentationForm now follows active patch
- no recompile if nodes only dragged
- when connecting a lonely border control point the link will be continued
- fixed assign to new operation menu entry not assigning the selected nodes
- removed immutability check on link connect - less need to press CTRL while drawing connections
- type annotations got more versatile
- fixed vvvv default value selection in integration when annotating an input with Spread<> - https://discourse.vvvv.org/t/error-using-vl-node-in-vvvv/14593
- fields will always be traced by target code so retrieval of field values is always possible (before an actual link where data flows was required) - https://discourse.vvvv.org/t/changing-values-in-the-pads-editor/14400
- fixed wrongly generated target code when using the Index pin of a loop
- fixed upstream connected IO box in region not working
- fixed wrong execution order in target code when linking into a region of a generic patch
- buttons, values and colors that are not in the patch can now be changed with left and right click
- TransformSRT (Center) [2D.Transform] has its z scaling fixed
- Rotate [2D.Transform] was broken
- MonoFlop/TimerFlop now have a default time set
- GridPick, GridSplit, GridPoints now work like their vvvv counterparts
- Intersect, Union and Except with key selector delegate
- Vector <-> Value spread converters
- some convenience nodes for SpreadBuilder and Array
- RangeContainsValue nodes
- To/From Bytes nodes in DevLib for value types with endianness
- HoldLatest in DevLib holds the latest value of an observable
- patches/modules can now be cloned like plugins via ctrl+click in nodebrowser
- high-dpi fixes for splash-screen and save-options dialog
- added c#, vl and hlsl as tags to respective templates
- IOBox (String) now accepts dropping text/links
- IOBox (Node) no longer lags when displaying large amounts of data in inspektor
- new semantics for dx9 shaders: TARGETSIZE and INVTARGETSIZE
- all vvvv nodes now have a Tag config pin
- MidiFile (Midi) and MidiTrack (Midi) to parse .mid files
- fixed crash on node creation when the type of a set default value on node pin didn't match with pin type
- GetSlice (Node) on element 0 of node input pin works correctly now
released on 20 12 16
- create dynamic plugins using VL: Dynamic VL Plugin Reference
- no longer runs on WinXP since now requires .net 4.6, see: .net-4.6-upgrade-in-alpha-builds
- AudioRecordSelector and AudioMixer were therefore removed
- added MS VisualStudio Redistributable 2015 to setup.exe
- boygrouping: fix for clients sometimes not finding addons
- performance improvement for Raw nodes, see raw-performance-speedup
- upgraded HTML texture node to CEF 3.2840.1513.gf7effc7 (Chromium 54.0.2840.59) htmltexture-update-to-chromium-54
- Stencil Buffer support in EX9: check girlpower/Graphics/DX9/Shader/StencilBufferDemo.v4p
- improved NodeBrowser tag search: now only finds tags starting with capital letter
- show internal nodes in nodebrowser by typing "i "
- fixed a case where CTRL+G failed
- patches marked as readonly now show an error when you try to save them
- nodes now indicate evaluation via textcolor
- locked patches now cannot be scrolled
- increased default size for c# editor
- values, colors (..) can flow over node pins: mixed-data-over-that-same-ol-pin
- enums now less picky. enum iobox now works if only connected on input pin.
- in case a IOBox (Raw) was too small it didn't show anything.
- fixed dynamic plugins not being recompiled when copied to another computer (https://discourse.vvvv.org/t/cant-add-dynamic-plugin-if-i-copy-it-from-one-machine-to-another/14126)
- fixed Reload bar not showing up in C# editor when external editor (like VS) was using a rename to save the file.
- Resample (Spreads) has its Mirror mode fixed
- Resample (3d Vector) and Resample (Color) have been cleaned up
- Separate (String) fixed Ignore Beetween for all quotes
- RegEx (String) fix for using round open brackets in expression
- Length (String) fixed a bug when it was not evaluated in the first frame
- Ord2Enum (Enumerations) now clamps input to not overflow
- Entry2String (Enumerations) now updates correctly when an enum changes
- Damper (Animation Jump): fix for initialization
- Timeliner (Animation) sometimes did not save correctly
- Grow (2d) now proper spreadable
- WindowLists (Window) has its TopMostHandle output fixed
- FrameDifference (Animation). fix. now starting with 0 for the first frame
- Random (Value). fix for https://discourse.vvvv.org/t/random-value-return-same-value-in-module/13430
- fix for https://discourse.vvvv.org/t/framedelay-critical-issue/13864
- added "Position in PixelXY" and "Client AreaXY" outputs to Mouse (Devices Desktop), Mouse (Devices Window) and MouseState (Mouse Split) nodes
- Leap (Devices) completely reworked
- Renderer (HTML Url) and Renderer (HTML String) now use IE11
- Renderer (EX9): DepthBuffer D24S8 format to enable the Stencil Buffer
- Writer (EX9.Texture) can now save volumetextures
- Processors (System) now async
- IRC (Network Open): added Password and Channel Password
- UDP (Server) and UDP (Server String) now have a Status output that will tell you if the port fails to open
- IOBox Tooltips now show Tags
- String IOBoxes that have an Open button can now be ALT-clicked to open the file in Explorer
- IOBox (Bang/Press) now don't add to UNDO anymore
- DrawVertexID (EX9) is now PointID (DX9 2d/3d)
- vastly improved support for Arduino/Firmata, see: arduino-second-service
- new EditingFramework, see: introducing-the-editing-framework which brings vastly improved:
- Camera (2d, 3d)
- TUIO now with send and receive nodes, see: how-tuio-do
- easy Spout (DX9 Sender/Receiver) modules, see Spout
- easy GIF Rekorder (Windows), see introducing-the-rekorder
- ArtNet (Network Sender/Receiver) now with Net, SubNet and Universe and can be used on any UDP port
- Eyetracker (Devices TheEyeTribe) including calibration mode
- CircularSpread (Spreads 2d): Generates a circle in 2d space
- SpiralSpread (Spreads 2d): Generates a star in 2d space
- StarSpread (Spreads 2d): Generates a star in 2d space
- RectangleSpread (Spreads): Generates a rectangle in 2d space
- GridSpread (Spreads 2d/3d): Generates a grid in 2d/3d space
- HexGridSpread (Spreads 2d): Generates a hexagonal grid of positions in 2d space
- RandomSpread (Spreads 2d/3d): Generates a random point cloud in 2d/3d space
- Distinct (String): Returns a spread stripped of duplicates
- Except (String): Returns a spread containing slices from Input 1 except slices from Input 2
- Intersect (String): Returns all distinct elements that are found in both of the Input spreads.
- Wanderer (Animation 2d/3d: Simulates an easily parameterized random walk
- Resample (2d Vector)
- ArcLength (2d/3d): Lets a curve, specified by a spread of vectors, be sampled at arbitrary positions
- Grow (2d NonUniform): Extrudes a polygon by a given factor nonuniformly for X and Y
- Undo (Value, 2d, 3d, String, Color)
- MJpegStream (EX9.Texture Sender/Receiver)
- ProjectedTexture (EX9.Effects)
- ConstantVC (EX9.Effect): Constant effect that takes VertexColor into account
- Point (DX9 2d/3d)
- Triangle (DX9 2d/3d): Renders a triangle in the DX9 window
- Triangle (EX9.Geometry 2d/3d)
- BezierPatch (EX9.Geometry 2d/3d)
- ViewCone (EX9)
- Select (Transform)
- Homography (Transform 2d Quad) assumes the input points are a quad centered at the origin, very fast
- Reader/Writer (Transform ViewProjection)
- NodeInfos (VVVV): Returns a list of all authors and search paths
- SetExposedPin (VVVV): Allows writing data directly to exposed pins
- UpdateView (VVVV): Allows to disable the vvvv UI to squeeze out some more performance
- Clock (VVVV) let's you implement your notion of time. All time based animation nodes will react to that.
- ADSR (Animation FrameBased/TimeBased) advanced envelopment curves with proper behavior of the enabled input
- Select (2d/3d/4d) performance optimized select nodes for vectors, use instead of Select (Value Vector)
- Gesture (Devices Window): returns windows gesture events zoom-pan-rotate-touchgestures
- Pan-, Zoom-, Rotate-, TwoFingerTap- & PressAndTapState (Gesture Split)
- Pan-, Zoom-, Rotate-, TwoFingerTap- & PressAndTapEvents (Gesture Split)
- Stencil (EX9.Renderstate): set stencil state for ex9 objects
- NuGet packages now usable in AnyCPU build configurations
- added support for byte/sbyte/char types to plugin interface
- fixed enum index reporting wrong value after being updated (https://discourse.vvvv.org/t/enum-index-reporting-wrong-index/13947)
- fixed a sync issue in output stream implementations between unmanaged backing store and managed length property
- whether or not a bin size pin gets created by the plugin hosting layer can now be controlled through the new PinAttribute.BinSizeWrapCount property. By default bin size pins will be created for each dimension.
- added possibility to allow override of plugin in- and output properties (https://discourse.vvvv.org/t/overriding-pinattributes/14334)
- fixed ordering of bin size pins when used in pin groups.
- IHDEHost.EnumChanged: listen to changes of any enum
- you now can accept any data on your input and check for values, colors (..) dynamically: mixed-data-over-that-same-ol-pin
- implement ITimeProvider to provide a low latency clock that implements your notion of time: go-back-in-time-now
released on 22 10 15
- the Mouse (Devices Window Cyclic) module is replaced by a Cycle On Mouse Down on the Mouse (Devices Window) node
- Camera (2d/Softimage/Orbit) are working again in fullscreen
- removed broken link to dx9-websetup from setup.exe
- fixed a rangecheck error that popped up in x64 builds when toggling a windows border
- setup.exe is now shipping with its own version of websetup for dx9 since ms removed its downloadlink
- SubDir (File) now returns number of subdirs per input dir
- ColladaFile/Mesh/Skeleton are now less picky with loading files
- nodes in Skeleton category now throwing less errors
- Separate (String) had newly indroduced troubles with certain intersperse characters b34.1-separate-exception
- Preloader (EX9.Texture) now reloads properly
- Decompose (Transform Vector) now has a spreaded Success output
- Reverse (Bin) nodes now update properly when changing the Reverse input
- Find (String) had quite some spreading issues
- Info (EX9.Texture) reports proper sharing-handle again in x86 versions sharedtextureinfo-texture-handle-bug
- DX9ToDX11 (EX9.Texture) now works also without any of the upstream renderers visible
released on 24 08 15
- IOBoxes come with a hidden "Changed" pin. changed-pin-on-ioboxes
- remote controlling: fix: server-(vvvv)-exposed-iobox-string-behaviour
- fix for abstract node connections when routed over e.g. Switch (Node): node-type-pins-connection-and-type-names-broken
- if corrupt patch file can't be loaded -> red node (instead of missing node)
- failable nodes like division node, mod node and several spectral nodes now get red on a division by zero. additionally you get a fast method of how to ignore those errors if this is what you want. the success pin gives you the opportunity to react otherwise on unsuccessful operations.
- NAN, INF, MaxFloat (..) may be specified whereever you expect a number.
- fixed a problem with unicode characters in xml-snippets: (send)xml-inconsistency
- fixed a problem with node-label redrawing: labelpin-vs-gui-redraw
- AsValue. fix for bug introduced with beta34: beta34-asvalue-behave-different. also see NEW help patch
- better support for infinity and NAN. Damper (Animation) shields against INF and NAN
- fix for Node IOBox with BinSize = 0
- Camera (2d Orbit Softimage) modules now also work on DX11 Preview windows
- WindowLists (Windows) now also returns handle for each window
- ClippingEar (2d) - simple polygon triangulation
- Cross (2d Bin) - cross with binsize
- SetComponentMode. 2 fixes that fix DX11 Renderer (not included ;)) fullscreen behavior.
released on 21 07 15
- fixed performance issue with IOBox (Raw) and large byte streams
- fixed boygrouping of spreads containing empty strings - see boygrouping-with-spread-of-strings
- in case a plugin node crashes during node creation the corresponding node in the patch will stay red
- dynamic plugins will always include the debug symbols now - easier to attach visual studio that way
- fix for slow panning patch new-bugs-in-beta-33.3
- now also checking for MSVC++ 2012 (needed only for Assimp nodes in addonpack)
- fixed check for .net4 under winXP
- fixed memoryleak with IOBox (Value)
- fixed Ctrl+G with enum IOBoxes and unicode characters in patchpath enum-bug ctrl-g-with-non-latin-chars-in-patch-path
- fixed performance issue for various value nodes in x64 builds
- updated Sanford.Midi.dll which works now correctly in x64 builds
- added new command line /clockport to solve port conflicts with multiple instances on the same machine. see boygroup-and-idehost-with-multiple-vvvv-instance
- fixed slow window-docking
- change detection rework for integer and boolean pins. fixes iobox-ui-bug-with-grid-node
- added success pins to division node, mod node and several spectral nodes for reporting a division by zero or a spectral operation on zero elements. mean-(spectral)-nill
- fix on plugininterface. bug surfaced when writing into input pins. fixes dedicated-to-timeliner-node
- boygrouping: some warning message got more meaningful
- Player (EX9.Texture) will concatenate all files given by multiple directories. Removed the rather strange modulo behavior.
- performance improvement for Cons (String) and Cons (Raw)
- Separate (String) separate-doesn-t-read-last-empty-value
- FileStream (DShow9) now initializes speed correctly filestream-(dshow9)-not-remembering-its-speed
- Renderer (EX9) has a new entry in the fullscreen refresh rate called AsDesktop which is the new default
- added Enabled input and Idle output to all camera modules
- added ParentHandle output to HandleFromPoint (Windows)
- added Visibility to IPin/IPin2
- fixed CheckIfChanged inconsistency reported by velcrome
- fixed changed flag issue with streams used as pin group
- added debug symbols (vvvv.jdbg) to VVVV.Binaries NuGet package
- added missing StatusChanged event to IPin2 interface (was already present in implementation)
- fixed the IPin2.IsConnected method
- fixed inconsistent-behavior-in-plugin-interface
- Clean (String Advanced)
- Percent (Value)
- FrontFacing (3D)
- Mouse (Devices Window Cyclic)
- ScreenInfo (Windows)
- Window (Windows Client)
released on 21 01 15
- some DShow9 now correctly show as missing (red) in x64
- setup x64 now has Directshow checkbox grayed out (since custom filters not working in x64 anyway)
- subtle bug fix for boygrouping. when working on a boygroup setup it could happen that patches (that are not yet instantiated on the client) get corrupt while editing that same patch. The error surfaced when you first boygrouped that patch that hasn't been instanciated yet on the client.
- fixed change flag issue on pins when having the inspector open.
- ALT+T now pops up a fancy ASCII table
- fixed nasty access violations when running a boygroup using UDP - see boygroup-network-error-stops-listening-to-master
- fix of subtle bugs that can occured when ui eveluated input pins. in some cases value changes of inputs got acknowledged by the ui - without notice from within the node that depends on the change info.
- OneEuroFilter (Animation): Simple speed-based low-pass filter for noisy input in interactive systems
- RGB / HSV (Color Join Picker) create colors from the a la Photoshop range of values (RGB: 0..255, H: 0..359°, S and Alpha: 0..100%)
- PBKDF2 (Raw) generates a key using the PBKDF2 cryptography function.
- Encrypt / Decrypt (Raw 3DES) perform Triple DES cryptography algorithm on raw streams.
- Encode / Decode (String File) use file URI scheme for file paths.
- AsTexture (Raw) interprets a sequence of bytes (of a pixmap) as a texture.
- Ellipsis (String) clips the string to the given length and adds up ellipsis characters.
- CameraCone (EX9) replaces the CameraPreview (Transform DX9) from the addonpack - visualizes the cone of a Camera in the scene.
- CameraPreview (EX9) replaces the SecondLook (EX9 Softimage) - visualizes the cone of a Camera in a separate Renderer.
- AsRaw (EX9.Texture) in RAW mode now returns bytes in expected order.
- DynamicTexture (EX9.Texture Raw) now has an Apply
- UDP (Network Client) has a new (inspektoronly by default) Local Port
- AviParser (EX9.Texture) now working again
- Automata: IMPORTANT bug fix. Automata didn't register its evaluationCB on its outputs. This messes up whole patches, since the output data might be framedelayed depending on which node gets evaluated first. We added a legacy Automata to be able to not break patches, that need the old broken automata to work correctly. Please replace with new automata and adjust everything else if necessary.
- fixed null pointer exception when using more than 16 slices in Changed (Raw) node.
- fixed major performance drop in Changed (Raw), FrameDelay (Raw) and Queue (Raw) nodes.
- fixed access violations in AsRaw (EX9.Texture) node.
- IOBox (Raw) now shows getsliced slices correctly.
- fixed network nodes (UDP/TCP) when dealing with large byte streams
- fixed double reload issue of HTTP (Network Server) node - see force-flush-http-(server) and http-(network-server)-delivers-changed-content-at-2nd-refresh
- fix for Decay (Animation) for when not evaluated each frame
- the slice count of plugin raw output wasn't initialized properly.
- fixed read and write methods of Raw in- and output streams.
- added \Animation\Animation Slots
- added \Transformations\Drag
- added \Graphics\DX9\Geometry\Dynamic Meshes
released on 09 10 14
- Entries2String: that lists all entries of a given enum as a spread of strings
- AsRaw (EX9.Texture) now has an actual RAW option
released on 09 09 2014
released on 02 09 14
- for each file only one editor will be open
- improved completion window for C# by adding async keyword and prioritizing entries by their kind (field/property etc.)
- completion window for HLSL will only popup when pressing Ctrl + Space. It will also only show predefined functions and parameters as no proper AST for HLSL available.
- fixed mouse wheel handling in code completion windows https://github.com/vvvv/vvvv-sdk/pull/203
- fixed bracket search in code editor
- removed runtime errors from editor
- fixed exception when document ends with /*comment*/: code-editor-bug
- Architecture (VVVV): about-(vvvv)-x86x64-pin
- MouseMatch (Mouse) node able to detect certain mouse events like up/down/wheel and click
- SplitAt (Value/2d/3d/...) nodes - splits a spread at given position into two subspreads
- AsDocument (SVG) and Join (SVG) make it possible to create and render multiple svg textures two-cool-svg-nodes
- ApplyTransform (Mouse) to transform mouse coordinates
- Drag (Value) same as Drag (2d) only for one dimension
- Merge (Mouse) - merges multiple mice to one
- SecondLook (EX9 Softimage) - module that lets you debug your camera better than TestCamera did
- ActiveWindow (Windows) returns the handle of the active window
- added generic nodes (cons, queue, zip...) for: XElement, XDocument, XAttribute
- Copier (File), Copier (File Async) now create target directory if it does not exist
- IOBox (Value Advanced): iobox-(value-advanced)-created-as-integer-default-max-and-min-why-so-low
- IOBox (Value Advanced): toggle-bug-(gui-only)
- Finder (VVVV) now has an option to search inside modules
- Select nodes got tagged with resample, repeat, duplicate
- global input device nodes will return dummy device in case no device is installed on the system: error-without-hid-keyboard-(since-beta32- -32.1)
- reworked MouseStates (Join) node so that new downstream observer will get notifications of current frame too: new-mousestates-and-nil-(beta32)
- all file related nodes like Writer, Reader, Copier, ... now have a Success, Error Message and Error pin.
- AsXElement (XML) now has a Success and an Error Message pin
- Sync (Network) node now has a Seek Threshold and the port pin is spreadable to serve multiple clients on the same machine
- Cursor (DX9) now has different "Cursor Types"
- Player (EX9.Texture) will exclude hidden files: feature-request-player-(ex9.texture)-option-to-exclude-hidden-files
- Reader (Raw SharedMemory) will not try to create a new shared memory location anymore. It will only try to open an existing one. Should that fail the new status pins will report about it and a warning will get written to the node's log.
- streams are now available as ulong/long https://github.com/vvvv/vvvv-sdk/pull/204
- thorough delphi side error handling&logging of clr code throwing exceptions
- VMath vecors and matrices now implement IEquatable and IComparable for your Linq pleasure
- VColor got a simple Serialize/Deserialize method for RGBA color
released on 12 06 14
- FileTexture (EX9.Texture) works with pipet again
- Icon (Windows) working on win8 now
- IRC (Network Open) can send channelmessages again
- the Index pin of the Keyboard and Mouse (Devices Desktop) nodes is now set to -1 by default, which merges all available devices into one
- fixed Player (EX9.Texture) when new texture format pin was set to "No Specific" and format of input file wasn't supported on graphics card - see player-(ex9.texture)-glitches-images-in-beta32
released on 09 05 2014
- crack.exe is now setup.exe
- vvvv is now dpiAware meaning it works at any OS zoomlevel
- vvvv now defaults to /dx9ex, can still fall back to /dx9
- fixed memory leak when using /dx9ex and moving renderer window to different screen
- fixed small memory leak while patching introduced in beta29
- node in debug mode gets drawn in different colors if it writes to the log
- route more exceptions in DX9 pipeline through LogErrorFmt method which invokes exception dialog
- log will now include node address (if available) and will append the stack trace otherwise only available through the exception dialog
- user contributed packs can now have their own diffff
- girlpowers are reordered by topic now and comes with many new examples
- send/receive nodes now show their channel name by default (can be switched off via middleclick)
- improved startup time by reducing the amount dynamic plugin re-builds
- fix for double-bang double bang issue.
- now supporting basic touch gestures:
- Two finger pan = Canvas pan
- Press and Tab = Middle Mouse Click
- Two Finger Tab = Right Mouse Click (not shown in this video)
- Long Press = Right Mouse Click
- Long Press + Drag = Right Drag
- new selection behavior:
- if nodes and links are in a selection only nodes are selected
- if only links are in a selection they are selected
- pressing ctrl selects both links and nodes (old default)
- pressing shift only selects links
- IOBox labels now above node if iobox is inlet
- the TCP server will now use an in- and outbound queue per peer client to receive and send messages. fixes boygroup server freeze when one of the clients is frozen
- TCP server will close connection to peer client if outbound queue is full
- TCP client will also use an outbound queue now - shouldn't freeze anymore if server freezes or connection down
- fixed possible deadlock if client loses connection
- fixed issue that caused a boygroup client to not startup
- fixed access violation in nodes connected to a bridge and having nil on one of its inputs
- Line (EX9 FromTo) module now extracted from Line (EX9)
- Align (Transform) module: Returns an aligning transformation given a point and a normal
- Align (Transform FromTo) modules: Returns an aligning transformation between 2 given points
- DrawVertexID (EX9) module
- Grow (2d) module: Extrudes a polygon by a given factor.
- * (2d Vector) module
- SumUp (Value) module
- Drag (2d) module
- Camera (Transform 2d) module: Easy to use virtual camera for day to day work with the Renderer (EX9) and 2d scenes.
- CharacterBrightness (Sring) module: Returns brightness of the characters.
- AsAscii (EX9.Texture): Returns a spread of strings representing the texture.
- NormalizeBinSize (T) modules: Translates given bin sizes to actual bins.
- Shift (Spreads Index) module: Shifts the slices in the spread upwards by the given slice count.
- Area (2d) module: Returns the area of a polygon.
- Winding (2d) module: Determines wether a spread of polygon points is in clockwise or counter-clockwise order.
- Centroid (2d) module: Returns the center of mass of a given polygon
- Circumference (2d) module: Returns the circumference of the circle of the given radius.
- AsRaw (String Hex) module: Encodes a string of HEX characters into a sequence of bytes using the specified encoding.
- basic overhaul to keyboard and mouse nodes - see keyboard-mouse-and-touch-news
- improved performance of Cons (Spreads)
- improved performance of Select (Value)
- Typewriter (String) is now spreadable
- Writer (Raw) will only evaluate upstream pins if Do Write is set to true
- Log (VVVVV) now writes utf8 file
- Levin is now Levin (Simple) as spreadable version appears in addonpack
- added host/port pins to SysLog (VVVV)
- SVG all svg geom nodes have an input to set the ID
- Path (SVG) node has a pin to set the path as open or closed
- receive nodes now will turn red on connection errors
- IOBox (Node) can now display raw byte sequences
- Renderer (EX9) Clip Device now off by default (as this caused problems with nvidia cards)
- DMX (Network Artnet Sender) now takes a port via /artnetsendport
- DMX (Network Artnet Receiver) now takes a port via /artnetreceiveport
- IOBox (Value Advanced) has now "Press" mode
- HWND (Windows) is now HandleFromCaption (Windows)
- Camera (EX9.Geometry Collada) is now Camera (Transform Collada)
- Finder (HDE) is now Finder (VVVV)
- Count (2d/3d) now more optimistically reporting one more slice if slice partly available
- added new pin Apply On Device Change to VertexBuffer and Mesh join nodes - see generic-dx9-multiscreen
- MonoFlop (Animation Framebased) is now a plugin. thanks woei.
- Player (EX9.Texture) scans given directory in background now
- Player (EX9.Texture) supports manual override of the used texture format now
- fixed stack overflow in Queue (Raw)
- HID nodes should work properly now in x64
- Dir (File) used to AV if input is empty
- Memory (Debug) can now log to tty even without a renderer attached
- ModificationDate node no longer AVs if input file not available
- SpellValue now works with Unicode
- Leap (Devices) now also requests data if vvvv is in background
- Change (Animation) & Togedge (Animation): "Bang on Create" behaviour fixed. (note: creation is interpreted on a per slice basis)
- Value of Element (XElement Split) now only outputs the XElements' own text value (not a concatenated string of all its child text nodes as before). legacy Value now available as Deep Value
- fixed problem with IOBox (String) when canceling a dir-open operation on it
- SharedMem (Windows) has no memory limit anymore
- Normals (EX9.Geometry) no longer fails in x64
- replaced Copier (File Async) with legacy version and reimplemented as plugin - see copier-(file-async)-does-not-copy-files-with-less-than-1024-bytes
- fixed spread max calculation of Select nodes - bug came up when using with higher dimensional spreads
- fixed IOBox (Node) not evaluating upstream RAW nodes
- now available as nuget packages. see nuget-development-packages
- added ability to share the bin size pin in ISpread>. for an example look at the mouse join/split nodes here
- moved Plugin property from IInteralPluginHost to IPluginHost2 in order to access it from the host without the need to reference hosting
- added small interface IPluginContainer in order to navigate to the real plugin in case a container is used by hosting
- improved performance of node pins by using the new methods INodeIn.IsConvoluted and INodeIn.GetUpstreamSlices
- IBackgroundColor allows to set a gui-plugins backcolor
- transform input diff pins report IsChanged correctly now
- introduced new interface IActivatableControl a plugin window can implement in order to get notified if parent window was activated or deactivated
- added new methods IHDEHost.EnableShortCuts and IHDEHost.DisableShortCuts in order to enable or disable the short cuts of vvvv's main menu
- new class DynamicStreamWriter - useful when length of underlying output stream is not known in advance
- fixed exception in BufferedStreamWriter when using with T other than a primitive data type
- fixed IDiffSpread.IsChanged and IDiffSpread.IsChanged properties - see mouse.ischanged-always-true
- added OutputRequiresInputEvaluation and IPluginHost.Evaluate methods in order to properly implement a generic frame delay node
released on 11 11 13
- SaveDialog now displays directory and filename in 2 lines
- Jump2Parent patch now has international shortcut: ctrl+ the key below ESCAPE
- tty now reports an error if a mididevice fails to open
- Debug Spreads via Ctrl+F10
- Alt+A now opens About patch (allows quick check of running version)
- vvvv shouldn't block windows shutdown sequence anymore. See vvvv-blocking-windows-7-shutdown
- In case a node is missing write proper error message to the log and startup log
- smaller memory footprint while patching
- Much better dongle protection during runtime
- 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
- Encode/Decode (String URL)
- Encode/Decode (String HTML)
- Encode (String HTML Attribute)
- module Trigger (Animation)
- module: Limiter (Animation)
- Cons nodes in XElement Category
- Vector swizzle nodes to convert between 2d and 3d vectors: xy, xz, yz, xyZ, xYz, Xyz
- Skip (Raw), Take (Raw), GetBytes (Raw) and + (Raw Spectral)
- complete spreadoperations for Raw category: Queue, Buffer, RingBuffer, SetSlice, DeleteSlice, Zip, Zip (Bin), Unzip, Unzip (Bin)
- module: Randomize (Spreads)
- module: IsActive (VVVV)
- OnDeactivate (VVVV)
- MultiToggle (Animation) got an initialization option
- Window (Windows) has its width/height pins no longer constrained
- all midi nodes now default to Enabled=1
- DMX (Network Artnet Sender/Receiver) now have their SubnetID and UniverseID correctly clamped to 15 and the Do Send is now single
- Typospread: bugfixes and perforamce gain
- MidiAllNotesOff now applies to all channels/notes correctly
- Info (EX9.Texture) on x64 now correctly initializes sharedhandle to 0
- Fixed issue in + (Raw) - read from first slices only.
- Updated resource and memory management for Player (EX9.Texture):
- All players (in one node) share the same texture pool now
- Pools get managed per node (not node/slice like before)
- In each evaluate the player node will:
- Try to release unused pool memory - but will keep a little to avoid reallocation
- Release all unused textures
- Vector join/split nodes are 4-5 times faster now
- API change: changed type of last parameter of IEffectHost.SetEffect to System.IO.Stream
released on 28 08 13
- ColladaFile (EX9.Geometry) got a reload pin
- Mesh (EX9.Geometry Collada) outputs mesh name, mesh path, and material name
- Prune (XElement) now takes complete xpath expressions to generate output pins. please update your patches.
- Leap (Devices) can output gestures
- added Gesture split nodes for Leap
released on 25 06 13
- code templates got a small cleanup
- boygrouping "bridges" now streaming via fewer but bigger udp messages
- fix for a XP bug introduced with beta30: win-xp-b30-problems
- Fixed drawing performance issue - see beta30-codeeditor-delay
- Fixed CTRL-click on effect includes
- Cloning a dynamic plugin didn't rename the *.cs file in beta30
- Kill (Windows) reimplemented as plugin (now non-blocking)
- PID (Windows) revamped and renamed from PID (VVVV)
- Writer (String) has append mode working again
- LogFile (VVVV) works again
- Renderer (TTY) no longer steals focus all the time
- MidiSysexOutput (Devices) works again
- TCP modules now have correct subtype range for Port
- NodeBrowser (VVVV) works again as standalone
- RS232 (Devices) will configure the port only if enabled
- RS232 (Devices) will try to resume execution even if configuration of port fails for some properties - see beta30-rs232-node
- Expr (Value) - fixed Sin/Cos/ArcTan in 64 bit - see 64bit-expr
- Fixed Mouse Wheel in Mouse (System Window) - see mouse-wheel-on-mouse-nodes-beta30
- FileTexture (EX9.Texture) fixed an issue with background loading:filetexture-width-height-bug
- Cursor (DX9) can handle a spread of mouse states now
released on 22 05 13
- pressing F1 now opens a template helppatch when non is available
- nodebrowser now allows filtering of whole categories
- new shortcut: ctrl+^ to jump to the parentpatch
- start a link then ctrl+middle-click to create S/R accordingly
- hold ALT while dragging a .v4p on a patch to make it an link instead of a subpatch
- vvvv no longer crashes when having installed pd with its installer
- fixed colors for drawing mainmenu and inspektor
- architecture (x86/x64) now showing in splashscreen
- ALT+E now also shows selected node in explorer (used to only open active patch)
- ioboxes can now be autonamed by pressing SPACE+rightclick (alternative to middleclick)
- rewrite of mouse and keyboard nodes. see update-to-mouse-keyboard-nodes
- fixed range check error on startup in 64bit build on windows 8
- CLR stack trace back in exception dialog and tty - got lost with unicorn upgrade
- fixed various undo/redo issues
- Artnet Port configurable via commandline argument /artnetport 6454
- While Saving Patches: better workarounds for undeletable backup files. latest version will still have the userdefined name, not a cryptic ~temp name
- fixed some memory leaks on ioboxes, geometry- & transform-nodes
- boygrouping less chatty now. To get it even more mute just trigger Enabled of Boygroup (VVVV Server) when you want to broadcast current bridges.
- dynamic plugins
- code editor will now show warnings
- parsing of code files is now done lazily - will take longer until code editor comes up for the first time
- better logic whether or not a project needs to be recompiled (see recompile-dynamic-plugins):
- let a dynamic plugin be out of date if project's debug option doesn't match with assembly
- when comparing time stamps to decide whether or not a dynamic plugin needs to get recompiled take also a project's documents into account
- fixed an issue with plugins getting recompiled unnecessarily
- if a project's document doesn't exist create a "missing" document and show tool tip in project explorer - instead of crashing
- various smaller bug fixes regarding dynamic plugins and misconfigured project/assembly directories
- PID (VVVV) returns the process ID of this running vvvv instance
- Processors (VVVV) reports number of physical processors, processor cores and logical processors
- Count (2D), Count (3D)
- MonoFlop (Animation Framebased)
- Encode (String Base64) and Decode (Raw Base64)
- new RS232 (Devices) node - fully spreadable, uses data type RAW and outputs additional line states from serial port - see new-rs232-(devices)-node
- Tidy (XML) fixed for unicorn
- IOBOX (Value Advanced) no longer beeps when confirming a constant via pressing ENTER
- Lumax (Devices) works again
- Renderer (TTY) is autoscrolling again
- fixed access violation in Intersect (EX9.Geometry Mesh) nodes
- fixed memory leak in HTTP get/post nodes introduced from with new data type RAW
- Enum2Ord (Enumerations) - some slices weren't evaluated correctly
- OnOpen, OnActivate, OnQuit - validation issues fixed
- Reader - validation issue fixed
- OnResume - bug fix
- LFO (Animation) - fix for LFO-Phase-Bug lfo-phase-bug-when-starting-patch
- MP3Parser (File) reports data correctly again
- all ecue nodes are working again
- SetPatch now has Mark Patch as Changed
- IOBox (String) now has 'open' button in Filename, Directory and URL setting
- GetElements (XML ByName) supports prefixed names now (prefix:name) and if no prefix given, will use default namespace of given XElement.
- Mouse (Window/Global) output state of XButton1 and XButton2
- KeyMatch (String) node will also check for characters now (not keys only)
- added new input pin "Validation" to AsElement (XML) node in order to enable DTD or Schema validation - by default validation is off, but in some cases (like parsing v4p files) validation is needed as the DTD file defines new entities
- "Boygroup (Server) Enabled"-Pin only enables/disables bridge broadcast messages. other messages are always sent (e.g. patch messages)
- added a Reset pin to simple filter nodes: reset-pin-on-newton-damper-etc.
- Prune (XML) is now named Prune (XElement) and supports generating text and children in addition to attribute output pins. Root element is now defined by XPath expression. Patches using the old version of Prune will need revision.
- renamed BufferedIOStream to MemoryIOStream - same naming scheme as .NET streams
- new property IHDEHost.IsRunningInBackground
- IOFactory can create in-place plugins now - for example look here
- new interface IUserInputWindow which gets used by Mouse (System Window) in order to properly subclass a plugin's window
- new property AllowFeedback on output plugin pins - see dx11-feedback for usage example
- added basic support for future packs:
- add packs/PACKNAME/core to assembly search path
- add packs/PACKNAME/factories to mef container catalog on startup
- add packs/PACKNAME/nodes to node search path
released on 10 02 13
- fixed drawing of debug numbers
- no more .xml files showing up in NodeBrowser
- pluginwindows now report Mouse/Keyboard (Window)
- cloning a node with NodeBrowser half outside desktop now allows scrolling to see all
- opening Kommunikator once made beta29 instable and likely caused a crash
- dynamic plugins
- fixed an issue when dynamic plugins turned red when opening the project explorer
- lib/nodes/plugins will also be added to the ReferencePath of a dynamic plugin project
- auto generated project files of dynamic plugins are now more similar to those of the addonpack (include x86 and x64 configuration)
- added Template (Raw)
- difff now supports "current" where the version is expected. That should help anybody who wants to rename own nodes and temporarily convert some patches. see help in the difffile. (in \lib)
- AsRaw (EX9.Texture)
- FrameDelay (Transform) as module
- + (Raw) node with intersperse input (same as + (String)).
- Cons (Raw)
- Line (Ex9.Geometry) was broken in beta29x86
- SpellValue 'Ascii' now behaves like pre-beta29
- WindowLists (Windows) was broken in beta29
- Rope (DX9) was broken in beta29x64
- Midinodes were broken in beta29
- Queue/FrameDelay (EX9.Texture) now return a sharedhandle in /dx9ex mode
- Info (EX9.Texture) now reports sharedhandle in x64 builds
- Leap (Devices) updated to Leapmotion SDK 0.7.3
- Finder didn't work in release build
- Fixed exception in AsValue (Raw)
- Unzip (String Bin) returned empty spreads in some occasions
- OSCEncoder/Decoder now return/take the new Raw datatype
- QRCode (EX9.Texture) reimplemented as a plugin based on http://qrcodenet.codeplex.com
- RS232 (Devices) now features 2 more (higher) baudrates
- Writer (String) module got 'Create Directory' pin back
- HTMLTexture (EX9.Texture): Moved to CEF 1.1180.832
- IFlushable update
- Added "force" parameter to IFlushable.Flush method in order to circumvent certain changed flags and force a flush / write out to the pin.
- Added property "AutoFlush" to OutputAttribute which defaults to true in order to disable auto flush behaviour by plugin host. See the AsRaw/AsValue nodes for a use case.
- Improved performance of AsRaw (Value) and AsValue (Raw).
- BufferedIOStream increases its size when writing values one by one. Very handy when length of stream is unknown.
- cleanup on multiscreen modules. deleted the dual view. made the spanmode legacy.
released on 24 12 12
- 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 now 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
- 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
- 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)
- 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
- 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.
- IPin2.Subtype now includes enumName for enumpins
- ColorPin now also returns priority
- Updated to SlimDX version 22.214.171.124
- 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)
released on 27 08 2012
- Text (EX9 Legacy) now works with /dx9ex
- ColladaFile (EX9.Geometry) did not load the whole scene in beta28 (collada-isssue)
- MouseState (Split) returns all pressed mouse buttons now
- Filestream (DShow9 Boygroup) seek fixed
- plugins using ISpread or ISpread will not destroy their resources any longer when switching to fullscreen and the resources use the managed pool.
released on 14 08 12
- new shortcut: ctrl+g to "group" selected nodes to a subpatch
- new shortcut: ctrl+k to "ekspose" selected ioboxes (e.g. to kontrolleur, todomap)
- new commandline option: /dx9ex to make use of texture-sharing
- breaks Text (EX9.Geometry) and Flash (EX9)
- has VideoTextures working on multiple devices (of one card)
- new commandline option: /ms-surface to make vvvv start on microsoft surface hardware
- on vector pin to get a Vector (Join/Split) node
- on a color pin to get a HSV (Join/Split) node
- on a layer pin to get a Group () or Renderer () node where appropriate
- /showexceptions commandline parameter now takes "false" argument to disable it in alpha/debug builds
- now shipping with OpenCV 2.4.1 binaries and updated all freeframes that depended on it
- OpenInPatch works again for effects
- fixed memory leak with internal message sending.
- all guinodes (patch, renderer, plugin) and IWindow now return a window handle
- fixed problem where NodeBrowser would show no entries
- opening helppatches now looks for .lnk if no .v4p is found thus allowing for multiple nodes to receive the same helppatch via file-system links.
- fix: bug-patch-output-pin-disappears-but-data-still-flows
- fix: save-as-of-sub-patch-doesnt-mark-parent-patch-as-changed
- MouseState (System Join), MouseState (System Split)
- KeyobardState (System Join), KeyboardState (System Split)
- ApplyModifiers (String): converts Keyboard to actually pressed character string
- Insert (String) Inserts a specified string at a specified index position in the input string
- Kontrolleur (Network) Communicates with the Kontrolleur android app.
- Server (VVVV) Accepts values for pins via OSC
- PatchState (VVVV) Returns info about the current state of a running Patch
- Match (String) (formerly: KeyMatch (String))
- RadioMatch (String) (formerly: RadioKeyMatch (String))
- Length (2d), Length (3d)
- Distance (2d), Distance (3d)
- Angle (2d), Angle (3d)
- Slope (2d), Slope (3d)
- Texture (EX9.Texture Split) returns ALL pixels rgba values. use on small texturesd only... texture-splitting
- Treemap (2d) distributes rectangle over a given area from a list of sizes
- Transform (2d Vector) you beloved 2d transformation as vector version
- Clock (Network Boygroup) a boygroup clock to synchronize animations with the server
- Sync (Network FileStream) a node to syncronize FileStream nodes in a boygroup
- KeyMatch (String) now with Keyboard and multiple options how to interpret input
- RadioKeyMatch (String) now with Keyboard
- DX9Texture (EX9.Texture) can now render depth only when choosing INTZ as texture format
- FiducialTracker (FreeFrame DShow9) rebuilt with latest libfidtrack/reactivision 1.4 and using new tree-data file that detects 216 (was 90) different fiducials
- QuickNodes (VVVV) now accepts new lists of nodes while showing
- OnOpen, OnResume, OnQuit, OnActivate got a "Simulate" input
- Spray (Animation) is now spreadable
- Text (EX9.Geometry) no longer fails with slices of empty strings
- WavePlayer (DShow9) now less picky with fileformats
- TogEdge (Animation) now no more edges on dis/connecting input
- Find (String) now only operates when input changes
- DynamicTexture (Value) now spreads Apply correctly
- IOBox (Node) fixed problem that wouldn't display a change to a binsize of 1
- Skeleton (Skeleton Collada) now can deal with skeletons having multiple roots in the dae file
- INode, INode2: GetNodePath
- IPin, IPin2: GetSlice/SetSlice, GetSpread/SetSpread, Direction, Type, CLRType, Subtype, SubtypeChanged, SliceCount
- IHDEhost: SendPatchMessage
- new interfaces IMainLoop and IDeviceService see this blog post for details
- new view on pin data: streams, for details see this blog post
- new view on pin data: pointer classes, have a look at the classes in the VVVV.Hosting.IO.Pointers namespace. they can be directly injected with the already known Input and Output attributes
- new interface IIOFactory which can be used to create all kind of views on pin data at runtime
- writing plugins with multiple texture outputs can now easily be done with ISpread
- fixed various issues with config pins
- moved non generic ISpread to seperate namespace in order to avoid compile issues in C++/CLI
- fix: custom connection handler will be called if there are jumper nodes (getslice, switch) in between the connection
- fix: changing the type of a pin from ISpread to IDiffSpread in a dynamic plugin creates a new native pin now
released on 08 05 12
- when using modules as QuickNodes they no longer show their patch
- DoQuit (VVVV) can now take an ExitCode which vvvv returns on the commandline
- fixed: patch-xml-attributes-rearranged which will come handy for version-controlling patches
- re-introduced codecompletion for .fx (can still be removed by deleting \lib\hlsl.fnr)
- fixed redraw-errors in categoryview and modules drag-dropped on a patch no longer open as patch
- when opened in standalone mode (ctrl+n) it only showed 20 lines
- fixed some pin-connection-troubles that allowed double-links or failed to disconnect links in some cases
- fixed nodelist.xml: native nodes were missing in 27.1
- renaming an iobox shouldn't mess up links in other patches anylonger.
- small debug mode fix: forum-alpha/a27.2-debug-mode-bug
- bug fixes in the core concerning the information if a pin has changed.
- Sort (String) bug as reported here: sort-(string)-outputs-only-text
- VertexBuffer (Join) bug as reported here: vertex-buffer-bug-or-not-bug
- GetSlice returned not empty output bin size when fed with nil. See posible-bug-in-getslice
- Timeliner (Animation) now imports midi-files correctly and saves keyframes moved via states, as reported here: timeliner-saving-issues
- Renderer (GDI) validates its view-matrix correctly again
- Styx (Windows) node didn't clean up properly after being destroyed
- AsString (SVG) outputs the strings according to the input slices now
released on 20 02 12
- no longer needs .net3.5SP1 installed to run, .net4 is enough
- no more troubles with "missing" nodes with plugins actually present
- if exception dialog is visible mainloop of vvvv will be stopped
- CreateNode and GetPatch failed in b27
- MonitorPower (System) works again
- VideoIn (DShow9) got a problem fixed with switching between 2 drivers
- FileStream2 (DShow9) failed to run on some systems
- Finally (VVVV) now works as advertised
- Random (Value) in integermode didn't equally distribute random values
- Undistort (DShow9 OpenCV) got its Rows/Columns inputs fixed
- Substitute (Spreads) was broken if patch contained a Sift (Value) node
- Database (MySQL Network) works again
- Mesh (EX9.Geometry Join) and VertexBuffer (EX9.Geometry Join) now dont evaluate upstream graphs when apply = false and therefore are very fast in those cases. S+H and Switch tricks not needed anylonger.
- LinearFilter (Animation): fixed a bug: spread->-linearfilter-does-not-filter-linearly
- Renderer (Flash): fixed bug: which-flash-player-version
- Automata (Logic): fixed bug: automata-state-pin-problem
- Quad (SVG): fixed corner radius bug: renderer-(svg)-quad-(svg)-corner-radius
- added Scratching output to Timeliner that reports when the timebar is being draged
- VideoTexture (EX9.Texture): added an adapter pin, that allows you to specify on which adapter the texture should run.
- DeleteSlice, deletes slices of a spread at the given index
- direct3d9 interface change: direct3d9-plugin-interface-change
- new interface IStartable, which can be used to run some initialization code when vvvv starts up / shuts down or plugin assembly gets loaded
- ISpread and ISpread from SlimDX can now be imported by a plugin
- in some circumstance IPluginDXResource.UpdateResource was called multiple times per device. this happended for example if a Renderer and an Info node were connected downstream.
released on 24 12 11
- vvvv now requires .net4.0 and msvc++ 2010 runtime components (as reported in crack.exe)
- crack runs without that annoying sound
- simpler directory structure for vvvv:
- performance tuning on basic graph evaluation strategies and gui
- patches now can be disabled by setting the Evaluate) avaible on each patch to zero. by default this guy is only visible in the inspector, but it is an input that you can make visible in the patch and use it to dynamically disable patches.
- worked on device handling, removed quite some bugs popping up in texture feedback situations
- while texture feedbacks still work with Queue (EX9.Texture) we recommend to use the new node FrameDelay (EX9.Texture) to do the feedback. At some point in the future we might not allow shortcut without a framedelay anylonger. Only with the FrameDelay nodes a clear cut between frames is possible
- reworked a lot of helppatches
- all assets (images, xfiles,..) shipping with vvvv are now in \lib\assets
- fixed issue introduced with beta26 that uncaught exceptions popped up in error dialog
- exceptions thrown during render pass will be shown in ExceptionDialog if enabled
- fixed some boygrouping issues
- fixed issue where dynamic plugins wouldn't get reloaded after recompile
- textures created by plugins now work in texture buffer nodes, like Buffer (EX9.Texture) or new FrameDelay (EX9.Texture)
- times where errors could result in a major system hang - where you need to log out and all that - shouldn't occur anylonger.
- singleton bug fix: couldn't replace Mouse (System Global) with Mouse (System Window). resulted in both nodes on top of each other.
- dynamic textures and meshes don't spam the Renderer (TTY) anylonger
- when creating an iobox via middleclick (while making a connection) linkpoints are now kept.
- fixed two occasions where finder would collapse
- last visible window can now not be boxed/hidden
- now when canceling OpenPatch from the QuitOptionsDialog the dialog pops up again
- effect editor didn't show all errors from effect compiler in some cases
- dynamic nodes (fx/c#) should turn red if code contains syntax errors
- fixed issue that nodes wouldn't even show up as a "red missing" node if error occured during node creation
- gui performance tuning. visible patches shouldn't be that bad any longer...
- debug mode shows timings now in microseconds. was in 0.1 milliseconds before.
- in NodeBrowser the sorting of nodes is now back to normal
- OpenInPatch now places node correctly even when patch is scrolled
- CodeEditor no longers zooms in when writing a } on frensh keyboards
- pressing F1 on CodeEditor now opens related wikipage
- Renderer (EX9) has new default 'AsDesktop' for Fullscreen Dimensions, it sets the fullscreen resolution automatically to the size of the desktop on which the renderer window is. Also it's now supposed not t flicker white when going fullscreen
- Text (EX9) added pins to control font caching and preloading behaviour
- GetPatch (VVVV) now comes with a pin "Patch Changes" displaying the message - a XML snippet - that was last sent to a patch.
- IOBox (String) now allows copying binary strings on dblclick
- new property ParentNode in IPin and INode for easier graph traversal in plugins
- new method INodeIn.SetConnectionHandler to control whether or not pins of custom type can connect.
released on 17 08 11
- more control over and comfort for numeric values and strings
- you still can trust on the magic mechanism that helps you with entering valid values into ioboxes (subtype inference). Valid are only values that nodes connected to the output of the iobox can works with... (Think of the Index (subtype: integer) of a GetSlice (Spreads) connected to an iobox resulting in an iobox that helps you with entering integer values...)
- however from now on you additionally can modify this subtype (and therefore behavior of an input pin of e.g. a module and its upwards connected ioboxes) in the following way:
- IOBox (String) now let's you
- set the Content Type (Any, SingleLine, FileName, Directory, URL, IP) reflected by a small (grey) icon,
- a Default string (for when the user resets the pin)
- a File Mask (for when you choose "FileName" as the content type (check the help patch for an example that only let's the user choose files of a certain file type)
- and a Maximum Characters that restricts the user to only enter some few characters.
- IOBox (Value Advanced) now lets you
- set the BaseSubType (Real, Integer, Boolean) (meaningless configuration pins as a reaction get hidden)
- specify the (visual) Precision of a real number
- enter a Vector Size used for visual grouping of slices and as a default slice count when user resets via Alt-Right-Click
- again a Default value
- the Units of measurement to get a better feel for certain values (use s for seconds,m for meters...). (these can easily be entered directly in the iobox when entering a value, e.g. "5 km/h")
- Minimum and Maximum now also modify the subtype, that helps entering valid values in this and all upwards connected ioboxes.
- if the string representation of a value wouldn't fit into the iobox, a shorter is found by cutting of least significant digits.
- "Integer" added to the quick node list
- tooltips for vector & matrix subtypes also show up on ioboxes
- general improved accuracy in tooltips (scientific notation is used for very big and very small values, otherwise the shortest easiest representation is used). A ~ says that the decimal representation of the value would be longer and has been cut off.
- still ioboxes created over middle-click on any vector pin followed by a middle-click on the patch are the easiest way to configure ioboxes
- now most subtype properties are copied into the iobox settings and typically need no further adjustment. (e.g. try this feature by fully configuring a first iobox, then middle-clicking on its in or output pin, followed by a middle-click on the patch)
- hint: a further middle click labels the iobox (no new feature)
- no longer sets the "ColsRowsPages" SliceCount mode, which eases the use of vector ioboxes as inlets for modules
- better defaults for vectors, filenames and paths
- relative paths (to files and folders) are now converted into absolute paths relative to the patch where they were entered. they still are saved as relative paths though. this should solve bugs in modules that received file paths, since they now already receive a solid absolute path...
- Pin Visibility lets you specify how an iobox shows up as a pin from outside the patch (if a Descriptive Name has been entered))
- less confusing node pin tool tips
- better root
- major fixes on texture feedback and resource handling for multi monitor setups
- new quitoptions: open patch, new patch, quit
- implemented new caching mechanism via nodelist.xml;
- if a search path (added via NodeList (VVVV)) contains a nodelist.xml, all node infos beneath this path are read from the nodelist.xml file only.
- if a search path does not contain a nodelist.xml, the directory is scanned as usual.
- vvvv and the addonpack are shipped with their nodelist.xml files respectively.
- for power users: a nodelist.xml file can be generated for a user defined search path by calling 'vvvv.exe /nodelist SEARCH_PATH'.
- comparison of startup times incl. addonpack (after windows reboot / second time):
- beta23 (1047 nodes): ~9s / ~3s
- beta26 (1380 nodes): ~12s / ~3s
- Layer outputs on Quads, Effects (...) only show up one slice, reflecting that you can't index into a "layer spread".
- some filter nodes now work with "seconds" (time value subtype)
- Reloading a patch now doesn't result in disconnecting from its surroundings in the parent patch any longer. You are also asked for if you would want to save your work from now on.
- fixed some (last) enum bugs
- under some circumstances disabled nodes using transform input pins didn't fetch upstream transforms when switched to enabled state
- a color pin didn't report that its values changed if the change wasn't greater than a certain threshold. this led to various inaccuracies in some nodes.
- unfounded red nodes bug fix
- catweasels conversion bug fixed. addons-path-incorrect-on-start-patch-before-vvvv.exe
- bug fix: nodelist is evaluated before any other nodes are evaluated. therefore dummynodes are replaced in time before they are evaluated.
- fixed some convvverter bugs, which should reduce corrupted patches
- crack.exe does better checks for existing components and offers more explanations
- fixed mouse freeze/crash for cases when no Mouse (System Global) is used
- freeframe and vst .dlls can be referenced locally again
- no more problems with patches not loading that store "invalid characters"
- new effects compiler that is substantially faster in special cases and no longer allows the ps_1.0 profile
- saving *.fxh files shouldn't lead to multiple recompilations of effects.
- some bug fixes regarding replacement of missing (red) nodes.
- fixed an issue where a change from an output pin of type 'Node' wasn't acknowledged by downstream nodes which were evaluated some frame later.
- Interlave plugins from vux are in the difff.xml and convert to Vector (Spreads Join) now.
- patches that where edited once in versions >= beta25, than again in versions < beta25 could get corrupted when opening with current vvvversions again. fixed that weirdo SiftNearmost (2d)
- better error reporting can be activated via the main menu (ExceptionDialog) or enabled via command line argument '/showexceptions'.
- dynamic plugin templates reference System.Core, SlimDX and VVVV.Utils3rdParty by default now
- better error reporting if dragging a dynamic plugin on a patch (*.csproj file) fails
- dynamic plugins couldn't resolve referenced assemblies in some cases
- Renderers can now be docked again
- fixed heavy lag when changing values on iobox or pin
- fixed problem with IOBox (Color) when leftclicking while rightdragging
- fixed problem with deleting nodes while in locked-patch-mode
- fixed a few out of range exceptions for NodeBrowser: .node-browser-bug
- CodeEditor no longer zooms back to 0 on AltGr+0
- @ works again on danish keyboards
- alt+e on patch now opens explorer with current patch focused (moved rescanning for freeframes and vsts to alt+shift+e)
- introduced icons for subtypes in string ioboxes
- fixed: clicks on enumpulldowns in inspektor sometimes set mousecursor to topleft
- new drawing style for bangs
- windowswitcher is now bigger by default
- fixed problems with scrolling values/colors on multimonitor setups
- disable fx-autocompletion by removing \bin\hlsl.fnr
- fixed index out of range exception when playing with node and window selection
- only one instance of a patch can now be opened via doubleclicking on a .v4p in explorer
- Shift+Alt+F4 to force quit (no questions asked)
- fixed out of range exceptions in project explorer, if one tried to sort assemblies in the reference dialog
- press ctrl+f in reference dialog of project explorer to search in global assembly cache
- added non-generic version of ISpread and IDiffSpread
- use default logger with attached plugin logger as ILogger implementation for plugins to ensure calls are marshaled to the GUI thread when called from other threads.
- changed signatures of methods IAddonFactory.ExtractNodeInfos
- ISpread> implementations weren't properly disposed.
- added new property Timestamp to INodeInfoFactory
- INode2 didn't emit Renamed event after node info changed.
- bug fix that makes the Cons node work for user structs
- IDiffSpread.IsChanged should work correctly now in case of config pins.
- fixed crash if SetSubType was called with +Infinity/-Infinity.
- removed Pin.Delete() method. Use Pin.Dispose() instead.
released on 18 02 11
- 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
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.
- 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
- 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.
- 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
- 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
- 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.
- OpenURL (Network) opens a link or file with the systems default application
released on 24 12 10
- 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.
- 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
released on 06 10 10
- 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
- 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.
- removed beattracker from AudioAnalysis (DShow9) due to licensing issues
released on 16 09 10
- now requires .net3.5 SP1 to be installed, SlimDX no longer needed
- new CodeEditor for effects and dynamic nodes (via rightclick on those nodes)
- dynamic nodes allow for plugins being edited/recompiled at runtime
- new PluginInterfaces V2 reducing lines of code per plugin typically by 40% + allow custom pin types + some more conveniences seehttp://vvvv.org/pluginspecs
- new Kommunikator for previewing, saving, uploading screenshots (via Ctrl+3)
- new WindowSwitcher (via Ctrl+TAB)
- new NodeBrowser (via doubleclick on patch or Ctrl+N)
- shortcuts like ALT+1,2,3 and CTRL+1,2,3,W ... now also work on all plugin windows like the Timeliner and the new CodeEditor.
- loading vertical-horizontal-vertical links fixed
- start a link from a pin and end it with middleclick to create a suitable IOBox.
- red nodes now denote missing addons
- node icons show weather a node has an associated code, patch or GUI window
- CTRL+I won't open an endless number of Inspektors anymore, instead it will always bring you up the same. if you still need more use SHIFT+CTRL+I.
- subfolders in \plugins, \effects can be arbitrarily organized. the directory structure is now ignored.
- no new ids are generated when simply loading a patch
- string-pins on modules now treat paths as relative to their parent patch
- Switch (Node Output)
- Line (EX9)
- Intersect (3d Mesh Subset Ray) works with GetSlice (Node) now
- FileStream2 (DShow9) now returns correcty position after a seek
- Queue (EX9.Texture) bug fixed
- Input Switches bug fixed
- GlyphInfo (String) now updates Position correcly if input changed
- Sift (Value) used first slice of epsilon spread only. bug fixed.
- Intersect (Spreads Sets) returned wrong results. bug fixed.
- IOBox (Value Advanced) and value input pins now take a comma as argument separator for expressions (was semi-colon). also if no expression is detected all non-numeric characters are now stripped before trying to convert the input to a number
- Keyboard (System Window) now has an Enabled input and a KeyCode output.
- Tokenizer (String) has a new pin called Queue that outputs the currently queued string
- IOBox (Value Advanced) has a new configuration pin called Digits that defines how many digits are displayed after the dot. Be aware that this setting does not alter the values, it only influences how they are shown. It also does not (yet) influence the stepping size when changing values using the mouse.
- IsWellformed (XML) has two new Pins: "Validate on Parse" and "Resolve Externals" lookilooki
- Cons (Spreads) has a Bin Size output pin now
- TogEdge (Animation), Change (Animation), Change (String) don't bang on create by default anylonger
released on 12 03 10
- 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
- NormalsAndDepth.fx writes screen space normals and depth of a scene into a texture
- Find (String) had problems with nil on its inputs (see link).
- 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
- 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 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 (see link).
released on 24 12 09
- the Renderer (EX9) settings enumerations now show up in the Info (Enumeration) output when there is at least one Renderer (EX9) open.
- clients now can be controlled from more than one server
- broadcast IPs and network ports can be specified
- bug with doubled patches on clients fixed
- massive performance gain with transmitting large spreads of values
- bug fix: changes over node pins (like with Switch (Node Input) ) now always result in reevaluation of the downwards connected node
- Loading in Background now is much smoother
- Effect-Editor shows Find-Selections correctly and no longer sends keyboard strokes to Keyboard (Window)
- string-pins now accept smb:// and url-encoded URLs
- vvvv should not prevent windows from shutting down anymore
- changing linkstyle to bezier now will be saved
- no more double connections possible on inputs
- duplicate bug fixed
- middle mouseclick to set descriptive name now also works on IOBox (Node)
- nodes are no longer deselected on middleclicking a patch
- newly created nodes are now selected
- MidiShort (Devices) Recieves all midi messages and outputs the raw data
- MidiSysex (Devices) Recieves midi system exclusive messages
- Find (String) Returns the number of occurences of a substring in a string and the 0-based position-index of the first character of the substring in the string. The comparison is case-sensitive.
- FileStream2 (DShow9): like FileStream but is supposed to load movies without hickups.
- Convert (String) to convert between different string encodings
- Stallone (Spreads, String and Color) evaluates correctly if input or output pin count is changed. See link.
- Keymatch (String) renames its pins correctly.
- Info (Enumerations): had a memory leak
- XFile (EX9.Geometry Load): bugged at loading meshes with more than 1000 subsets
- XFile (EX9.Geometry Load): bugged when file not found
- Effect (EX9.Effect): fixed problem with array pins
- Renderer (Flash) now sends keyboard strokes to Keyboard (Window)
- Renderer (GDI) now sends keyboard strokes to Keyboard (Window)
- Reader (File) now allows to choose not only .txt but also .csv, .xml, .dtd, .html files per default
- XPath (XML) now preserves whitespace
- SpellValue (String) in modes english and german now returns strings trimmed from whitespace
- Division by zero occured in SetSlice nodes. See link.
- some S/R (Node) Issue fixed.
- IP (Network) no longer consumes unnecessary juice
- unmade Kalle (VVVV) a singleton
- unmade Keyboard (System Global) a singleton
- TogEdge (Animation) Bug fix
- VideoIn (DShow9): fixed crashes with devices that have triggerbuttons
- Pipet (EX9.Texture) now has working "Enabled" pin instead of non-working "Force Refresh"
- Vector (Join/Split) nodes no longer cause value inaccuracies
- Sift (String): fixed problems with nil inputs
- Keyboard (System Window): now reads TAB, BACK, DELETE and INSERT keys correctly
- QRCodeTexture (EX9.Texture) now handles relative paths correctly
- XFile (EX9.Geometry Load) got spreadable
- Renderer (TTY) now has a string output wich outputs the last message.
- Renderer (TTY) has a hidden pin "Show Timestamp" (for better debugging it puts a timestamp before every message)
- Writer (File) hass a hidden pin "Create Directory" if it does not extist.
- Integral (Spreads) now works on bins
- Count (EX9.Geometry) got additional pins: Subset VertexCount and Subset FaceCount
- FileTexture (EX9.Texture) got additional Preload pin to actually preload textures into VideoMemory.
- FileTexture (EX9.Texture) has new mipmap behaviour: In the new mode Automatic it behaves like From File for .dds textures, but creates all mipmaps for all other file formats. Automatic is the new default.
- FileTexture (EX9.Texture) and XFile (EX9.Geometry Load) now have a new pin Use Preloaded Item. Using this option only preloaded files will be used while all settings are ignored. That way you can have one place where you specify how to load the resources and reference them at other places in your system.
- Map (Value Interval): better performance
- Info (EX9.Texture) now also can report about properties of the original image file, useful for when you change its size on loading to save memory. it also outputs the original file format
- texture file formats ".tga" and ".ppm" added (for use with DynamicTexture (EX9.Texture String) and Writer (EX9.Texture))
- CurrentTime (Astronomy) now outputs (in addition to current local time) current UTC/GMT, Time Zone, Time Zone Name, Daylight Saving Time
- DShow9 Source nodes have a new hidden Input Adjust System Time mainly useful for FileStream to sync playback on multiple streams in subframe (ie. millisecond) steps
- AsVideo (DShow9) got new Enabled pin and its Reference Clock now defaults to: None
- SubDir (File) is now able to ouput all sublevels of the specified directories
- VertexBuffer (Join): added BlendIndices input
- Contour (FreeFrame DShow9): renamed ID output to "Contours ID"
- Bugfix: vvvv no longer crashes and plugin nodes no longer stop working after reloading a patch.
- Bugfix: The method PluginHost.DeletePin didn't delete input pins of type String/Color/Node.
- Host.GetCurrentTime now returns a fixed time per frame
- plugins are now being loaded even from subdirectories of \plugin
- plugins now also load with relative paths + classname specified
released on 15 04 09
- S+H & switches optimized for unused inputs. you now can better profile your patches.
- tabbed patches no longer utilize CPU + further speed improvements in large setups with multiple tabbed patches
- new commandline argument: /dontregister: probihibts registration of addflow, directshowfilter and .v4p filetype
- freeframes finally work again without .net2 installed
- resize windows proportionally by pressing CTRL while resizing one of its sides
- Effects Transform Parameters can now deal with arrays + a little fix for initialized Value arrays (as e.g. with VertexNoise effect)
- a disabled windowborder can now be saved (via parent-patch only!)
- no more nasty desktop-reload-flash on vvvv startup
- WithinView, WithinProjection, WithinNormaizedProjection, WithinViewport (Transform) for more or less camera and render independent 3d layers
- Billboard (Transform) for 3d layers always facing the viewer
- OneSided (Transform) e.g. for always readable text
- Compare (String) a case-insensitive comparison between two supplied strings.
- HID (Devices), HIDDecode (Devices) and HIDEncode (Devices) should make it possible to send/receive data from HID Devices.
- eNet (Devices ecue Config) sets the Nic IP the ecue nodes should bind to
- Verlet (Spreads Simple) calculates a simple verlet integration chain (translation of c# code originally written by milo)
- Info (Enumerations) returns all Enums with Defaults and all their Entries.
- Ping (Network) now deals with hostnames and ips
- Select (MySQL) no longer has random dropouts when queried every frame
- XPath (XML) should be faster in some cases, and it shouldn't loose memory anymore
- VideoIn no longer BSODs with logitech qc pro 9000 (could also be relevant for other cams that had this problem)
- Separate (String) no longer freezes with large spreadcounts
- Expr (Value) evaluates expressions consisting of only one variable correctly now.
- Changed flag is correctly propagated through io (node) nodes
- MidiController (Devices), MidiController (Devices Relative) and MidiNote (Devices) do not output all combinations of midi channel and controller number anymore.
- Box, Cylinder, Grid, Sphere, Text & Torus (EX9.Geometry) mesh creator nodes are spreadable now
- Tokenizer (String) now can deal with separators that consist of more than one character
- Keyboard (System Global) has a new pin called Buffered Keyboard Output
- Added 4th blend weight and 4 blend indices to VertexBuffer (EX9.Geometry Split).
- Expr (Value) uses new expression parser from JEDI code library.
- (+) Much faster evaluation (about 10 times faster than old Expr node and about 40% faster than equivalent vvvv patch -> at least for tested expression 'sqrt(sqr(a)+sqr(b))').
- (-) Not as many operators available as before. Of course equivalent functions for missing operators were added.
- GlyphInfo (String) has a new output: Position that returns relative positions for all characters in the given string
- Multiscreen (EX9) and MultiViewport (EX9)
- Damper (Animation Jump)
- Decompose (Transfom Vector)
- NoSymTex (Transform)
- TextureScale (Transform)
- Grid (EX9 Test)
- Sprite (DX9) now respects Aspect Ratio of Texture
- fixed ScreenNumber (EX9)
- now support Enum in- and outputs and Mesh and Layer outputs
- new Text (EX9) plugin
- new ColladaFile (EX9.Geometry) + Mesh (EX9.Geometry Collada) plugins
released on 24 12 08
- save gets more insisting, secure and expressive in its error messages.
- copy & paste uses windows clipboard. you also can paste the xml snippets into a text editor.
- Renderer (HTML URL) now sits in its window properly and can render onto GDITexture even if hidden by another window/fullscreen
- Renderer (HTML String) can now render onto GDITexture even if hidden by another window/fullscreen
- OSCEncoder (Network): had a memoryleak when not sending as bundle and may have returned wrong status.
- Kalle (VVVV) is now a proper singleton.
- GDITexture (EX9.Texture) can now render with alpha channel, if texture format with alpha channel is selected (mostly useful for rendering of Text (GDI)). got an additional pin "Enabled" which allows to disable rendering independent of the connected renderer
- DX9Texture (EX9.Texture) can now render with antialiasing (but not when using multiple rendertargets)
- Decay (Animation) now can attack into two directions and decay back to one value, the turning point. use Terrain-pin and select "Valley".
- HSL (Transform), added input pin to set a factor for the alpha channel
- Clipboard (Windows String Get) outputs the current clipboard-content see
- Clipboard (Windows String Set) copies a given string to the clipboard
- Lumax (Devices) - untested
- QuickNodes (VVVV) ?
- Bicubic.fx, high quality texture scaling
- most shaders have an alpha pin for easy fading now
released on 14 11 08
- ctrl+m fixed (no longer saves multiple INFO tags)
- output-stringpin-tooltips no longer freeze vvvv link
- Shortcuts working again after opening patches with docked plugins. as noted here
- no more nasty popup on startup concerning file-type registration if you are no admin
- FileStream (DShow9) now deals correctly with urls as filename
- Writer (EX9.Texture) no longer saves files with double fileextension
- Renderer (Flash): fixed playback of files as pointed out here
- ALL modules got a good help file, tags for future search functions, taglines for future tooltips in node menus
- invented an open place where all modules will be collected: somewhere on sourceforge. somehow contact the vvvv group to get an account.
- new folder structure for all shipped modules
- renamed some modules, however they will be properly converted
released on 31 10 08
- nodename lists now sorted with nodes of category Value first
- ctrl+m on a patch shows fields to enter moduleinfo (author, description, tags)
- VideoIn (DShow9) now works for DV cams again
- Switch (String Output) evaluates faster
- Switch (Color Output) evaluates faster
- GetSlice (Node) index out of bounce exception fixed
- XPath (XML) bug fix
- InsertSlice nodes got some fixes. check the help patch of InsertSlice (Color)
- + (String Spectral) again evaluates correctly
- UDP (Server) now has additional queue mode: Spread
- OSCEncoder (Network) rewritten with hopefully same functionality
- OSCDecoder (Network) now takes a spread of addresses
- DMX (Artnet Sender) now has the broadcast address configurable with a pin link
- Undo (VVVV) has a new pin called Enabled that allows you to disable undo globally
- WordWrap (String) wraps given strings according to specified width
- Barcode1d (Spreads) creates geometry information for a barcode.
- BeatDetector (Value)
- FFT4Channels (DShow9 resample)
released on 02 09 08
- new sub category 'Spreads Sets' with four new nodes (=, Intersect, Unify, Subtract), which treat spreads like sets -> order and multiplicity of elements is unimportant
- CategoryNodelist is now sorted correctly
- fixed a major bug: seems that all patches didn't evaluate correctly in the first frame. link
- convverter (difff.xml) got a new feature: changing the default value of pins is possible from now on. the old default value is manually set by the convverter, if no other value for that pin was stored in the patch.
- Substitute (Spreads) substitutes values. See wishlist link
- = (Spreads Sets) returns 1 if all elements in input spreads are equal
- Intersect (Spreads Sets) all elements of output spread must be at least once in each input spread. See whishlist link
- Unify (Spreads Sets) unifies all input spreads to one output spread
- Subtract (Spreads Sets) returns all elements of input spread 1 without elements of input spreads i (i > 1)
- CDR and CAR for types string and color. See wishlist link
- GetSpread for type string
- InsertSlice for types string and color
- Scale (DShow9 Meraka) scales directshow RGB24 video streams
- Crop (DShow9 Meraka) crops directshow RGB24 video streams
- SharedMemory (DShow9) pumps shared memory into a directshow stream
- Swap (Spreads).v4p replaced with native node
- SetSlice/GetSlice (3d Vector).v4p replaced by SetSlice/GetSlice (Spreads) nodes and a default binsize of 3
- Sift (Values) improved performance
- Get- and SetSlice nodes enhanced by new input pin 'Bin Size'
- GetSlice nodes enhanced by new output pin 'Output Bins'
- Spectral nodes - if first bin size is negative remaining bin sizes won't be ignored anymore
- Expr node now supports an arbitrary number of variables with user-defined names, better error handling
- IOBox (Value Advanced) is now capable of evaluating mathematical expressions on user input
- TypoSpread (Spreads) now has all inputs spreadable
- MidiClock (Devices) works again
- MidiTimeCode (Devices) works again
- InsertSlice works correctly now
- ScopeSpread (DShow9) stereo mode fixed
- Counter (Animation): now it resets to the default value in the first frame and after that checks up/down pins to change values from there. link
- receive nodes of all types: fixed bug reported here: link
- fixed ViewFrustumCulling (EX9.Geometry Mesh) bug: link
- VideoIn (DShow9) should no longer freeze for random webcam models
release on 16 07 08
- some Undo bug removed
- ID pins don't return NIL anymore
- better Boygroup debugging tools (check the Boygroup nodes)
- boygroup server now takes optional broadcast IP on the commandline after the /server switch (else broadcasts on default network adapter)
- convverter (diff.xml) can convert nodes (and patches) with inputs and outputs having the same name
- you can now find the nodelist.xml file in \bin which holds a specification of all nodes in the current release (still missing: plugins, modules, freeframes, effects)
- new commandline argument: "/shutup" will disable all shortcuts (but Alt-F4) and won't let patches nor inspectors show up
- vvvv now supports VST effects and instruments within sound graphs
- plugins may now implement IDisposable to be notified when the plugins node is being destroyed
- plugins may now use the Log() function to write directly to vvvvs console, ie. Renderer (TTY) at any time
- plugin-pins have a new property: IsConnected
- Copy (String) returns substrings containing Count characters starting at Index
- DMX (Devices ecue Texture) sends textures to ecue devices according to an ecue-patch-file
- DMX (Devices ecue Butler) sends DMX values to ecue Butler devices
- eNet (Devices ecue Info) shows ecue devices that are visible in the local network
- WavePlayer (DShow9) can now output to multichannel soundcards
- Writer (EX9.Texture) now creates a specified directory if it doesn't exist.
- DoQuit (VVVV) now has a QuerySave input
- UDP (Network Server) now has a BufferSize input
- Boygroup (Server) now has a MaxUDPSize input
- VideoIn (DShow9) now has TriggerMode and Trigger inputs
- Attractor nodes throughput Input to Output when no attractor is specified
- Switch (Node) should be much faster
- OSCDecoder (Network) fixed OnReceive output and fix with nil inputs
- SharedMemory (DShow9 TransformInPlace): now accepts more videosubtypes and no longer crashes if reader of memorylocation was there first
- VideoOut (DShow9 SharedMemory) no longer crashes if reader of memorylocation was there first
- Homography (Transform 2d) and GaussJordan (Value): memory leak in equation solver
- Intersect nodes: don't report a false intersection anymore, if no inverse of the world matrix exists
- VideoTexture (EX9.Texture VMR9 YUVMixing) no longer flickers
released on 10 04 08
- now with open interface to create your own plugin-nodes
- Kalle (VVVV): could change background kalle of patch
- Timeliner (Animation)
- Lindenmayer (Spreads)
- Particles (Spreads Multiple)
released on 03 04 08
- dtd updated to be be valid for patches with hidden pins
- fixed some random evaluation bugs (partly related to s and r nodes)
- fixed a problem with singletons (nodes which internally only exist once, even when they display in more than one patch)
- SetMatrix (EX9.Transform) got new pin called Update
- + (String), + (String Spectral), Separate (String) are more flexible in their intersperse modes.
- S+H nodes got an additional "Set on Create" pin
- Togedge (Animation), Change (Animation) got an additional pin "Bang On Create"
- XPath (XML) is fully spreadable now. it should also be faster on new queries on unchanged XML documents.
- Pipet (EX9.Texture) now takes background-color of connected renderer including alpha and fakes alpha for all X... texture formats
- Mouse (System Global) corrected subtypes of X and Y outputs
- Writer (File) couldn't write a second time
- Effect (EX9.Effect): fixed error with arrays of colorpins
- S+H nodes bug fix (was sampling input when it was empty in the frame before)
- Waveplayer (DShow9): Sync, DoSeek now spreadable,no crash if driver is changed while playing
- Counter (Animation) fixed another time. outputted NAN in very special cases
- DeNiro (Animation) got a help file
released on 26 03 08
- patches are transfered to the client as patches, not as a big unstructured graph like before.
- it should be save to run an existing boygroup project.
- you now can inspect the received patches on the client like you would inspect patches on your local machine (inspector, tooltip...). (however for now you shouldn't change received patches)
- relative paths to resources now find their way, if the client and server directories for the project are identical. you now can structurize your work:
- you can place your resources - like effects, textures, xfiles - where they belong to: in your project directory, not in the vvvv directory.
- also patches now can be placed in different folders within your project directory.
- nodes like setpatch, getpatch, patchalias, self (...) now make sense on the client too, since the client executes them within a patch
- bounds of windows are transfered. in that way you can make sure that a renderer pops up on the second monitor of a client. this is good for situations when you want the first monitor to be used as kind of windows console with taskbar and windows startup screen, and a second monitor for the projection.
- quiet mode (node Boygroup (VVVV Server)) should work even more quiet. you now can work with more people on the same project within the same LAN with several servers, but with only one communicating to the clients.
- server and clients can be started in any order
- synchronized pins (bridges) are faster than before
- bridges can be inspected in the debug mode (CTRL-F9) on server and client. you see which pins send their value regularly and which bridges are inactive (yellow .. black depending on activity)
- active and overall bridge counts can also be inspected through the new output pins on the Boygroup (VVVV Server) node.
- log messages are created when "Broadcast Mode" is UDP, but some spreads are to big for UDP and therefore sent over TCP. good for debugging
released on 26 03 08
- undo of a subset of slices within a bigger spread now works as expected
- all nodes now have a hidden pin that returns their ID in the patch
- copy & paste behaviour with more options, better defaults and fixed linkpoints offset
- new commandline switch: /dda X (where X is the device ID of the device a renderer will go fullscreen on startup) only needed if having troubles going fullscreen on any device other than the primary (which would be 0)
- Renderer (DX9): no more cursor and gdi-flicker in fullscreen
- Mouse (System Window): middle and right mousebuttons now always release on mouseup
- DX9Texture (EX9.Texture): now works on multiple devices
- Pipet (EX9.Texture): now works with more texture formats
- Fog (EX9.Renderstate): should work more reliable
- WavePlayer (DShow9): greatly enhanced
- Queue (Spreads), RingBuffer (Spreads): no more division by zero if Insert is nil
- Select (MySQL): can now deal with nil inputs
- OSCDecoder (Network): now evaluates for sure
- Sequencer (Animation): now has a CycleCount output
- Sift (Value): now has a pin called Epsilon to sift with a given tolerance
- ConvexHull (2D): now spreadable via a new BinSize pin
- Memory (Debug EX9): now returns output in megabytes instead of bytes
- Dir (File): now returns the filecount per input directory
- Processes (Windows) now has a pin called Update which needs to be banged in order to update the process-list
- FileStream (DShow9) finally plays avisynth scripts
- Self (VVVV): added pin ID in ParentPatch
- Renderer (Flash): added pins DoSeek and SeekFrame
- Effects now take arrays of values and colors per slice
- Cons (Spreads): should now be faster on larger spreads
- SetPatch (VVVV) , GetPatch (VVVV), PatchAlias (VVVV), PatchAlias (VVVV Name) are spreadable now
- SourceBuffer (DShow9): writes your favorite values to a multichannel soundcard
- SharedMemory (Windows): can access a shared memory file
- SharedMemory (EX9.Texture): creates a texture from a shared memory file
- SharedMemory (DShow9 TransformInPlace): passes video through and writes mediasamples to a shared memory file
- VideoOut (DShow9 SharedMemory): writes mediasamples to a shared memory file
- SetProcessAffinityMask (Windows): Assigns a process to specific processors
- NodeList (VVVV) outputs a list of all vvvv nodes
- B-Spline (3D Wryly) with which you can twist a B-Spline
released on 24 12 07
- now shipping with new opencv1.0 dlls. recompiled freeframes that depend on opencv
- little improvement to nasty IO bug: ioboxes now repaint for sure on mouseover
- WavePlayer (DShow9): reduced delay on play and improved pin defaults
- IP (Network): now returns adapter infos for all network adapters
- IO (Devices BMC meM-PIO): devices now can be addressed by their serial number
- Trautner (FreeFrame DShow9): added pin "Dark Background" which allows to adchieve much better results with bright backgrounds
- Intersect nodes don't throw an exception every frame
- Counter (Animation): behaves well with min=max now
- GetPatch (VVVV), SetPatch (VVVV): bug fix for use with PatchAlias (VVVV ActivePatch)
- GetSpread (Spreads) now works in subpatches and no longer freezes randomly
- CountIndices (Spreads) now copes with empty set on 'Count' input
- SevenSegment (Spreads) now works in subpatches
- RingBuffer (Spreads) some bug fixed
- Decay (Animation) now works also in increment time mode
- Mod (Value) no longer has rounding errors
- ShellExecute (Windows) keeps filename after restart when they were in same directory as the patch
- FileStream (DShow9) keeps filename after restart when they were in same directory as the patch
- Http(Network Post) now validates all its inputs correctly
- BeatTracker (DShow9): guess what
- GaussJordan (Value): linear equation system solver
- Homography (Transform 2d): calculate a 2d-distortion matrix defined by 4 given 2d-points
- DMX (Devices Sunlite SLESA): support for the dmx-output devices based on the 'dashard2006.dll'
- Sift (Value): finds first, last or all occurences in a spread
- Undistort (DShow9 OpenCV): encapsulates openCVs calibfilter.ax to correct lens distortions. + pixelshadercode to undistort on gpu.
- MIDISysexOut (Devices): allows VVVV to send MIDI sysex commands. This allows for example sending MIDI Show Control commands to communicate with Light Desks like the WholeHog
- Traverse (Graph SearchFromTo NewWheel): Searches an arbitrary graph for pathes from one node to another. It was originally implemented for a project called coverbox in 2000.To that time Sebastian Gregor (me) decided to not look at the literature and reinvented the wheel, so that's why you find more curious options here and few of those you would expect.
- Checksum (String) calculates CRC checksums for given strings
- QRCodeTexture (EX9.Texture) generates a qr-code-texture for a given string.
- Processes (Windows) Lists certain properties of running processes.
- Kill (Windows) kills running processes.
released on 04 07 07
- recompiled all .ax files in \bin (including freeframewrapper) to keep them bits fresh and improve filesize
- probably fixed some of the nasty inspektor hickups
- Expr (Value): added output that reports errors. arguments-separator is now back to ,
- Delaunay (2d): limited vertex count to 10.000 per triangulation; this allows to have more independant triangulations
- GetPatch (VVVV): now can tell about selected nodes, use together with one of the many PatchAlias nodes to implement your own GUI features
- FileTexture (EX9.Texture) works again with Pipet (EX9.Texture) and can load unlimited numbers of textures again
- Scroll (Color)
- Shift (Color)
- PatchAlias (VVVV Name) : patch by name, use together with SetPatch
- PatchAlias (VVVV ActivePatch) : activepatch, use together with SetPatch
released on 18 06 07
- vvvv now is able to exchange data with MySQL-databases
- Mainloop time filter reset condition improved
- vvvv now reports an error in the startuplog if it failed to register any activex control
- now reports line and character of parser errors in Renderer (TTY)
- the techniques-enum on effects now persists devicechanges
- general bug fix related to empty spreads
- RS232 (Devices) can now connect to comports > COM9
- GlyphInfo (String) now reports correct values after being fed with a zero-spread
- AsVideo (EX9.Texture) can now connect downstream via IOBoxes (Node)
- PatchAlias (VVVV) now evaluates its output correctly
- Intersect (3d Mesh Ray) memory leak fixed
- OSCDecoder (Network) now handles addresses with multiple slashes and no more "out of memory"-messages in bundle-mode
- HTTP (Network Get): now updates Name-Value pairs if any slice changes
- DynamicTexture (EX9.Texture Value): now only computes while Apply=1
- AsString (Color Hex) now clamps at 0, no longer resulting in bad output with negative values
- Expr (Value): fixed memory leak and improved speed
- FFT (Dshow9) added Frequency Scaling pin, see this discussion.
- FileTexture (EX9.Texture) & XFile (EX9.Geometry Load) can now load their textures / xfiles in a different thread in the background while the system is up and running.
- FileStream (DShow9) can now play Matroska files (if dshow-filters are installed)
- Split(String) now can deal with Spreads
- WordCount (String): fixed reset and added "Add Words" (apply) pin
- DX9Texture is now able to output a spread of textures. it works perfectly together with a multipass effect, which outputs more than one color from within its pixelshader
- Database (MySQL Network) provides access to a MySQL-database(server)
- Select (MySQL) retrieves data from database-tables
- Insert (MySQL) adds new rows to database-tables
- Update (MySQL) modifies data in database-tables
- Delete (MySQL) deletes rows from database-tables
- Cons (Color) concanates incoming spreads to one spread
- Intersect (3d Mesh Subset Ray)
- OptimusMini (Devices) a node that interfaces the Art. Lebedev Optimus Mini Three
- Reverse (String)
- Reverse (Color)
released on 20 12 06
- vvvv now can load a patch even when its extension is in capital letters
- vvvv now no longer crashes when you have similarly named (apart from case) modules somewhere down in your /modules directory
- boygrouping now copes with relatively referenced file-nodes (.fx, .dll)
- EX9.Effects editor now should keep its focus for shortcuts
- boxed windows finally stay in place when patch is scrolled (thanks for being patient)
- added /logstartup commandline option which hopefully helps us tracking crashes that happen during startup
- saver time handling
- screenshots are now saved with timestamps
- Perlin (3d) evaluates its Z pin correctly
- Queue (Texture) bugs resolved
- XFile bug fixed
- Renderer (Flash) now initializes correctly after being closed and being given a new filename
- VideoIn (DShow9) fixed bug that made some devices (those using VideoInfoHeader2) crash rather than showing an image.
- AsVideo (DShow9): graphs containing this node should cause less troubles now
- IOBox (Value Advanced) no longer hangs vvvv when leftclicking while rightclick-changing value
- DX9Texture (EX9.Texture) can now create mipmaps
- Renderer (GDI), Renderer (Flash), Renderer (HTML String) and Renderer (HTML Url) now are in place when "inbox" mode while a patch is opened for the first time
- Current Frame output of the MainLoop node is correct now
- "Runtime Error 217" on startup related to odd midi drivers fixed
- Torus (EX9.Geometry), Sphere (EX9.Geometry), Cylinder(EX9.Geometry) no longer crash when settig their resolution to 0
- DScaler (DShow9) can now be controlled via pins (used to be via property box)
- Write (EX9.Texture) got an additional pin "Only Render on Save" that saves cpu while the node is not writing to disk.
- ScopeSpread (DShow9) handles stereo signals now and is more stable
- FFT (DShow9) handles stereo signals now and is more stable, new pin to enable/disable windowing
- FileStream (DShow9) now also streams files from http:// and mms:// sources. no playlists yet.
- VideoIn (DShow9) settings now default to systemsettings after loading. therefore they can be kinda saved.
- both VideoTextureNodes got an output showing their input mediasubtype. revealing weather DXVA is used for decoding or not.
- Mouse (System Window) now outputs the position of the mousewheel
- OnResume (Windows) bangs when your computer resumes from hibernation or standby
- Gregorian (Astronomy Join) encodes separate values to a date value
- Switch (Color Input)
- Switch (Color Output)
- GetSpread (Color) for much faster selection of large consecutive spreads
- GetSpread (Spreads) for much faster selection of large consecutive spreads
released on 29 07 06
- fixed rendering with ex9effects which magically was completely broke
released on 28 07 06
- Unicode support - you will now be able to render all unicode characters and work with UTF-8 strings
- you can now personalize vvvvs splash screen or omit it at all. you guess how!
- the root-patch now only asks for being saved when you first have manually saved it once.
- bug in graph fixed. sometimes values were flowing without connection or values were not transmitted on a link
- Styx (Windows) now finds its .dll
- no more accessviolation while an effect cannot be compiled
- ViewFrustumCulling (EX9.Geometry Mesh) now deals with spreads correctly
- BoundingBox (EX9.Geometry Mesh): fixed memory leak and CenterAll Output
- Text (EX9.Geometry Mesh) now correctly reports changed status
- OSCEncoder (Network) is now spreadable and can encode to bundles
- OSCDecoder now copes with concatenated OSC messages (even if they are not bundled)
- IOBox(String) you now can paste UTF8-encoded strings into the iobox and it displays UTF8-encoded strings and control characters (#0..#32 and #127)
- Length(String) now can deal with UTF8-encoded strings
- Split(String) now can handle UTF8-encoded strings
- Text(GDI) now can render UTF8-encoded strings
- Typospread(Spreads) now can cope with UTF8-encoded strings
- Ord(String) now can convert hexadecimal strings to numerical values
- FileStream (DShow9) also now supports Quicktime Alternative >= 1.71
- GlyphInfo(String) tells if a given character is defined in the chosen font and outputs the width of the character corresponding to the chosen font(size)
- TextMetrics(String) outputs certain textmetrics of a chosen font
released on 30 03 06
girlpower and modules
- WebInterface sample added
- Mirror sample added
- FreeFrameWrapper now can cope with spreaded inputs (as used with the tracker nodes!)
- Fanclub. the built in irc chat (Strg+F1) is working again
- boygrouped renderers pop up as window again
- press ALT while scrolling a patch to scroll horizontally. STRG and SHIFT speed up.
- FreeFrame nodes with outputs should crash less
- * (3d Dot) and * (3d Cross) don't evaluate the second input pin
- commandline arguments are interpreted correctly again
- Renderer (HTML Url) pops up again
- ScreenShot (EX9.Texture) working again
- XFile (EX9.Geometry) spits out texturenames (only correct when relative paths)
- Cons (EX9.Texture) in weired combinations with GetSlice upstream.
- Line (EX9.Geometry) now works with a spread of binsizes
- FileStream (DShow9) consumes much less power while paused
- FormatValue (String) now always rounds correctly
- Substitute (String) hangs less
- IObox (Value Advanced): crashes less
- Reader (File) : works more properly and reads files even if they are opened by another program
- XSLT (XML) now handles spreads
- Writer (File) now can append strings to existing files
- Separate (String) now has a Input "Keep Quotes" wich forces the parser to output the Quotes
- XPath (XML) now can handle a spread of queries.
- Normals (EX9.Geometry Mesh) now has a pin to specify a smoothing angle
- Tidy (XML) now allows to specify the input- and output-character-encoding. There is also a new output-type "XMLNoHeader" which forces Tidy to strip XML- and Doctype-declaration.
- HTTP (Network Get) now is spreadable. Also the in- and output-pins slidely changed.
- CreateEnum (Enumerations) allows to create own enum types
- NULL (Enumerations) creates a pin which accepts any enum type. connect it to the OUPUT of a IOBox (Enumerations) to get an user enum inlet. also make use of Enum2Ord.
- Styx (Windows) makes your system invulnerable.
- HTTP (Network Post) sends data to given URLs using the HTTP-POST Method.
released on 23 12 05
- MAJOR improvements in multimonitor support & fullscreen management. WARNING: in the past renderer windows popped up while loading patches. now that's pretty cleaned up now. however some renderers in your project might by invisible now. right-click them or select and press "Alt-1" to get them windowed.
- HelpPatches have been relocated: only HelpPatches of nativvvve nodes are in the \help directory. HelpPatches for modules\freeframes\effects now lie just next to (in the same directory) their respective .v4p\.dll\.fx files. no more \help\modules, \help\effects ...also works for your modules\subfolders!
- fixed a bug with renderloops that made patches like Matrjoschka not working
- DirectShow (Video/Audio/Midi) connections work again via IOBoxes
- VideoTexture (EX9.Texture VMR9 YUVMixingMode) now correctly deinterlaces in most cases (use Cheater if needed)
- VideoTextures "Wait For Frame (ms)" gave way for a hopefully more useful "Wait for every Nth frame" pin
- DynamicTextures now work with Pipet
- Pipet now reports alpha correctly in some more cases
- VideoIn now copes with Decklink cards
- Compress: will be more reliable in connection with VideoOut
- FileChooser has: All Files (*.*) again
- PhongDirectional, PhongPoint: fixed for multiscreen and handling alpha textures
- GouraudDirectional and GouraudPoint: fixed handling of alpha textures
- FileStream: fixed random files don't play bug
- FreeFrame: pins now update correctly (not only on mouseinput)
- Shift (Value) small bug
- solved a bug in XFile (EX9.Geometry Load) and FileTexture (EX9.Texture)
- solved a small bug in the Select nodes (Color, String, Value)
- fixed a bug in + (String Spectral)
- VideoOut (DShow9 Devices) (renamed from ...DShow9 DV): outputs to external video renderers like a DV cam or the Decklink card.
- HTTP (Network Receiver): added 'Method' Pin to specify the HTTP-Method. Outputvalues now stay till the next Request, no more need for S+H.
- ColorTracker (DShow9 FreeFrame): tracks them colors. spreaded version still to come.
- SetPatch (VVVV): Allows you to set Actions to a running patch via XML-Descriptions
- AsColor (String Hex): Returns the corresponding color to a hexadecimal string
- AsString (Color Hex): Returns the hexadecimal string respresentation of colors
- AsString (EX9.Texture): guess what
- KeySort (Spreads) sort incoming data packages by key values and get the data at specified positions
- Eject (Windows) opens/closes cd-rom or dvd drives.
- ShutDown (Windows) shut down, log off, reboot, shutdown & power off.
- added JHNOs cool waveplayer examples
release on 20 11 05
- change log of beta9.1 with more points (sorry some were forgotton (e.g. Space pin..)
- fixed corrupt modules
- fixed MultiScreen (EX9 Dualview)
- added more help files for modules
- added Button (3d Mesh)
- some Fullscreen DepthBuffer bug fixed (like seen in the shadow patch)
- InverseKinematics (2D 2Bone) fixed an axisjump
- Intersect (Mesh Ray) had a problem when no mesh was connected
- effect nodes: added a pin for auto selecting valid techniques
- effect nodes: saved technique wasn't loaded correctly
released on 16 11 05
- now shipping with beta5 opencv .dlls. freeframe plugins that use opencv need to be recompiled with those new dlls. did so with trautner and contours.
- updated uninstall.exe to uninstall all .ax files in \bin
- added a "Space" pin to DrawFixed and all old dx9 particles (Quad..) with which you can decide, in which space the particle is situated. when selecting "World" the particle behaves like before. if you don't want to interact with the camera (e.g. want to place a screen-aligned button you may want to place your Quad in "Projection" space. the view and projection transformations of the renderer won't infect this particle. if you select "View" only the projection of the renderer will infect your particle, cause it is already relative to the camera in viewspace..)
- VertexBuffer (EX9.Geometry Join/Split) can work with 4d texture coords
- Cylinder(EX9.Geometry) has some more options
- MainLoop's default time mode is 'raw' again
- Toggle (Animation) added Reset pin
- OSCDecoder (Network) deals with #bundles and outputs timestamp
- WindowLists (Windows): removed some vvvv-internal windows from toplevel windows list
- delay can be reset from now on
- select nodes got a "Former Slice"-Pin
- Contours (FreeFrame DShow9): added output 'Orientation' that gives a degree value for the orientation of each contour
- freeframe plugins now handle r,g,b parameters as colorpin
- various filenodes have their default filename mask changed from *.txt to *.*
- Tidy (XML) Tidies bad HTML to proper XHTML
- WavePlayer (DShow9) plays a spread of independent loops within one audio files.
- HTTP (Network Server) serves Ressources via HTTP
- HTTP (Network Receiver) receives HTTP-Requests
- IsValid (XML)Validates XML against a DTD, returns if valid or not
- IsWellFormed (XML) Checks whether XML is well formed or not
- XPath (XML) You do a XPAth Query and it returns a Spread of Matches
- XSLT (XML) transforms XML-Documents with XSL(T).
- VideoOut (DShow9 DV) renders video directly to a dv-cam connected via firewire
- PatchAlias (VVVV) Provides a link to a Parent Patch of a selected depth
- Writer (EX9.Texture AVI) save textures connected to an AVI file
- MidiTimeCode (Devices) get midi time code input
- MidiClock (Devices) get midi clock input
- GetPatch (VVVV) Returns the current XML-Description of a running Patch
- Intersect (3d Quad Line) Intersection of a quad and a line
- Intersect (3d Mesh Ray) Intersection of a mesh and a ray (directed line) the intersection nodes can be used to create buttons in 3d space
- Delaunay (2d) minimized version of Delaunay (2d Triangle), outputs only the indices at one pin (consistent to mesh join)
- * (3d Dot) 3-dimensional dot product
- * (3d Cross) 3-dimensional cross product
- Vector Join/Split for 2d and 4d
- Bone (Transform LookAt Vector).v4p cool for inverse kinematics
- Button (3d Quad).v4p place Quads in space and be able to click them
- InverseKinematics (3D 2Bone).v4p the more coll for inverse kinematics
- Light (EX9 Direction).v4p display the light direct in the renderer and have easy access (pitch, yaw) to adjust the light direction
- Light (EX9 Point).v4p display the light position in the renderer
- Normals (EX9).v4p to display the normals of your mesh on your mesh
- Projector (EX9).v4p to create views on your virtual scene matching the real world scenario
- MultiScreen (EX9 Dualview).v4p use it to adjust 2 independent screens/renderers
- MultiScreen (EX9 Spanmode).v4p with this module you are able to ajust a grid of projectors with their overlaps and ajust the softgedge
- ScreenNumber (EX9).v4p display the number of a screen in the renderer)
- fixed a bug in the GlobalRenderState node
- old particles like the Quad had a problem with textures on some machines
- R nodes show only default value at the output pin but the correct values arrive
- Switch (Value Output) outputs flickered
- effects now accept #include files
- videoplayback on kalles laptop (could have positive impact to other old graphic adapters/drivers too)
- gray render bug (happened on older graphic adapters)
- FileSource now deals with filenames > 128 characters
- renderer didn't update backgroundcolor in attached dx9textures when hidden
- device management debugged for complex scenes with feedback and many renderers.
- fixed wrong interpretation of intersperse enum in +, qoute and separate(String)
- fixed bug that sometimes caused a silent crash where everything was looking normal, but no patching/saving was possible anymore.
- dualscreen IOBox click troubles fixed
- the famous DPI settings bug is fixed. still 96dpi are recommended!
- Writer (EX9.Geometry XFile): now deals with relative path filenames
- VideoTexture Nodes: fixed bug that would not play videos on some graphic adapters, some switch-to-fullscreen bug fixed
- Seperate (String) doesn't throw errors all the time
- B-Spline had a small problem
- Pipet (Texture) works correctly with spreaded textures
- Dynamic Texture (Color), Dynamic Texture (Value) volumetexture bug fixed
- Substitute (String). fixed that curious one.
- Graph (Debug) had a small problem
- some effects techniques had some problems with validation. if no texture is connected the default texture will be white
- xfile writes more clear log messages
- Perpsective (Transform OffCenter) fixed
released on 01 09 05
for a list of the most important changes to this release have a look at the extra beta9 site.
- saving patches is always fast
- fixed bug with pin-inspektors not hiding when value was not changed
- when entering a value you can now use both ',' and '.' as decimal seperators
- arguments from Args.txt are now appended to commandline arguments
- windows can now be toggled 'always on top' (Ctrl+T)
- new mainloop mode, with defaults to a new mode where the time is filtered to get smoother animations.
- depth buffer pins are in the Inspector now as enumerations to choose the precision.
- feedback loops with renderer are much more easier now: create one renderer, write its output texture into the Queue texture (frame count of 1 is sufficient) and use the output of the Queue as a texture in the same renderer.
- Torus (EX9.Geometry) discrete Render Object, was a module in former versions of vvvv
- DFT (Value) discrete fourier transform
- Perlin (2d): smooth 2-dimensional noise function
- Perlin (3d): smooth 3-dimensional noise function see Perlin Noise
- Cross (3d): creates all combination triplets of the inputs
- MAC (Network): Get the physical MAC address from a given network name or IP (all pins spreadable)
- Normals (Ex9.Geometry Mesh): calculates normals, tangents, binormals for a mesh
- Change (Ex9.Geometry Mesh): outputs 1 when the input-mesh changed in this frame, 0 if the input mesh was equal to the one in the last frame
- Change (Ex9.Geometry VertexBuffer): outputs 1 when the input-vertexbuffer changed in this frame, 0 if the input-vertexbuffer was equal to the one in the last frame
- Count (Node)
- Count (Color)
- Count (Enumerations)
- IO (Devices IOWarrior40): connect IOWarrior40 by code mercenaries to vvvv
- Buffer (EX9.Texture) creates a spread of textures where new images can be written at arbitrary positions (note that texture input and index input not spreadable yet)
- Cons (EX9.Texture)
- AsVideo (DShow9) added: Create DirectShow video stream from texture
- Writer (DShow9): Write a DirectShow video stream to disk
- Compress (DShow9): compress a DirectShow video stream with a chosen codec
- Separate (String): Splits a given string at the selected separator into slices
new nodes for complex math
- + (Complex) addition of complex numbers
- - (Complex) subtraction of complex numbers
- * (Complex) multiplication of complex numbers
- / (Complex) division of complex numbers
- Sqr (Complex) square of a complex number
- Sqrt (Complex) the square root of a complex number
- Power (Complex) raise a complex number to the power of a second
- Cunjugate (Complex) negate the imaginary part of a complex number
- Abs (Complex) the absolute value of a complex number, the length
- Arg (Complex) the argument of a complex number, the angle to the real axis
- Exp (Complex) returns e raised to the power of the input
- Ln (Complex) complex natural logarithm, returns the exponent of e to reach the input
- Function (Complex) all complex trigonometric and hyperbolic functions
- Function (Complex Inverse) all complex inverse trigonometric and hyperbolic functions
- Function (Complex Special) special complex functions, Sinc, Gamma, Bessel I0 and Bessel J0, note: if you use only the real input of a complex node, the result is also real (ecxept for special cases of Sqrt, Ln and Power) go to Wikipedia Complex Number to learn more
- MainLoop (VVVV) deleted IncrementMode pin, added TimeMode enumeration pin with: Raw (old mode), Filtered (default) and Increment
- Gregorian (Astronomy) added Milliseconds output pin
- CreateNode (VVVV), DeleteNode (VVVV): added 'Query Save' pin to only optionally ask for saving when deleting/removing a changed patch
- Effect(Ex9.Effect): EnableSliceWise removed; Enable spreadable
- Optimize(Ex9.Geometry Mesh) now works properly
- Fog (EX9.Renderstate) now works properly
- Switch (Value Output), Switch (String Output) fixed
- Renderers: removed AutoSizeBackbufferPin: a value of 0 now causes autosizing of width and height individually
- Renderers: added Outputs: ActualBackBufferWidth/Height, IsFullscreen
- Renderers: changed Pin: FullscreenOnClient to ordinary fullscreen switch pin (finally)
- TypoSpread: added Spacing pin (1=em). Fixed recalculation bugs. Fixed bug with FillSquare update pin.
- DynamicTexture (EX9.Texture Color), DynamicTexture (EX9.Texture Value) now work with all texture formats and types
- Info (EX9.Texture): is now spreadable and added Input: Level and Outputs: Depth, Type
- Pipet (EX9.Texture) is now spreadable and deals with almost all texture formats, faster
- Writer (EX9.Texture) is now spreadable
- ScreenShot (VVVV) renamed to ScreenShot (EX9.Texture) and fixed some minor bugs
- 4x4to3x3 is not necessary anymore.
released on 30 04 05
- this is only a maintainance release. since we didn't finish the next real version in time we released an old version with just the timeout set to a new date. we are now optimistic with: 01 05 08
- Renderer (DX9): now starts with depthbuffer in fullscreen and can spread the view-pin!
- VideoTexture (EX9.Texture VMR9): the one to chose from now on
released on 24 11 04
- c++/delphi developers: write your own freeframe plugins? even with opencv features!
- Alt+e now removes no longer existing externals
- legacy modules no longer show up in nodelists
- screenshot of the day will also generate a thumbnail for a faster homepage
- no more restart needed when adding/removing USB/Firewire game- and videodevices
- ScreenShot (Textures9) guess what!
- LocalInfo (Windows) for now only outputs system language
- Variance (Spectral) for statistics
- HarmonicMean (Spectral) for statistics
- RootMeanSquare (Spectral) for statistics
- Indices (Spectral) illustrates how spectral nodes work with their slices
- Trautner (FreeFrame DShow9) retrieves movement in specified areas of the image
- Contour (FreeFrame DShow9) reads contours out of images
- Port (Devices) access hardware ports (read/write). to use this node you must download the "io.dll" and place it in your /bin or system32 directory. use with caution, can do anything to your hardware, including instant blue screens, hard disc corruption etc. we used it to access the printer port.
- GameController (Devices JoyWarrior) for plug and play access to the JoyWarrior24A8-8 module
- MidiOut (DShow9) renders a midi stream to the specified device
- Mesh (Ex9.Geometry Join) creates a mesh dynamically receiving a vertexbuffer and an indexbuffer
- VertexBuffer (Ex9.Geometry Join) takes position, specular + diffuse color, texturecoordinates etc. and creates a vertexbuffer out of it; to be used in conjunction with Mesh (Ex9.Geometry Join)
- VertexBuffer (Ex9.Geometry Split) outputs the data in a vertex buffer; to be used in conjunction with GetVertexBuffer(Ex9.Geometry Mesh)
- GetVertexBuffer (Ex9.Geometry Mesh) returns the vertexbuffer of a mesh
- GetIndexBuffer (Ex9.Geometry Mesh) returns the indexbuffer of a mesh
- CreateNode (VVVV) creates and replaces nodes by given id and parentpatch
- DeleteNode (VVVV) deletes nodes by given id and parentpatch
- Text (EX9.Geometry) creates a mesh containing 3D-Text. don't use this for dynamic text, cause it's quite expensive''
- FreeFramePlugins can be disabled (alternative to non possible switching)
- FileStream (DShow9) now plays Quicktime and RealMedia files if you have installed quicktime & real alternative
- FileStream (DShow9) got additional Midi Output
- Window (Windows) reactivated Alpha Pin
- Self (VVVV) addidtionally outputs patch caption
- HWND, SendMessage, ShowWindow, Window now all work with numeric window handles
- AVIParser (File) fixed posterframe-time bug
- GeometricMean (Spectral) bugs fixed
- bugs concerning all Spectral Nodes fixed (play with Indices (Spectral); try to use several bins..)
- Pipet (EX9.Texture) now reports correct alpha
- MidiShortOutput (Devices): fixed bug with multiple instances
- Length (String), Change (String), Change (Value): got a fix with empty sets
released on 20 10 04
- NEW HOMEPAGE!! you're invited to change our wiki, post your patches and help us on illustrating what vvvv is about
- Screenshot of the Moment: press Ctrl-3 to post your current vvvvindow ontop of the wiki. this works with any vvvv-window. (So make sure to have the renderer selected when you want to show us your results)
- Open Dynamics Engine (ODE) added in a first experimental version
- Attractor (Value) + build attractors in n-dimensional rooms. this node is a generalization of the other more special Attractor Nodes
- HWND (Windows) node which will return a spread containing all handles of windows with a given name
- ShowWindow (Windows) node which allows to show, hide, minimize, normalize and maximize windows and bring them to the front.
- SendMessage (Windows) experimental, untested and dangerous node to send any message to any window in the system.
- Copier (File Async) will do asynchrounuous file copies. uses one thread which will copy all files after another. Progress out will go from 0 to 1, jumping back to zero if copy is done. Note that classic copier has a spreaded DoCopy pin, the async version has a single DoCopy pin.
- AVIParser spits out textures and some more info for a spread of avi-files. rather slow but quite handy.
- Bell (Devices TAPI) potentially rings the bell on any telephone in the world. Named after Alexander Graham Bell. Note that this node will only ring the bell it will neither talk to the other party or transmit data. the only additional feature is detection of liftoff at the other side. the connection pin will return the status. note that to detect connection status the node needs an voice-capable modem. you may be able to configure your "AVM ISDN Custom Config" virtual modem by setting the init-string to "ATS31=4" this will switch it to voice mode. other modems are not tested. warning: this node may dial arbitrary numbers with your modem.
- DMX (Artnet) new nodes allow the easy sending and receiving of DMX data over UDP via the Artnet protocol. So vvvv can communicate bidirectionally with professional lighting consoles and use Artnet Nodes as DMX inlets and outlets, all over standard ethernet cabling. note the subnet and universe pins in the inspector. the text entered as descriptive name in your node will be shown in your lighting desk. the node will fake a sender ip adress. while a hack, this allows the multiple independent receivers on the same physical ip adress shown in different lines in the lighting desk. see http://www.artisticlicence.com/dwnart.htm for details of the Artnet protocol
- SysLog (VVVV) Node for remote debugging the node will broadcast all log messages in the RFC3164 Syslog format ( see http://www.faqs.org/rfcs/rfc3164.html ) Just create the node and set the threshold accordingly. so anybody in the same subnet can pick the log info up and parse/store/analyze them at will. this may be helpful in fullscreen boygroup setups to check the status of the clients. as the syslog format is an open standard, there are many sophisticated syslog receivers readily available ( see for example http://www.kiwisyslog.com/software_downloads.htm )
- BoundingBox (EX9.Geometry Mesh) returns axis aligned bounding boxes for the several subsets within a mesh
- Grid (EX9.Geometry) creates a grid - mesh with given resolution + color, texture coordinates included
- Info (EX9.Texture) returns info about texture: width, height, number of levels included, format
- HSV (Color Split), HSV (Color Join) representing the Hue Saturation Value Color Model added have a look at girlpower\color no transform.v4p
- ShellExecute (Windows) now bugfixed in asynchronuous nonwindowed mode.
- Queue (Spreads) up to 3 times faster.
- RingBuffer (Spreads) spreadable.
- Complement (Color) doesn't influence alpha
- + (Color) outputs alpha values: alpha1 + alpha2
- Sort (Spreads) sorts at dimensions faster
- Substitute (String)
- InsertSlice (Spreads)
- + (String): had an issue with changing pincount
- + (String Spectral): (now has a Bin Size instead of a Bin Count pin)
- Complement (Color): no longer complements alpha
- Radix (Value): had an issue..
- comments have correct size now
- SliceInspektor does not collapse so fast
- IOBoxes show special character for empty sets
- IOBox (Node) shows descriptive name
- IOBox (String) accepts dropped files on individual slices
- IOBox (Value) accepts non-subtype-conform values via keyboard
- subpatches have an ugly icon if they are saved with their absolute path
- no more dead ends when deleting a node while making a connection
- when saving a patch vvvv tries to save all subpatches, effects, freeframes...with a relative name
- Dialogs got accelerator keys
- SaveDialog adapts its size to the length of a filename and has a better feeling
- VVVV now starts without administrator rights
- Help files are now searched for in the corresponding folder
Note that you have to use the exact corresponding folder/subfolder structure.
And that you do NOT move the files anymore because of relative paths in the helpfiles. Note that you strictly have to admitt the folder structures of downloaded modules
\help\modules\enos\Within (Value) help.v4p
- in all cases when a pin expects positive integers in the valid range [0..aPositiveNumber[ then feeding in a negative value is interpreted as counting from backwards (-1 is wrapped around and means aPositiveNumber-1) examples of affected nodes: GetSlice.Index, SetSlice.Index (..), MidiController.Channel, RetroColor.Index (..), FlashRenderer.StartFrame (StopFrame defaults to last frame = -1)
- rewrite of lowlevel boygroupstuff. now with enhanced smoothness.
- Color Inspector is working with HSV Color mode from now on (use the Ctrl Modifier to increase Saturation)
- HSL: HSB (Join, Split, Transform) renamed into HSL(Join, Split, Transform). Brightness renamed into Lightness.
- AttractorSpread (Spreads) now has more meaningfull pins
- Resample (Spreads) BinSize added
released on 10 10 04
special release fixing the "rüsselsheimer bug"
no time for further changelogging
released on 13 06 04
- if you experience problems opening patches saved with a version prior to beta7.4 you may want to read the following:
- LEGACY MODULES - we renamed some nodes and pins and removed some nodes. nodes we removed have been replaced by a subpatch (placed in: \modules\legacy) that does the same thing as (+/-) the original node. those subpatches will be automatically inserted instead of the missing node.
- RELATIVE PATH vs. MODULE - a problem may occur when your patches contain nodes with a relative filename that have the same name as one of your modules. until beta6.8 the rule was: if a patch is referenced relatively and cannot be found vvvv looked recursively in the /modules directory. there was no difference between a relative subpatch and a module. only relative patches have been prefered by vvvv. beta7.4 now distinguishes between modules and relative patches by marking them with a joker (mouseover a module to see the joker). same applies to freeframe and effects files.
- advantage: you can now open effects, freeframe and patch files relative, absolute (drag on patch or 'open in patch' via menu) or via their 'joker'-directories: vvvv/effects, vvvv/freeframe, vvvv/modules and be sure to get the same patch opened the next time.
- disadvantage: when loading an old patch its not obvious if a relative patchname is meant to be a module or not. so (only for old patches) vvvv looks for a relative patchname in the /modules directory. if its not there its treated like an ordinary relative subpatch. note: if you happen to have a relative patch with the same name as a module the module will be preferred when loading with new versions. so for this conversion-step modules are preferred as opposed to beta6.8 where the relative patch was preferred.
- EXCEPTIONS - some things can not be converted automatically:
- some nodes did an "internal TogEdge" in former versions: e.g. Toggle (Animation) only recognized the upedge of a signal and toggled once. now the behaviour is: as long as the Input is 1 the node toggles. now you can toggle in two frames after each other, which wasn't possible before (open ToggleAutomata.v4p in the girlpower to see what's possible now with a simple toggle). Even nodes which do performance critical tasks like Dir (File) now behave like that. as long the DoRescan pin is set to 1 the directory will be rescanned each frame. to prevent such behaviour use TogEdge (Animation).
- TSFilterMode andTSAddressMode are nowFilter andAddress. while this naming conversion will be done automatically you will have to reconnect their outputs. but now no longer to a texture, but directly to the renderobject (e.g Quad) showing the texture.
- same goes for texture transformations. they are no longer attached to the texture-node but directly to the renderobject, effect resp.
- if you feel like the automatic conversions don't work for you or you have other problems loading your old patches don't hesitate to bug us.
- there is no more setup.exe - use uninstall to get rid of installed components
- new debug mode: select nodes and press CTRL-SHIFT-ALT-F9 or just press CTRL-F9 to debug/profile your entire system. see which subpatches take most of your time
- bangs should work better now. even on pins. just one click
- shortcuts for takeing screenshots have changed. see mainmenu.
- VideoInput should now work with analog input on graphiccards (like ati allinwonder)
- if Global Visual Range of a render is false it renders all renderobjects lying in the same patch or in one of its subpatches (the latter is new)
- redundant renderstates aren't passed to directx anymore
- the procedure of converting older patches is more intelligent (should work right more often)
- AlphTest (EX9.RenderState) - enable per pixel alpha testing
- B-Spline (Value) - retrieves a point on a B-spline curve
- Clamp (3d) - Clamps points at an axis aligned box.
- Delay (Animation) - Delays incoming values for a certain time
- SwapDim (Spreads) - swaps rows with columns of a 2dimensional matrix of bins. ordering was Bin, Row, Column. ordering will be Bin, Column, Row
- ZWriteEnable (EX9.RenderState) - enable/disable writing to the depth buffer
- TexCoords (EX9.TextureState) - For setting advanced texture coordinate creation / transforms (use with cube maps, sphere maps, for projecting textures)
- Transpose (Transform) - get the transpose of the matrix
- * (Transform) - multiply two matrix transformations
- Shear (Transform) - generate a shear transformation.
- GetMatrix, SetMatrix (Transform) - get or set the 4*4 entries of a matrix by hand
- * (4d), * (4d Vector) - multiply (x, y, z, w) with 4x4matrix
- * (3d), * (3d Vector) - multiply (x, y, z, 1) with 4x4matrix (project back to homogenous space)
- 4x4To3x3 (Traqnsform) - Convert a 4x4 Matrix to 3x3 Matrix. Press F1 on the node.
- HSB (Transform) - create HSB matrix to perform HSB color transform
- RGB (Transform) - create RGB matrix to perform RGB color transform
- LuminanceMatrix (Transform) - multiply luminance matrix with color to convert to greyscale
- InsertSlice - Insert spreads of a given size into another spread at a specified position
- Writer(EX9.Textures) - writes a textur to a file. supported formats: .bmp, .jpg, .png, .dds, .dib, .hdr, .pfm
- DrawFixed : fixed function rendering of a mesh
- Ex9.Geometry Box: creates Box-Mesh
- Ex9.Geometry:Sphere: creates Sphere-Mesh
- Ex9.Geometry:Cylinder: creates Cylinder-Mesh
- Ex9.Geometry:Teapot: creates Mesh representing the famous Teapot
- Optimize (Mesh) : controls the reorderig of mesh faces and vertices to optimize performance
- Count (Mesh): outputs number of subsets, faces and vertices of a mesh
- VertexDeclaration (Mesh): outputs vertexdeclaration of a mesh's vertexbuffer
- XFile (Load): loads a XFile and returns a mesh + texture-filename(s), if included in the file
- DynamicTexture (Color): creates texture dynamically writing input color-spread into the texture
- DynamicTexture (Value): creates texture dynamically and writes input values into it
- DynamicTexture (String): creates a texture from a binary-string containing the data of a file of type: .bmp, .dds, .dib, .jpg, .png or .tga
- Dump (DShow9): get the mediasample as string
- Cheater (DShow9): insert before VideoTexture to deinterlace live analog video
- DScaler (DShow9): see:www.dscaler.org
- Normalize (3d)
- FileTexture: has a lot more options now and additionally is capable of loading Cube/Volume Maps
- Reader (File) only reads on DoRead now. no longer on filenamechanged.
- I (Spreads) now goes: from .. to-1
- Queue (Spreads) input spreadable
- Ord2Enum - now works generic with every enum
- Queue (EX9.Textures) improved
- VideoInput - new pins to adjust input size and framerate more precise
- IOBoxes got Rows, Columns and Pages as Inputs (see inspektor)
- Self (VVVV) got new Outputs listing the names of the patchs pins
- Filter (EX9.RenderState) got input to adjust the sharpness of the texture by selecting another MipMap. (MipMap LOD Bias)
- Cartesian, Polar (3d) - rotation angles made compatible with left handed directx coordinate system. if you look towards an axes then the rotation goes clockwise. pitch, yaw 0 is defined as (0,0,-1)
- filters like Damper, LinearFilter, Newton (..) aren't starting from 0 in new slices but from the first value they receive
- CAR, CDR in some cases didn't handle their output slicecounts the right way
- undefined colors (not in the colorroom rgb=000..111) are clamped
- ApplyTransform (Transform Direction).v4p for transforming not a point at a matrix transformation but a direction. (note that a direction is not influenced by a translation)
- Arrow (EX9) - draw an arrow to disply a direction
- SymTex (Transform).v4p - for being able to transform textures on meshes the vvvv way (symmetric). zooming by scaling is always towards the center of the texture, not towards the topleft of the image. (see 4x4To3x3 (Transform) help.v4p)
- Camera (Transform Softimage) - now more options and more informations
- Axis (DX9), AxisAndGrid (DX9) - arrows show in the positive x,y,z directions
- many useful help and demo patches added. sort after filedates.
release 12 02 04
- fixed: bug with VVVV crashing on CPUs with more than 3GHz and hyperthreading enabled.
- fixed: bug with VVVV crashing on systems with strangely configured game devices.
- fixed: JohnsonSequencer doesnt return -1 anymore when no keyframe was stored in the sequencer. now leaves the old value instead
- fixed: pins of subpatches get sorted right away when moving inlets and outlets (ionodes of the subpatch)
- new: pins can be removed from a node by clicking on the pinbutton in the inspector
- new: deinterlacing of video is supposed to work for dv-interlaced video (may need to reconnect to VideoTexture or VideoOut after changing DeinterlaceMode Pin)
- added: S (Node), R (Node) to establish abstract node connections
- added: Map (Value, Interval): Maps the value in the given range to a proportional value in the given output range
- added: Interval (Spreads): returns the index of the input interval in which the input lies
- added: Differential (Spreads): calculates the differences between one slice and the next. The output spread has one slice less than the input
- added: Integral (Spreads): Sums up a spread of values and output the partial sums. The output spread has one slice more than the input
- fixed: bug in Delaunay (2d Triangle) when turning rebuild off
released on 24 12 03
- added: Undo (VVVV): tweak the undo behaviour. (try to increase the timespan dramatically so that the whole patch session is treated like one action. experiment with "Undo Speed", "Redo Speed")
- added: CAR (String)
- added: VVVV (VVVV): Show/Hide VVVV in the Taskbar and the Tray and give it a title
- fixed: (again) VideoTexture (Textures9 DShow9) did not work with certain graphic card / driver versions
- fixed: VideoIn (DShow9): now works even with devices that don't offer a list of framerates to choose from
- fixed: vvvv used to crash on startup if started with /r and following a relative path
- fixed: FFT (DShow9): will now run in fullscreen
- improved: FileReader, FileWriter: if "Do Read"/"Do Write" is 1 the file is read/written every frame. use TogEdge to prevent this
- improved: GridSplit, GridPick: coordinate system updated to (-0.5/-0.5)..(0.5/0.5) (see help files)
- improved: GridSplit, GridPick:cells are ordered left->right, up->down
- improved: GridSplit, GridPick:point outside grid (GridPick) -> cell index = -1 -> resulting cell: (0,0,0,0) (GridSplit)
- improved: Mouse (System Global): buttons retrieve values: 0=no click, 1=click, 2=double click
- improved: Add (String): faster. different intersperse for every outputslice only
- improved: Keyboard (System Global): send key strokes to the system with 'Keyboard Input'
- improved: Tokenizer (String): was too slow; got UpdatePin for explicit updates
- improved: Windows (Windows): coordinate system updated to (-0.5/-0.5)..(0.5/0.5)
- improved: VideoIn (DShow9): got new pins for 'Analog Video Standard' and 'Analog Video Inputs' to support analog video capturecards
- improved: VideoOut (DShow9): now has DeinterlaceOptions (which actually don't seem to work yet)
released on 10 11 03
- fixed: VideoTexture (Textures9 DShow9) did not work with certain graphic card / driver versions
released on 08 11 03
- new interpretation of positive binsizes: if you have a binsize of 3 and 12 slices at the inputpin, you get 4 bins. you don't have to explicitely put in a binspread (3,3,3,3) anymore.
- added: Pipet (Textures9)
- added: Queue (Textures9)
- added: GetSlice (Textures9)
- added: OSCDecoder (Network)
- added: Attractor (Value Self)
- improved: OSCEncoder (Network)
- improved: Cursor (System)
- fixed: bug in spectral nodes
- fixed: problem with MidiInputDeviceNodes
- fixed: problem with s/r nodes being restricted in movement
- fixed: problem with inspektor not correctly updating changes of pinnames
- fixed: BMC meM-PIO (Devices) reactivated
- fixed: bug in Polar (3d) for input vector is (0,0,0)
- fixed: bug in Attractor (2d)
- fixed: bug in Automata (Animation)
- added: quaternion normalize
- fixed: CDR, CAR output slicecount when input has only one slice
- fixed: some bug in switch (string input)
- fixed: sift matches any
- improved: more color modes in triangle
released on 01 09 03
- fixed: boygrouping of subpatches
- fixed: count (value/string) can deal with empty spreads
- fixed: some arbitrary point bugs
- fixed: send/receive short circuits aren't possible anymore, spreads can be delivered, transfer speed increased
released on 29 08 03
- improved boygrouping pervvormance and rendering speed - if boygrouping nodes need each other they are boygrouped together
- converted to directX9 due to better performance of video and gdi textures. converted categories DX8 to DX9, Textures to Textures9 and DShow8 to DShow9
- when loading patches saved with older versions than beta5 conversion will be done according to difff.xml
- undo should work pretty well. just note that some few operations like resetting/boygrouping the node are internally split into two actions so that you have to undo twice to get your node back
- improved speed of IOBoxes. they aren't evaluated if hidden and in input mode
- added: ShortCut to 'Rescan for Modules' (Ctrl+M)
- changed: in the autocomplete nodelist start with a '.' to get patches from the current patchs directory
- new: shortrightclick a valuepin to enter a constant
- fixed: alt+rightclick for string- and enumpins
- new: AND (Boolean Spectral), AND (Boolean), NOT (Boolean), OR (Boolean Spectral), OR (Boolean), XOR(Boolean)
- new: * (Color), InputMorph (Color), S+H (Color), Select (Color)
- new: CPULoad (Debug), Memory (DX9)
- new: Dial (Devices Custom), MidiShortOutput (Devices)
- new: VideoIn (DShow9), VideoOut (DShow9), VideoTexture (Textures9 DShow)
- new: RSFog (DX9), Sphere (DX9)
- new: Renderer (Flash) with output to GDITexture and input/output of flash-variables
- new: IP (Network), Ping (Network)
- new: Switch (Node Input)
- new: GetSlice (Node) (only for transformations yet)
- new: * (Quaternion), AxisAngle (Quaternion Get Vector), AxisAngle (Quaternion Get), AxisAngle (Quaternion Set Vector), AxisAngle (Quaternion Set), Euler (Quaternion Set Vector), Euler (Quaternion Set), Join (Quaternion), Rotate (Quaternion Point Vector), Rotate (Quaternion Point), Rotate (Quaternion Vector), Slerp (Quaternion), Split (Quaternion)
- new: CountIndices (Spreads)
- new: * (String), Ord (String), Select (String), Sift (String), Substitute (String), Tokenizer (String)
- new: ApplyTransform (Vector), ArbitraryPoint (Vector), Rotate (Quaternion), Rotate (QuaternionVector)
- new: Self (VVVV) reports some info about the patch it is placed in
- new: Beep (Windows), MessageBeep (Windows)
- added: Text (GDI) got pins for writing bold, italic and antialiased text
- added: Outlet FormerIndex to Sort (Spreads)
- added: reworked FileStream (DShow9) now has VideoOutput and many more
- added: Cursor (System) has pins to set mouse coordinates and fire clicks
- added: GDI Output to Renderer (HTTP) and Renderer (TTY)
- changed: IOBox (String) accepts dropped files
- changed: spreading a Triangle (dx9 Indexed) spreads the whole geometry
- changed: IOBox (Node) has binsize pin to group slices (only for transformations yet)
- changed: spectral nodes better (bin size instead of bin count; -1 means operate on whole spread. spreadable)
- changed: gditextur faster
- changed: DX9 nodes have texture projection mode (check out with a Sphere (DX9))
- fixed: Mainloop is set back to defaults, when the last instance is deleted
- fixed: I (Spreads): min, max can be negative, some unlikely bugs fixed
- fixed: gdi render in background
- fixed: GDITexture, DX9Texture, VideoTexture spreadable via texture transformation
- fixed: performance of filetexture recovered, first-slice-is-white bug removed
- fixed: bug in Queue, RingBuffer, Levin
- fixed: ArbitraryPoint 10000 slices bug
- Wait (Animation).v4p, KeysUpDown (Animation).v4p, Delay (Animation).v4p
- Within (2d).v4p
- Damper (Color).v4p, Resample (Color).v4p, SetSlice (Color).v4p, Shift (Color).v4p, Tint (Color Spreads)
- Normalize (3d).v4p
- PerfMeter (Degug).v4p
- Line (DX9).v4p, Torus (DX9).v4p, LineAlongSpread (DX9 3D).v4p
- ReplaceEmpty (String).v4p, Reverse (String Spreads).v4p
- MidiControllerOut (Devices).v4p, TouchFrame (Devices Interact442a).v4p, DMX4all (Devices DMX).v4p
- Bit (Value).v4p, ReplaceEmpty (Value).v4p, Within(Value).v4p
released 30 04 03
- new: Delaunay (2d Triangle)
- new: Triangle (DX8 Indexed)
- new: Pot Node (similar to Tint but for values)
- new: Stopwatch (Animation). see module: Metronom (Animation)
- new: ShellExecute (Windows)
- new: ClientSocket (Network) and ServerSocket (Network) may be used to implement various network protocols in subpatches
- new: OSCEncoder (Network) encodes a string according to the OpenSoundControl protocol to be sent over the network (supports only TypeTags c, i and s for now. the decoder is still to come)
- changed: Tracker (Devcies AscensionFlockOfBirds) outputs readable rotation values
- improved: Tracker (Devcies AscensionFlockOfBirds) coordinate system changed, is now left handed directx like (Y goes up)
- improved: Heading, Cartesian, Polar.. should be more compatible now
- fixed: Resample (Spreads): borderright bug, linear interpolation last slice bug
- improved: Resample (Spreads): cylcic modes added
- improved: Resample (Spreads): resample has much more interpolation modes now (hermite, cosine, ..)
- Filters (LinearFilter, DeNiro, Newton, Oscillator, Damper): more stable; new: "Acceleration Out" added.
- added: outputs for AccessedDate and CreatedDate to ModificationDate (Windows)
- fixed (again): Perspective, Ortho..: Near Plane / Far Plane
- new: Vertigo (Transform) allows to keep a plane at certain distance in focus means changing the field of view (FOV) will dolly the camera position accordingly so that objects at a certain distance keep their size.
- new: MovingTriad (Transform) which allows to align an animated object on its path. see girlpowerpatch RollerCoaster.
- new: vector pins introduced; use Vector (Join), Vector (Split) to build vectors.
- several nodes are now available in Version "Vector"
- new: LookAt (Transform) see girlpowerpatch RollerCoasterLookAt
- new: Parallelepiped (Transform) see girlpowerpatch RollerCoaster
- new: vector versions of several nodes
- Attention: transform 2d, transform 3d work with center other than before; see: Rectangle (DX8 Regpoint)
- new: Rectangle (DX8 Regpoint)
- new: Metronom (Animation)
- new: Swap (Spreads)
- new: TestCamera (VVVV)
- new: modules NetSend (Network Value), NetReceive (Network Value), NetSend (Network String), NetReceive (Network String)
- new: rightclick a subpatch or renderer to toggle between componentmodes Window and Hidden
- new: all patches that have a category in brackets (=modules) that are in vvvv_33betaX/modules (or any subdirectory) are now included in nodelists
- changed: Camera (Transform Softimage) easier
- fixed: Flashing primitives bug when changing priority
- improved: links to IOBox (Node) more stable
- improved: patchclasses are now saved via their absolut path. all open patches with the same path are now really the same
- improved: the mousewheel now works in pulldowns.
- improved: Matrix Viewport Transformation added. (try to view GDI with camera) Viewport ranges (-1,-1)..(1,1) from now on
released on 29 02 03
- added hello world tutorial
- added 3d tutorial
- added Index in Manual
- added new demo patches in girlpower folder
- added new subpatch modules in modules folder
- improved lots of changes and clarifications in manual
- added: DX8Texture which allows to use renderings of a DX8Renderer as a texture (compare with GDITexture). This will allow for all sorts of feedback effects
- added: "Depth Buffer"-Pin to DX8Renderer, which allows to toggle DepthBuffering.
- added: "Invert Depth"-Pin to DX8Renderer; if enabled results in showing most hidden background particles on top of foreground
- added: "Clear Depth Buffer" which allows to toggle clearing depthbuffer independent from clear colorbuffer ("Clear")
- fixed: directx nodes should work one much more graphics cards now. (works also on a 300€ computer with onboard graphic card S3; also tested Matrox G40/G450; some GeForce)
- improved: DX8Texture allows to create alpha textures; Pin: "Alpha"
- improved: handling of rope and segment should be easier now
- improved: TSAdressMode introduces new pins for explicitly cycling textures (hard to explain) look at patch "pitch on pole" and toggle "Cycle U" in node "TSAdressMode"; "Border Color" Pin introduced for address mode "Border"
- improved: one frame flickering removed which appeared when changing resolution of grid.
- fixed & improved: Invert; now you have to connect to "Source"-Pin what you want to invert
- fixed: spreading a texture/renderstate will now spread the particle
- fixed: Perspective (Transform): Near Plane / Far Plane
ATTENTION: if you have a Renderer (DX8) with a viewport transformation - due to that modification you now have to explicitly add an orthogonal camera (Ortho (Transform)) to your viewport which lets you specify the visible Z-Range (Near Plane / Far Plane)
- added: Perspective (Transform, OffCenter), Ortho (Transform), Ortho (Transform, OffCenter) which allow to define new cameras.
added: UniformScale (Transform)
- Renderer (HTML) uses Internet Explorer to draw HTML text input
- IO (Devices, Wiesemann+Theis Digital EA) allows use of interface (see http://www.wut.de)
- Scroll (Spreads) allows Scrolling through numeric spreads
- Stallone (Color) like Stallone for Values
- Stallone (String) like Stallone for Values
- SystemFolders (File) will return all kinds of important folders in your system
- SubDir (File) will return all subdirectories in a directory
- LogFile (VVVV) allows a logfile to be created, which will log all errors.
- AsValue (String) node to convert strings to numerical values
- Boost (VVVV) will set your applications priority higher. will reduce jitter while rendering
- Power (Value) basic math node for raising x to the y´th power.
- GetPatchMode (VVVV)/SetPatchMode (VVVV) for getting/setting the appearance (dimensions and component mode) of the surrounding patch
- SetGammaRamp (Windows), GetGammaRamp (Windows) allows you to get/set the gamma ramp of your display
- TouchScreen (Devices, ELOTouch) Encapsulates a Touchscreen by ELO connected to the serial port (http://www.elotouch.com)
- IRC (Network) removed several bugs, no more automatic user names
- BezierLoop (GDI) will calculate its control points correct
- Stallone (Spreads) sort modes now working
- Renderer (TTY) will now use Background color has new pin Foreground color
- Dir (File) is now spreadable and has option for listing also Hidden and System files.
- Expr (Value) is not case sensitive anymore
- Counter (Animation) has new pin for default value at startup or after reset
- TypoSpread values now uses correct bounding box, introduced Height Pin (this may break some patches). added mode for proportional scaling of text. fixed bug with long input texts
- additional modes in RetroColors
- "save as" button in save options dialog
- /allowmultiple command line option that allows starting multiple instances of vvvv
- screenshots made via Ctrl F9/F10 now include the cursor
- quitOptions dialog will prompt you when closing the last window
- saveAsReloadOptions dialog will prompt you when saveAsing to a different path
- alt+rightclicking a node resets all its values
- alt+leftclick a selected node to duplicate the current selection
- when over a node with the mouse for half a second the infotip shows the exact name of the node
- autocompletenodelist now includes all patches that are in the current patchs directory
- right mousebutton changevaluefeeling is more sensible
- ctrl+leftclick in patch no longer locks the patch (use CTRL+E)
- a locked patch is indicated by a # in the caption
- resetting a pin with ALT+rightclick also resets its slicecount
- subpatchnodes now show their filename without path and extension
- save options dialog stays in front of other windows
- doubleclicking a patch in explorer doesn't close other open patches
- doubleclicking a patch in explorer doesn't open a second empty patch
- setup will now recognize DirectX 9
- locked patches open in correct dimensions
- minimizing vvvv with a click on its taskbaricon now works
- you may now use relative paths (relative to the patch they are in) for textures and subpatches
- infotip is now constrained to the monitor where the mouse is
- main menu is now constrained to monitor where the mouse is
- no more occasional ugly white handles on links and nodes
- no more occasional crashes when switching componentmodes of patches (make sure to run setup.exe and uncheck/check AddFlow-Button)
- some of Hrn.Inspektors bitchy behavior
- no more topmost tooltips if vvvv is inactive
released on 31 01 03
- added: a whole bunch of help files.
- changed: default maximum framerate set to 120 to save cpu in trivial patches. default maximum framerate when running in background is 30
- Alt+F1 on a selected node invokes online help
- docking - Alt+Drag in Windows to dock them to other windows
- ctrl-tab cycles through a list of all currently visible windows
- 'set as root' - will no longer overwrite 'Args.txt' but add to it
- set as root is now done immediatly, and not only the next time you open vvvv
- save, save all, delete/close patch behaviour more secure & logical
- inspektor will no longer write values of previously seleceted nodes to a newly selected node
- Audio nodes will not crash anymore on a system without any audio input
- AudioInput (DirectShow8)
- RMS (DirectShow8) - get the root mean value of an incoming audio signal
- FFT (DirectShow8) - get a spread with the frequencies of a audio signal
- ScopeSpread (DirectShow8) - get a spread with the waveform of an audio signal
- URLSource (DirectShow8) (experimental - havent found an url with a file to open) - the node just encapsulates the DirectShow node with the same name)
- TSHR200 RFID GIS Tag reader support
- Length (String)
- SetSlice (String)
- Split (String)
- Shift (String)
- Cons (String)
- QueueSpread (String)
- RingBuffer (String)
- S+H (String)
- EQ (String)
- ClientID, ClientSetup, ServerSetup (VVVV)
- MainLoop (VVVV) - allows to set maximum frame rate in foreground/background mode.
- MidiController (Devices, Relative) for use with devices like the Native Instruments 4control or DOEPFERs pocket dial
- Blend (Color)
- Pad (String) will now clip input string if input is larger then specified size
- renamed output of Cons (Spreads) node to "output" (was "remainder" which didnt make sense)
- added proxy + proxyport to HTTP (Get)
- added OnSuccess bang output to HTTP (Get)
- added Hex mode to Byte (String)
- S+H will sample the input value once during initialisation; another bug removed
- FormatValue (String) has Leading Zeroes pin
- TMRegExpNode will not throw an assertion if matchcount is inconsistent
- ioboxes got a new pin SliceCount Mode.
- directshow nodes will be much quieter in the log
- font for ttyrenderer is now "Lucida Console"
- changing the spreadcount will change FPinIsChanged and FObserverChanged in ValuePin, ColorPin, StringPin, EnumPin
- Shortcuts for making screenshots of the active window are now: Ctrl+F10 (without border) and Ctrl+F9 (with border)
- GDI textures - connect them directly to the GDIRenderer which is the source for the texture
- FormatValue will work with arbitrary amounts
- shortcut for toggling updateview (Alt+U) now works
- cursor might have been invisible when returning to vvvv from another program
- tooltips will now for sure be hidden when switching to locked mode
- ioboxes will now hide in locked mode if set to "hidden when locked"
- 'show root' will show a loaded root with its saved dimensions
- boygrouping for network setups will now work
- directshow nodes will now automatically re-initialize when connection is changed
- crash with AudioRecordSelector
- mouse (system global) will now allow multible instances on win98 machines.
- iobox (color) - now works in all modes
- improved stability of video texture when selecting between various texture sizes
- netsend/receive basically working but mostly still buggy. sory.
- String nodes are now much faster with constant inputs
- improved Renderer (DX8): can now switch to various full screen modes, in windowed mode now it's possible to set the backbuffer size manually, multiple renderers work independently from each other
released on 24 12 02