This release focuses on improving the functionality and usability of the Vuo Editor. This is an alpha release. Don’t even think about using it in production.

Changes

Vuo Editor

  • Redesigned nodes and cables. [#4041]
    • Added a cartoon highlight on the cable’s upper side (when cable goes left-to-right), to make it more apparent when a cable goes right-to-left (in which case the cartoon highlight is on the lower side). [#4439]
    • Removed cable plugs. [#4439]
    • Removed cable chevrons. [#4439]
    • Reduced curvature of very short cables. [#4634]
    • Modified node and port edges to line up on integer pixels, improving sharpness at 1:1 zoom level. [#3886]
    • Modified node and port rendering to use constructive solid geometry, eliminating subpixel overdraw artifacts. [#4437]
    • Added visual event walls to trigger ports. [#4804]
    • Modified event-only ports to render as triangles (instead of a circle with a chevron). [#4438]
    • Added visual event walls to input ports, indicating whether the port conducts all events, may conduct events, or never conducts events. [#2993]
    • Modified appearance of stateful nodes to show a right-to-left feedback cable along the bottom border (instead of an extra line on the top and bottom). [#4437]
    • Moved the node class name to the node’s header. [#4437]
    • Modified appearance of trigger ports to be a circle or triangle whose left half is an explosion. [#4438]
    • Modified appearance of impure nodes to show an antenna transmission wake at the bottom (instead of having a thick left or right sidebar). [#4437]
    • Straightened left-to-right cables, and improved curvature of right-to-left cables. [#4621]
    • Visually separated port data value flags and collapsed type-converter nodes from the ports they connect to. [#4438]
  • Redesigned node library. Provides node documentation tooltips and a search bar. [#3082] [#3083] [#3084] [#3088] [#3568] [#3923] [#4017] [#4519]
  • Added ability to automatically update the running composition when making changes in the editor (live coding). [#2930] [#3907]
  • Added ability to publish, rename, and unpublish input/output ports. (Either right-click on the port to publish, or select menu item Window > Show Published Ports and drag a cable to the sidebar.) [#3401] [#4698]
  • Added ability to load and save compositions with published input/output ports. [#3401]
  • Added ability to tint nodes. [#3205]
  • Added ability to edit VuoReal constant values. [#4554]
  • Added ability to rename nodes. [#2802]
  • Added ability to build the composition on a background thread, so the editor doesn’t block. [#3264]
  • Added automatic type converter insertion when dragging cables. [#3189]
  • Added a small top-left margin when opening compositions. [#4383]
  • Added highlighting of cable yank zones (the part of the cable you can drag to disconnect it from a port). [#4439]
  • Expanded area onto which cables can be dropped when connecting. [#4216] [#4708]
  • Fixed rendering of port values with trailing spaces. [#4347]
  • Fixed issue where saving a composition to an unwritable folder appeared to succeed. [#3289]
  • Fixed issue where canvas sometimes isn’t repainted correctly after deleting a node. [#3634]
  • Fixed issue where “Save Composition As…” moved the window to the background. [#3213]
  • Fixed redundant Undo steps when pasting and moving. [#3304]
  • Fixed overwriting clipboard contents when ⌥-dragging nodes. [#3303]
  • Fixed issue where collapsed type-converter nodes’ ports weren’t highlighted. [#3785]
  • Fixed issue where nodes would sometimes flicker when being dragged. [#3148]
  • Added prompt to save unsaved changes when quitting. [#3225] [#4558]
  • Improved handling of collapsed type converters. [#3402]
  • Improved rendering of nodes, ports, and cables when selected, highlighted, and hovered. [#3218]
  • Added new toolbar icons. [#3350]
  • Added a “File > Open Recent” menu. [#3256] [#4620] [#4621]
  • Added list of open compositions in the “Window” menu and Dock context menu. [#3215]
  • Modified composition launch behavior so that the composition’s window is brought to the front. [#4507]
  • Modified port data editor behavior to automatically select the existing data, so it can easily be replaced. [#4907] [#5074]
  • Upgraded from Qt 4.8.4 to Qt 5.1.0-beta1. [#3917]

Built-in Nodes and Types

  • Added new 3D graphics nodes. [#3031] [#3240] [#3241] [#3335] [#3336] [#4953]
  • Added global GL context and texture pools, to improve usability and performance. Compositions no longer need to pass around a GL context as data; instead contexts are shared process-wide. [#3283]
  • Added new gradient (Perlin and Simplex) noise nodes. [#4816]
  • Added new math, logic, type converter, and control flow nodes. [#3901] [#4044] [#4102] [#4442] [#4526] [#4593]
  • Added partially working “Get Mouse” node. [#4033]
  • Removed the “Write to Console” and “Read from Console” nodes, which are superseded by “Display Console Window”. [#3121] [#4510]
  • Renamed VuoGlTexture to the more generally understood term VuoImage. [#5047]
  • Renamed VuoString to the more generally understood term VuoText. [#4305]
  • Renamed the “Hold” nodes to “Hold Value”, and modified its ports and behavior to make it easier to use. It now has simpler rules for how input values are transmitted to output values. It only holds onto one value, not a list of recent values. [#4547]
  • Renamed the “Recur” node to “Fire Periodically”, to more clearly describe its behavior. [#4615]
  • Renamed the “Start” node to “Fire on Start”, to more clearly describe its behavior. [#4615]
  • Removed the nonfunctional audio nodes for now. [#4033]

API

  • Added ability for 3rd-party types to provide custom UI widgets for editing port values. [#3797]
  • Renamed class VuoRunner::VuoPublishedPort to VuoRunner::Port. [#4777]
  • Changed conductivity from per-node to per-port. Removed nodeAlwaysConducts node constant. [#3872]
  • Renamed Vuo*Composition and VuoCompilerBitcodeGenerator variables from graph to composition or generator. [#4780]
  • Renamed VuoCompilerGraph to VuoCompilerBitcodeGenerator. [#4780]
  • Renamed VuoRendererGraph and VuoEditorGraph to VuoRendererComposition and VuoEditorComposition. [#4780]
  • Removed the vuoAlloc function — just use malloc instead. [#3940]
  • Added a parameter to the vuoRegister function, to specify the function to be used to deallocate reference-counted memory. [#3673]
  • Added classes VuoComposition and VuoCompilerComposition, and created a base-detail pattern with VuoRendererComposition. [#4780]

Vuo Compiler

  • Added ability to build compositions as dynamic libraries. [#3907]
  • Added ability to replace a composition with an updated version while it’s running. [#3907]
  • Added error reporting for deadlocked feedback loops. [#4550] [#4636]
  • Fixed a crash when compiling certain compositions with feedback loops. [#4079]
  • Added --verbose mode for vuo-compile and vuo-link, which provides Clang and Vuo debugging information. [#4704]
  • Added system for sending node execution events from the running composition process to the editor (but the editor doesn’t display executions yet). [#2926]
  • Fixed crash when compiling node class functions with pointer-to-struct port types. [#3283]
  • Fixed issue where constant input port values were not yet available during nodeInstanceInit. [#2741]
  • Fixed temporary files left behind after the compiler ran. [#4419] [#4498]
  • Fixed a crash when running multiple instances of vuo-compile concurrently. [#5069]
  • Added automatic reference counting of node instance data. (Code to retain the new and release the old instance data is now generated after each call to the nodeInstanceEvent function. See the updated Managing Memory documentation.) [#2894] [#3673]
  • Changed VuoCompiler::addModuleSearchPath() to a private API (and removed the --module-search-path parameter from vuo-compile, vuo-link, and vuo-render), to help standardize Vuo Module folders. [#4147]

Other

  • Modified the vuo-render command to render images with a transparent background. [#4617]
  • Added option for drawing bounding rects to the ‘vuo-render’ command line app. [#4437]
  • Set up automated test rig. [#2928] [#3412]
  • Added contributors list to source code. [#3369]
  • Replaced terms ‘generator’/‘generated’ with ‘trigger’/‘fired’ (as in “a trigger port fires events”). [#4316]

Known Issues

General

  • Compositions created with Vuo 0.3 will need to be updated to use the nodes available in Vuo 0.4.
  • Only one composition can run at a time. [#3136]

Documentation

  • The Vuo Manual has not yet been updated to cover new and changed functionality. [#3281]
  • The Vuo Manual is incomplete. [#3281] [#2937] [#2577]
  • Some nodes are not well documented. [#2786]

Vuo Editor

  • When nodes or cables are changed during live coding, it takes a few seconds for each change to take effect in the running composition. [#3275]
  • If the running composition crashes, or if it is quit with the composition’s Quit menu item instead of Vuo Editor’s Stop button, Vuo Editor can’t run another composition. Vuo Editor has to be restarted. [#3092]
  • Vuo Editor sometimes crashes if you attempt to quit immediately after pressing the Stop button. [#5132]
  • When a cable is disconnected while a composition is running, the input port does not keep its most recent value. [#3294]
  • Collapsed type-converter nodes aren’t selectable. [#3783]
  • On some systems, the incorrect font is used to render node and port titles. [#5159]

Built-in Nodes and Types

  • The set of built-in nodes is incomplete. [#3630] [#4038]
  • The “Get Mouse” node’s moved output isn’t a 2D point. [#3712] [#4592]
  • The “Display Console Window” node’s window no longer scrolls to bottom when the lineToWrite input is pushed. [#4653]
  • The VuoBoolean type is not actually a boolean. It’s just an integer. [#3902]

Vuo Compiler

  • There’s hardly any error checking during the composition compiling and linking process. If compilation fails, the compiler may crash. Currently some messages may be printed on the console, so check there first if something isn’t working. [#2341]
  • Defining moduleDependencies in multiple node libraries results in duplicate symbol errors. [#4018]
  • Vuo Compiler crashes if nodeInstanceData returns a bool type. [#4016]
  • Vuo Compiler crashes if nodeInstanceData returns a struct type. (Workaround: Return a pointer to a struct.) [#3942]
  • Vuo Compiler crashes when a port has certain struct types with few members, such as a struct with two int members. (Workaround: Add some unused members.) [#4124]
  • Vuo Compiler adds unnecessary dependencies to built compositions. [#3021]
  • Vuo Compiler does not yet support multiple event-only cables connected to an input port (although Vuo Editor does). [#3578]
Version
0.4