Since the last alpha release, we’ve added several new features:

  • Basic support for subcompositions (!)
  • New nodes:
    • Read text files
    • Audio beat detection
    • Launch apps and create folders
    • Date-time / calendar
    • Scale and multiply lists
    • URL parsing

…and made some graphics performance improvements, and fixed quite a few bugs.

Using Subcompositions

  • To create a new subcomposition, create a composition and go to “File > Save/Move Composition to Node Library”. The subcomposition will then show up in the Node Library. The published input/output ports you gave the composition will be input/output ports on the node.
  • To edit the subcomposition, there are several ways:
    • Right-click on the subcomposition node, either in the Node Library or on the canvas, and select “Edit Composition…”
    • Double-click on the background of the subcomposition node on the canvas
    • Select the node on the canvas and press ⌘↓
    • Click the “Edit Composition…” link in the node documentation panel

Known Issues

  • You can’t put a subcomposition inside of another subcomposition. When you try to save the outer subcomposition, an error dialog pops up.
  • If you edit and save a subcomposition in one window while having compositions containing the subcomposition node open in other windows, the other windows are closed and reopened.
  • If you save a subcomposition while the compiler’s cache is building (within about 45 seconds of starting Vuo Editor for the first time), there’s a crash.
  • The capitalization and spacing of subcompositions’ published port names may change when the subcomposition is added to another composition.
  • The manual doesn’t yet tell you how to use subcompositions.
  • The manual includes some incomplete text with “todo” notes.

We plan to fix these issues in time for the final 1.2.0 release.


  • New
    • “Display Image Feedback”
    • “Replace Colors In Gradient”
    • “Show Dragged Images”
  • Modified
    • Fixed a bug in “Play Blues Organ” where pressing one key, then pressing another key, then releasing the first key would cut off the note for the second key.
    • Fixed an intermittent brief sound upon starting “Play Blues Organ”.

Built-in Nodes, Types, and Input Editors

  • vuo.artnet
    • Fixed a bug in Make Art-Net IP Output where multiple devices that unicast to the same IP but different universes would be treated as a single device. (Thanks to @zwei-p for reporting this bug!)
    • Added Detect Beats (Pro).
    • Allowed Mix Audio Channels to be used as a typeconverter node.
    • Fixed clicks caused by the Adjust Loudness node during fast changes of loudness and when starting a composition.
    • Added Fetch Data.
  • vuo.file
  • vuo.image
    • Added Radially Offset Image RGB Channels.
    • Added Replace Opacity input port to Vignette Image.
    • Improved performance of nodes that create an Image data value, such as Fetch Image.
    • Fixed a bug where, on some GPUs, Blend Images would output black pixels in regions where the background image was expected. (Thanks to @lov for reporting this problem!)
    • Fixed a bug where Crop Image Pixels would not limit the output image’s height to the input image’s. (Thanks to @sean.byrne for reporting this bug!)
    • Fixed a crash in Find Barcode in Image when scanning videos of certain PDF417 barcodes. (Thanks to @gabe for reporting this bug!)
    • Fixed a crash when Fetch Image received a null URL, for example if Fetch RSS Items fetched an item that lacked an image.
    • Fixed the output for Saturation inputs less than -1 in Adjust Image Colors. It now clamps at -1, keeping the saturation grayscale.
  • vuo.math
    • Added Scale List and Multiply Lists. (Thanks to @lkaser for inspiring these nodes!)
  • vuo.mesh
    • Renamed Make Parametric Mesh to Make Parametric Grid Mesh.
  • vuo.mouse
    • Fixed a bug where, in a fullscreen composition, Receive Mouse Clicks would report the position of the mouse as it was slightly after the click instead of at the moment of the click. (Thanks to @Bodysoulspirit for reporting this bug!)
  • vuo.osc
    • Added Send OSC Messages, Make Message, List OSC Devices, Find OSC Inputs by Name, Find OSC Outputs by Name, Get OSC Input Values, Get OSC Output Values, Make OSC Input, Make OSC Output, and Make OSC IP Output.
    • Replaced the Receive OSC Messages node’s UDP Port input port with a Device input port.
  • vuo.point
    • Renamed Make Parametric Grid to Make Parametric Grid Points.
  • vuo.scene
    • Added Make Random Points Object.
    • Changed how the Transform is interpreted in the Copy Layer, Copy Layer with Transform, Copy 3D Object, and Copy 3D Object with Transform nodes. These nodes now respect the transform of the input layer/object in addition to the transform input of the node.
    • Improved performance of Add Noise to 3D Object on some GPUs.
    • Fixed the inability of Fetch Scene to load OBJ files that have multiple spaces in their texture coordinate lines. (Thanks to @ajm for reporting this bug!)
    • Fixed a bug in Displace 3D Object with Image, and other 3D object filters that rely on texture coordinates, where texture coordinates from an old 3D object input could taint a new 3D object input if the new one comes from a node such as Make 3D Grid Points that doesn’t provide texture coordinates. (Thanks to @Magneson for reporting this problem!)
    • Fixed the handling of the alpha channel (opacity) when Channel is set to anything other than Alpha in the Displace Object with Image node.
    • Renamed Make 3D Grid Lines to Make 3D Grid Lines Object and Make 3D Grid Points to Make 3D Grid Points Object.
    • Fixed Make Draggable Camera on Mac OS 10.11.
  • vuo.syphon
    • Fixed a crash in some compositions with a Make Server Description node connected to the input port of another node. (Thanks to @Magneson for reporting this crash!)
  • vuo.time
    • Added Fetch Date-Time, Get Date-Time Values, Get Relative Date-Time Values, Make Date-Time, Make Relative Date-Time, Offset Date-Time, Round Date-Time, Are Date-Times Equal, Are Times-of-Day Equal, Is Time-of-Day After, Is Time-of-Day Before, Calculate Elapsed Time, and Format Date-Time. (Thanks to @bLackburst ( and @pbourke ( for suggesting time nodes!)
  • vuo.ui
  • vuo.url
    • Improved performance of video playback by using AVFoundation for some videos.
    • Enabled AAC and MP3 audio tracks on videos to be played.
    • Fixed the pause in video playback when Play Movie receives a rapid series of events into its Playback Rate input port.
  • Made the input editor for the Real Regulation type more accommodating of “incorrect” inputs. It can now accept a Minimum that is greater than the Maximum for inverse mapping. If the Minimum and Maximum are edited so that the Default is no longer within range, the Default is clamped.
  • Added round, floor, ceil, trunc, fract, clamp, step, smoothstep, and mix functions to Calculate, Make Parametric Grid Points, Make Parametric Grid Mesh, and Make Parametric Points.
  • Added a Noise Amount input port to the Make Linear Gradient Image, Make Radial Gradient Image, Make Linear Gradient Layer, and Make Radial Gradient Layer nodes.
  • Fixed bugs with 3D objects flickering or disappearing on certain GPUs. (Thanks to @Bodysoulspirit for reporting this problem!)
  • Fixed incorrect rendering of point meshes with some shaders on certain GPUs. (Thanks to @Bodysoulspirit for reporting this bug!)
  • Fixed an intermittent crash when dragging a window from one screen to another. (Thanks to @krezrock for reporting this bug!)
  • Fixed a bug where mouse clicks/drags on the composition window’s title bar were not ignored. (Thanks to @alexmitchellmus for reporting this problem!)
  • Fixed handling of the Mac OS built-in fullscreen mode in 10.11. (Thanks to @Bodysoulspirit for reporting this problem!)
  • Fixed a bug where the Color input editor would grow vertically each time it was reopened. (Thanks to @Magneson for reporting this problem!)
  • Fixed the incorrect positioning of the Color input editor. It now appears near the port.
  • Fixed incorrect scaling for some aspect ratios of grids and layers/objects in Arrange Layers in Grid and Arrange 3D Objects in Grid when Scale To Fit is true.
  • Fixed a crash in compositions with a Render Layers to Window or Render Scene to Window node when trying to quit the composition and put it in fullscreen mode at nearly the same time.
  • Fixed a bug where the window shown by Render Layers to Window or Render Scene to Window could remain showing after deleting the node if the node had an outgoing cable from its Showed Window port.
  • Fixed a bug where the window shown by Render Layers to Window or Render Scene to Window would not have focus immediately upon toggling fullscreen mode, causing a system beep for any key presses until the window was clicked to regain focus.

Vuo Editor

  • Added a “Move Composition to Node Library” menu item to turn a composition into a reusable node class (subcomposition).
  • Enabled the “Tools > Open User Modules Folder” and “Tools > Open System Modules Folder” menu items to create these folders if they don’t exist. (Thanks to @cwright for suggesting this!)
  • Enabled changing the image in a running Image Filter composition by dragging an image onto the window.
  • Improved the formatting of Text data in popovers to make leading/trailing whitespace visible and to avoid interpreting HTML within the text.
  • Improved response time when searching the Node Library.
  • Added a “Tell us what you think” button to the composition window titlebar in the free trial.
  • Added a keyboard shortcut to reopen the most recent file.
  • Added a “Random Example” menu item.
  • Fixed the color of bullet points in node descriptions in Dark Interface mode so they contrast with the background.
  • Fixed the color of the Show Events toolbar button in dark mode when the window loses focus.

Vuo Compiler and Runtime

  • Added the ability to turn a composition into a reusable node class (subcomposition) that can be used inside of other compositions. (Thanks to the many people who have advocated for this feature, including @George_Toledo for suggesting a feasible route to get them into this Vuo release.)
  • Fixed memory leaks of data fired from triggers during a short period of time within a live-coding reload.


  • Composition runner API
    • Enabled a port’s menu items (for enum types) to be accessed from VuoRunner. Added a “menuItems” key to the return value of VuoRunner::Port::getDetails(). Replaced -[VuoRunnerCocoa menuItemsForType:] with a “menuItems” key in the return value of -[VuoRunnerCocoa detailsForPort]. (Thanks to @lumenav for suggesting this feature!)
    • Improved performance of VuoRunnerCocoa, VuoImageFilter, and VuoImageGenerator methods that get a composition’s image output as a GL texture. (Thanks to @lov for suggesting specific improvements!)
    • Added VuoRunnerCocoa, VuoImageFilter, and VuoImageGenerator methods that get a composition’s image output and let the caller provide the GL texture in which it will be placed. (Thanks to @lov for suggesting this!)
    • Fixed a crash when running a Vuo composition that displays a window within a host app that has its own NSApplication. The Vuo composition no longer implements its own NSApplication subclass.
    • Fixed a bug where the host app’s menu bar would not be restored when a Vuo composition window resigned main status.
  • Node and type API
    • Added standard comparison functions <type>_isEqual and <type>_isLessThan to applicable types.
    • Added functions VuoLog_backtrace and VuoHeap_addTrace to help with debugging.
  • Command-line utilities
    • Avoided printing the “No Vuo license was found on this system” warning multiple times in vuo-export movie.
Attachment Size 68.49 MB