This release adds many new nodes and other features, including:

  • Nodes for audio input/output, useful for music visualizations, sound effects, and audio playback
  • Nodes for keyboard input, useful for adding keyboard controls or text input to graphics windows
  • Nodes for iterative graphics, useful for drawing multiple 2D or 3D objects at a time
  • Improved support for UI design
    • Nodes for animation
    • Nodes for interaction with layers
    • Nodes for layers with shadows
  • Improved support for using Vuo compositions as plugins in 3rd-party applications
    • Ability to create a composition whose published ports match a protocol (Image Filter or Image Generator), providing an interface between the composition and the application
    • Reduced Vuo framework size by 25%
  • Added an “event throttling” setting to help prevent compositions from slowing down when events are firing faster than the user’s computer can process them

Changes

Here’s what we’ve done in the last 6 weeks:

New Examples

  • Align Layers to Window
  • Assemble Jigsaw Puzzle [#7747]
  • Compare Easing Curves [#7862]
  • Compare Smoothed Data [#7861]
  • Compare Smoothed Motion [#7861]
  • Display Row Of Spheres [#7622]
  • Draw Layers With Trails (Thanks to @George_Toledo for prompting this!) [#6144]
  • Is Mouse Within Layer [#7746]
  • Make Spiral [#7622]
  • Make Terrain [#7622]
  • Move Light Across Tile
  • Play Audio File
  • Play Audio Wave
  • Play Blues Organ
  • Scratch Record
  • Show Live Audio Waveform
  • Spin Shell [#7622]
  • Visualize Frequencies
  • Visualize Loudness

Built-in Nodes, Types, and Input Editors

  • Added the vuo.audio node set for audio input/output.
    • Receive Live Audio [#4726]
    • Send Live Audio
    • Play Audio File [#5000]
    • Get Audio File Info
    • List Audio Devices
    • Get Audio Input Values
    • Get Audio Output Values
    • Make Audio Input from ID
    • Make Audio Input from Name
    • Make Audio Output from ID
    • Make Audio Output from Name
    • Make Audio Wave [#7695]
    • Mix Audio Channels [#7402]
    • Calculate Loudness [#7401]
    • Split Audio by Frequency [#7399]
    • Make Image from Channels
    • Make Waveform Image [#7640]
  • Added the Convert Note Number to Frequency node. [#7721]
  • Added the vuo.keyboard node set for keyboard input.
    • Receive Keyboard Buttons [#7687]
    • Receive Keyboard Typing [#7688]
  • Added the vuo.motion node set for animation.
    • Curve [#5305]
    • Spring [#7666]
    • Smooth with Duration [#5298]
    • Smooth with Inertia [#5298]
    • Smooth with Rate [#5298]
    • Wave (moved from the vuo.math node set) [#7823]
  • Added support for user interaction with layers.
    • Added the Receive Mouse Drags on Layer node. [#7747]
    • Added the Is Point within Layer node. [#7746]
    • Added a renderedLayers output port to the Render Layers to Window and Render Layers to Image nodes. [#7745]
    • Added a name input port to the Make Layers nodes. [#7745]
  • Added the Make Layer with Shadow and Make Scaled Layer with Shadow nodes. [#6986]
  • Added the Align Layer to Window node. [#7901]
  • Added support for iteration when drawing scenes and layers.
    • Added the Copy 3D Object (vuo.scene.copy and vuo.scene.copy.trs) nodes. [#7748]
    • Added the Copy Layer (vuo.layer.copy and vuo.layer.copy.trs) nodes. [#7749]
    • Added the Make Points along Curve node. [#7751]
    • Added the Make Parametric Points and Make Parametric Grid nodes. [#7150]
  • Added the Get Window Dimensions node. (Thanks to @jokkeheikkila for suggesting this!) [#7847]
  • Added the Snap Value node. [#7817]
  • Added the Share Value node. [#7885]
  • Added the time, uMin, uMax, vMin, and vMax ports, and removed the uExpression and vExpression ports, on the Make Parametric Vertices node. [#7873] [#7872]
  • Added the center and amplitude ports to the Wave node. [#7702]
  • Added icons to some menu input editors. [#7854]
  • Changed the default lighting in the Render Scene scene nodes (when the input scene does not contain any lights) to use three point lights instead of one. [#7601]
  • Changed the default type of the Get Message Values (vuo.osc.message.get) nodes’ output ports from generic to real number. [#7633]
  • Fixed the Receive Leap Frame node’s not firing events in exported apps that lack a window or don’t currently have their window focused. (Thanks to @bLackburst for reporting this!) [#7642]
  • Fixed the crash when the Receive OSC Message node’s udpPort value changes while the composition is running. (Thanks to @architek1 for reporting this!) [#7644]
  • Fixed crashes when live-coding with nodes that work with images. [#7513]
  • Fixed the Are Equal (vuo.text.areEqual) node so that it outputs true when comparing texts that contain the same Unicode characters but are encoded differently. [#5561]
  • Fixed the Make Text Image node’s calculation of image height for text containing blank lines. [#7534]
  • Fixed the missing interface node indicator (radio arcs) on vuo.mouse nodes. [#7690]
  • Fixed the Adjust Image Color node’s handling of brightness values outside the range of -1 to 1. [#7931]
  • Removed the temporary workaround (no longer needed with event throttling) that force-quit a composition if it used more than 256 MB of VRAM. [#6909]
  • Eliminated the “decode_slice_header” console messages printed while running some compositions with vuo.movie nodes. [#7604]
  • Updated the OpenSSL version included with Vuo to secure compositions against the Heartbleed vulnerability. [#7636]

Vuo Editor

  • Added the ability to turn the cursor into a drag hand by holding the spacebar, then drag the canvas around to scroll. (Thanks to @useful design and @bLackburst for suggesting this!) [#7616]
  • Added a “Set Event Throttling” context menu option for trigger ports to handle the buildup of events when the trigger port is firing faster than the composition can process. [#6909]
  • Added the “File > New Composition with Protocol” menu option, with protocols “Image Filter” and “Image Generator”, to create a composition with a predetermined set of published ports. [#7678]
  • Added a special area to the published port sidebars for the published ports that match a protocol. The protocol is recognized when a composition is created or opened. [#7683] [#7681]
  • Added the “Run > Run as Image Filter” and “Run > Run as Image Generator” menu options, which automatically replace the “Run > Run” menu option when a composition is recognized to match one of these protocols. [#7680]
  • Added the ability to disconnect a cable between a regular port and a published port, leaving the published port in place. [#5142]
  • Added the ability to connect an regular output port to multiple published output ports. [#5142]
  • Added the ability to connect multiple cables to a published output port as long as no more than one carries data. [#7711]
  • Added the ability to connect a published port to a generic port. [#7917]
  • Added the ability to connect a published input port to a port of a different type, inserting a type-converter node. [#7916]
  • Improved performance of rendering and scrolling the composition canvas. [#7507]
  • Improved the visual design of compositions:
    • Changed the color of port circles/triangles to match the node background. [#7782]
    • Fixed spacing of event wall/door arcs so they don’t overlap between ports. [#7776]
  • Fixed files showing up in the Open Recent menu after they’ve been moved or deleted. (Thanks to @joeladria for reporting this!) [#7345]
  • Fixed headless (windowless) exported apps endlessly bouncing in the OS X dock. (Thanks to @bLackburst for reporting this!) [#6760]
  • Fixed input editors being opened in the wrong order for some nodes when tabbing between them. [#7788]
  • Fixed graphics artifacts left by published cables when the canvas is scrolled. [#7713] [#7714]
  • Fixed graphics artifacts left by dragging after rubberband selection on Retina displays. [#6477]
  • Fixed bug where some rare compositions (created before Vuo 0.6.0 and having certain cables connected a Render Scene to Window or Render Layers to Window node’s mouse trigger port) would become corrupted when opened. [#7600]
  • Fixed the composition not being marked as modified if you save and then undo. [#3332]
  • Fixed the composition being marked as modified if you save, then make a change, then undo. [#3332]
  • Fixed published ports losing their original ordering (instead being put in alphabetical order) when opening or pasting a composition. [#7532] [#7915]
  • Fixed bug where a port popover would not show the port’s most recent value if the port popover is already open when the composition starts running and the port receives an event within a short time after the composition starts. [#7927]
  • Fixed node popovers obstructing the view of context menus. [#7934]
  • Fixed constant value flags not being wide enough for some default constant values when a node is first added to the canvas. [#7967]

Documentation

  • Manual
    • Added section “Controlling the buildup of events” about event throttling. [#6909]
    • Added section “Sending the same data to multiple ports” about the Share Value node. [#7945]
    • Added information about published ports and protocols: a section called “Interfacing with Applications”, a section called “Using a protocol for published ports”, and an expansion of the “Running a composition” section. [#7944]
    • Added examples of trigger ports on interface and non-interface nodes to the “Trigger ports” section. [#7783]
    • Added instructions for entering multi-line text into an input editor. [#7886]
    • Updated to reflect recent changes to the visual design of nodes. [#7303]
    • Updated to reflect recent changes to the vuo.mouse nodes. [#6677]
    • Updated the “Built-in Nodes” section with recently added node sets. [#7949]
  • Nodes
    • Expanded the documentation for the Make Parametric Vertices node. [#7622]
    • Added instructions for entering multi-line text for the Make Text Image node and vuo.text node set. [#7886]
    • Clarified that the Cut and Count Characters nodes count line breaks and other whitespace characters. [#7886]
    • Fixed broken links to example compositions in node documentation displayed in a web browser. [#7810]
    • Fixed node previews being rendered too small and without drawers in node documentation displayed in a web browser. [#7486]

Vuo Compiler

  • Composition file format
    • Added an attribute for the data type of a published port. [#7656]
    • Added an attribute for the constant value of a published input port. [#7710]
  • Fixed composition parsing to preserve the order of published ports as listed in the composition file. [#7532]
  • Fixed freezes (deadlock) in certain compositions that have multiple trigger ports firing into different nodes within a feedback loop. [#7924]
  • Fixed incorrect information in warning messages about the parameters allowed and disallowed in node API functions. [#2741]

SDK

  • Node API
    • Added an optional parameter to VuoOutputTrigger to set a trigger port’s default event throttling. [#6909]
    • Allowed the nodeInstanceTriggerStop function to use VuoOutputTrigger parameters. [#7651]
    • Added the ability to specify a default value for each specialized port type in a generic port’s VuoInputData. [#7733]
    • Added a VuoKeyedPool class to help manage pools of resources shared between nodes. [#4819]
    • Added a VuoTriggerSet class to help manage groups of related triggers. [#4819]
    • Moved the VuoHeap source code from the runtime folder to the library folder. [#7620]
  • Framework
    • Reduced the framework size by 25%. [#6080]
  • Command-line tools
    • Enabled vuo-compile to accept .m or .mm node class source files (in addition to .c or .cc). [#7847]
Version
0.7.0