Vuo 1.2.4 is a big update that adds many new features (including 16 requested by the community), fixes numerous bugs (including 24 reported by the community), and improves performance. It’s free for people who purchased Vuo 1.2. Highlights include:
- New image effects:
Sharpen Image
,Scramble Image
,Make Stained Glass Image
,Make CMYK Halftone Image
,Make Tileable Image
,Split Image HSL Channels
,Combine Image HSL Channels
- New noise nodes and options:
Make Spherical Noise Image
; the choice of gradient noise, value noise, cellular noise, and dot noise; the choice of a rectangular or triangular grid; the choice of levels (octaves), roughness, and spacing for fractal noise - New blur nodes and options:
Blur Image Radially
,Blur Image Directionally
; the choice of Gaussian, linear, box, and disc kernels; adjustable blur quality; and masked blurs - New layer layout nodes:
Arrange Layers in Row
,Arrange Layers in Column
,Tile Layer
- New scene nodes:
Find 3D Objects
,Copy 3D Object (TRS + Material)
,Quantize 3D Object
,Tile 3D Object
- New interface with NI mate:
Filter Skeleton
- New audio effects:
Bit Crush Audio
,Ring Modulate Audio
- New list utilities:
Comb List
,Get Items from List
,Get Item Ranges from List
,Interleave Lists
,Deinterleave Lists
- New text utilities:
Change Case
,Insert Text
,Find Text
,Replace Text
,Remove HTML
- New math utilities:
Calculate List
,Crossfade
,Change Speed
- Enabled sending 32-bit integers and floats via OSC, for compatibility with other applications that receive those OSC data types.
- Enabled specifying the timestamp for each video/audio frame in the
Save to Movie
node, for better control of the movie frame times and framerate. - Added support for higher color-depth (32bpc) images.
- Added a section on subcompositions to the Vuo Manual.
- Enabled Vuo.framework to be inserted into VDMX5 b8.6.0.6.
Vuo 1.2.4 drops support for Mac OS X 10.7. It runs on OS X Mountain Lion 10.8 through macOS Sierra 10.12.
Examples
- Added new example compositions:
-
Animate Stripe Width
-
Cap Saturation
-
Change Ripple Periodically
-
Change Speed with Mouse
-
Compare Directional Blurs
-
Compare Mix and Ring Modulate
-
Compare Noise Types
-
Crossfade Rectangle Sizes
-
Crush Sine Wave
-
Load Image Asynchronously and Show URL
-
Make Stained Glass Image
-
Quantize Object
-
Reorder Ranges of Items
-
Select Layer from List
-
Separate Hue Saturation Lightness
-
Sharpen Movie
-
Show Arranged Layers
-
Show Arranged Text Layers
-
Show Stabilized Audio Waveform
-
Simulate Motion Blur
-
Simulate Printed Image
-
Spin Watery Sphere
-
Tile Starfield
-
Track Skeleton
-
Unscramble Image
-
Zoom Blur Hue
-
- Modified the
Show URL Components
example to load its image asynchronously. - Modified examples that track mouse buttons to react only when the mouse is interacting with the composition’s window.
- Updated the
Make Rugged Terrain
example to use theMake Noise Image
node, now that it can generate fractal noise. - Modified the
Display RSS Items
example to decode HTML character entities in the Title and Author fields.
Built-in Nodes, Types, and Input Editors
- Added new nodes:
-
vuo.app
-
Stop Composition
(Thanks to @MartinusMagneson for suggesting this feature!)
-
-
vuo.audio
-
Bit Crush Audio
andRing Modulate Audio
(Thanks to @alexmitchellmus for providing source code for this node!) -
Make Audio Input from Model
,Make Audio Output from Model
-
-
vuo.image
-
Sharpen Image
(Thanks to @jersmi for requesting this feature!) -
Make Spherical Noise Image
(Thanks to @alexmitchellmus for requesting this feature!) -
Blur Image Radially
(Thanks to @jersmi for requesting this feature!) -
Blur Image Directionally
-
Split Image HSL Channels
-
Combine Image HSL Channels
-
Scramble Image
-
Make Stripe Image
-
Make Tileable Image
-
Make Stained Glass Image
-
Make CMYK Halftone Image
-
Are Equal (Image)
-
-
vuo.layer
-
Make Image Layer (Stretched)
(Thanks to @MartinusMagneson for asking about this feature!) -
Arrange Layers in Row
,Arrange Layers in Column
(Thanks to @alexmitchellmus for requesting this feature!) -
Transform Layer
(Thanks to @MartinusMagneson for suggesting this node!) -
Tile Layer
-
Get Layer Values
,Get Child Layers
-
-
vuo.list
-
Comb List
(Thanks to @MartinusMagneson for requesting this node and @vjsatoshi for developing the node this is based on!) -
Get Items from List
,Get Item Ranges from List
(Thanks to @cwilms-loyalist for proposing these nodes!) -
Interleave Lists
,Deinterleave Lists
-
-
vuo.math
-
Calculate List
-
Make Range (Integer)
,Make Range (Real, Min/Max)
,Make Range (Real, Center/Radius)
-
Get Range Values (Integer)
,Get Range Values (Real)
-
-
vuo.motion
-
Crossfade
-
-
vuo.osc
-
Filter Skeleton
(Thanks to @EDreams for inquiring about this!)
-
-
vuo.scene
-
Find 3D Objects
(Thanks to @krezrock for suggesting this node!) -
Copy 3D Object (TRS + Material)
(Thanks to @George_Toledo for suggesting this!) -
Transform 3D Object
(Thanks to @MartinusMagneson for suggesting this node!) -
Quantize 3D Object
-
Tile 3D Object
-
Remove Texture Coordinates
-
Get 3D Object Values
,Get Child Objects
-
-
vuo.shader
-
Shade with Oval
-
-
vuo.text
-
Change Case
(Thanks to @Bodysoulspirit for requesting this feature!) -
Insert Text
-
Find Text
-
Replace Text
-
Remove HTML
-
-
vuo.time
-
Allow Periodic Events
(Thanks to @jersmi for requesting this feature!) -
Change Speed
(Thanks to @vjsatoshi for developing the node this is based on!)
-
-
vuo.type
-
Convert Image to Layer
-
Convert Real to Scale (X)
,Convert Real to Scale (Y)
,Convert Real to Scale (XY)
-
Convert Real to Translation (X)
,Convert Real to Translation (Y)
-
Convert 2D Transform to 3D
,Convert 3D Transform to 2D
-
Convert Real List to Text List
,Convert Text List to Real List
-
Convert Image to Video Frame
-
Convert Audio to Frame
-
-
vuo.video
-
Make Video Frame
,Get Video Frame Values
-
Make Audio Frame
,Get Audio Frame Values
-
-
- Renamed nodes:
- Renamed
Make Scaled Layer
toMake Image Layer (Scaled)
andMake Layer
toMake Image Layer (Real Size)
, and similarly for theMake * Layer with Shadow
nodes. - Clarified the titles of the families of
Copy 3D Object / Layer
andCombine 3D Object / Layer
nodes. - Clarified the titles of the family of
Are Equal
nodes.
- Renamed
- Added ports:
- Added a
Calculate Samples
port to theMake Audio Wave
node to fix confusing rules about which ports are supposed to receive events. (Thanks to @alexmitchellmus for reporting this issue!) - Added an
Is Fullscreen
output port to theGet Window Dimensions node
. (Thanks to @alexmitchellmus for requesting this feature!) - Added an
Opacity Image
output port andPreserve Opacity
input port to theSplit Image RGB Channels
node. (Thanks to Roger Bolton and @alexmitchellmus for suggesting this feature!) - Added a
Feedback Blend Mode
port to theBlend Image with Feedback
node. (Thanks to @alexmitchellmus for suggesting this!) - Added a
Mask
port to theBlur Image
node. (Thanks to @jersmi for requesting this feature!) - Added
Levels
,Roughness
, andSpacing
ports to theMake Noise Image
,Frost Image
, andShade with Frosted Glass
nodes. (Thanks to @alexmitchellmus for requesting this feature!) - Added
Type
,Grid
,Range
, andTile
ports to theMake Noise Image
node. (Thanks to @alexmitchellmus for requesting these features!) - Added an
Expand List if Needed
port to theChange Item in List
node. (Thanks to @MartinusMagneson for suggesting this feature!) - Added a
Type
port for eachData
port in theMake Message
nodes. (Thanks to @Resolume and @wmackwood for asking about this!) - Added a
Preserve Physical Size
port to theMake Image Layer * (Real Size)
nodes to support rendering images at the same physical size on both Retina and non-Retina screens. - Added a
Multisampling
port to theRender Layers to Window
andRender Scene to Window
nodes. - Added a
Quality
port to theBlur Image
node. - Added a
Sync Amplitude
port to theMake Waveform Image
node. - Replaced the
Amplitude
port with aHeight
port on theMake Waveform Image
node. - Added a
Sample Type
port to theSample Color from Image
node. - Added a
Coverage
port toMake Checkerboard Image
. - Added a
Model Code
output port toGet Audio Input Values
andGet Audio Output Values
. - Added a
Phase
port to theCurve
node. - Added an
Anchor
port to theMake * Layer
nodes, and renamed theirCenter
port toPosition
.
- Added a
- Added port value options:
- Added
Texture Coordinate (Gradient)
as an option for theAttribute
port on theShade with Vertex Attribute
node, and renamed theTexture Coordinate
option toTexture Coordinate (Checker)
. (Thanks to @alexmitchellmus for requesting this!) - Added larger options (4095 and 8191) for the
Frequency Bins
port of theCalculate Amplitudes for Frequencies
nodes. (Thanks to @Kewl for suggesting this improvement!) - Added support for 32bpc images. (Thanks to @alexmitchellmus for requesting this feature!)
- Added options for linear, box, and disc kernels for the
Shape
port on theBlur Image
node. (Thanks to @jersmi for requesting this feature!) - Enabled the
Save to Movie
node to receive timestamps along with the input images and audio, for better control over the frame times and framerate of the resulting movie. - Added an “auto” option to the
Width
andHeight
ports of theBlend Image with Feedback
node. - Enabled using variables I and J to retrieve the integer index of the current point in the
* Expression
ports ofMake Parametric Points
,Make Parametric Point Mesh
, andMake Parametric Grid Mesh
.
- Added
- Enabled full-screen composition graphics windows to be accessed in macOS Mission Control. (Thanks to @Bodysoulspirit for reporting this issue!)
- Added more keywords to
Allow Changes
. (Thanks to @alexmitchellmus for suggesting this!) - Enabled the keyboard and mouse nodes to work in a composition with no windows. (Thanks to @jersmi for asking about this!)
- Improved the performance of the
Make Cube
node by generating a single object instead of a group with subobjects. (Thanks to @alexmitchellmus for asking about this!) - Changed the
Fire Periodically
node’sFired
port from an event port to a data+event port that outputs the time elapsed. - Modified the
Receive Mouse Moves
node to fire an event with the cursor’s initial position when the composition starts. - Modified composition graphics windows to use macOS’s built-in full-screen mode when possible (i.e., when both running on 10.9 or later, and when System Preferences > Mission Control > Displays have separate Spaces is checked).
- Modified the
Summarize Value
node to strip HTML from the summary. - Modified the
Receive Mouse Clicks
node to interpret quadruple-clicks (or higher) as triple-clicks instead of ignoring them. - Added support for writing fragmented movie files (for recovering a partial movie if the composition crashes) in the
Save to Movie
node, window recording, and offline movie exporting. - Reduced GPU RAM usage when loading 8bpc greyscale and 8bpc palletized images.
- Modified nodes that create files to replace any colons in the file name with a character that looks the same but doesn’t doesn’t get changed to a slash by macOS.
- Improved the performance of the
Calculate Amplitude for Frequencies
node. - Restyled the up/down arrows in numerical input editors to make them easier to target with the mouse.
- Modified the up/down arrows in numerical input editors to be visibly disabled when clicking them would have no effect.
- Improved the performance of 3D object filter nodes.
- Modified the image filter nodes and the
Render Image to Window
node to output/display a null image when they receive one as input, rather than continuing to output/display the last non-null image. - Improved the style of the Movie Format input editor.
- Renamed the
Samples
port toChannels
on nodes where the port’s data type is List of Audio Samples. - Modified the display of OSC Message data in port popovers to show the entire list of arguments.
- Fixed a bug where the
Receive Mouse Buttons
andReceive Mouse Clicks
nodes would fire events when the composition window was resized. (Thanks to @Pianomatic for reporting this problem!) - Fixed a bug where
Fetch Image
downsampled 16bpc images with an alpha channel to 8bpc. (Thanks to @alexmitchellmus for reporting this issue!) - Fixed a jagged seam when using the
Make Icosphere
node with an image shader. (Thanks to @alexmitchellmus for reporting this bug!) - Fixed a bug that generated bogus texture coordinates for certain 3D objects (including those made from point meshes) when they were passed through certain 3D object filters (including
Add Noise to 3D Object
). (Thanks to @Bodysoulspirit for reporting this problem!) - Fixed a crash when one of the
* Edge
ports of theMake Quad Layer
node has a cable connected. (Thanks to @alexmitchellmus for reporting this bug!) - Fixed a bug in the input editor for the
Fragment Shader
port of theMake Image with Shadertoy
node that scrolled the input editor back to the top when the user scrolled to the bottom. (Thanks to @jersmi for pointing this out!) - Fixed a bug where audio devices didn’t work if the system was set to a language where the device name contained non-ASCII characters. (Thanks to @Kewl for reporting this bug!)
- Fixed crashes when using certain 3D object filters, including
Divide 3D Object
. (Thanks to @Xavier dev for reporting this bug!) - Fixed a bug where
Receive Kinect Images
would stop outputting images after a live-coding reload. (Thanks to @alexmitchellmus for reporting this bug!) - Fixed a bug where
Blur Image
ignored the input image’s wrap mode. (Thanks to @alexmitchellmus for bringing this to our attention!) - Fixed a bug where gradients generated by the
Make * Gradient
nodes were not smooth on certain GPUs including Intel HD Graphics 3000. (Thanks to @Bodysoulspirit for reporting this bug!) - Fixed the 2 gray pixels that appeared in each bottom corner of a composition graphics window.
- Fixed memory leaks of port values and node instance data during live coding.
- Fixed a bug where composition graphics windows didn’t accept file drag-and-drop (
Receive File Drags
) when full-screen. - Fixed a memory leak when stopping a composition with a graphics window.
- Fixed a bug where line segments wink out of existence when the camera moves more than a few units away from the origin.
- Fixed problems with the
Blur Image
node’s blur algorithm: the blur not perceptibly increasing beyond a radius of about 10, the blur radius being treated as an integer (fractional part ignored), and the output image having diagonal streaks. - Fixed a rare crash upon quitting a composition with a
Receive Live Video
node. - Fixed a bug where the
Save Image
node would write an image that was too bright when saving to a format that doesn’t support transparency. - Fixed a bug that allowed
Frost Image
node to generate invalid color values if theBrightness
port was set too high. - Fixed a bug where the
Save to Movie
node sometimes wouldn’t finish saving the movie before the composition process ended. - Fixed incorrect step sizes when using the up/down keys on input editors for ports of type Real.
- Fixed a bug where the
Warp Image with Projection Mesh
node was not applying the mesh’s brightness attribute to the image’s RGB channels. - Fixed slow performance of the
Cut List
node when extracting a small subset of a large list. - Fixed a low visual contrast between enabled and disabled input editor widgets in Dark Interface.
- Fixed a crash when attempting to render a Real Size layer with an image that failed to be created, for example the output of
Make Text Image
when the input text is very large. - Fixed a bug where the
Play Movie
node ignored the value into itsSet Time
port if the same event went into theURL
port. - Fixed a bug where the looping mode wasn’t applied to the value of the
Set Time
port of thePlay Movie
node. - Fixed a bug where the
Fetch Image
node ignored the EXIF orientation tag of images, causing photos taken by an iPhone in portrait orientation to appear in landscape orientation. - Fixed the inconsistent capitalization of labels in input editors.
- Fixed a crash in
Play Movie
for certain movies (where the number of actually-decoded audio channels differs from the number that AVFoundation says the movie is supposed to have). - Fixed a memory leak when stopping a composition that uses
Send Art-Net Messages
orReceive Art-Net Messages
. - Fixed a bug where the vignette from the
Make Fisheye Camera
node sometimes wouldn’t show up when usingShow Back of 3D Object
. - Fixed inconsistencies in dialogs as compared to other dialogs and macOS conventions.
- Fixed a bug where
Make Image from Channels
put the channels in reverse order. - Fixed a bug where empty text items in a List of Text port wouldn’t have a bullet point in the port popover.
- Fixed a bug where occasionally the system’s audio devices wouldn’t be detected.
- Fixed a bug where the input editor for the OSC Input Device data type sometimes showed duplicates of the same device.
- Fixed a bug where
Receive Mouse Moves
would fire events at position (0,0) for inactive windows. - Fixed a bug where the
Showed Window
port of theRender * to Window
nodes would fire twice when switching between windowed and fullscreen mode. - Added a workaround for an Intel HD Graphics 3000 driver bug, where it would sometimes render images with discontinuities along a diagonal line from the top left to the bottom right of the image.
Vuo Editor
- Enabled editing the details of published ports of data type 2D Point, 3D Point, and 4D Point. (Thanks to @p8guitar for asking about this!)
- Changed the placement of nodes and cables pasted with ⌘V. They’re now inserted at the cursor location.
- Modified constant flags for URL ports to be truncated at the beginning instead of the end.
- Added a tooltip for URL ports that shows the full (non-truncated) URL.
- Added a tooltip for Color ports that shows the color’s RGBA values in various formats.
- Changed the behavior when the user drops a video file onto the canvas. When a protocol is active, a
Decode Movie Image
node is created. When there’s no protocol, the user gets a menu to choose eitherDecode Movie Image
orPlay Movie
. - Changed the VuoCompositionLoader icon from a generic app icon to a Vuo icon.
- Fixed a bug that allowed a composition to have a published input port and a published output port with the same name, leading to problems including duplicated subcomopsition ports. (Thanks to @dumski for reporting this bug!)
- Fixed a bug where drawers attached to offscreen nodes weren’t always copied along with the nodes. (Thanks to @alexmitchellmus for reporting this bug!)
- Fixed a bug where the error dialog when a composition fails to run was sometimes overly tall. (Thanks to @Bodysoulspirit for reporting this problem!)
- Fixed a bug that left an extra process running when exporting a movie failed.
- Fixed warnings (“QTextCursor::setPosition: Position ‘53’ out of range”) when interacting with a window.
- Fixed a bug where an extra click was required to interact with the canvas after clicking on a toolbar button.
- Fixed a bug that caused mouse drags to be spuriously initiated on the canvas.
- Fixed a crash that occurred when the system ran out of disk space.
- Fixed a sporadic crash when recording a video of a composition.
- Fixed an occasional crash when toggling Dark Interface.
- Fixed a sporadic crash when deleting nodes or cables.
- Fixed crashes when dragging a cable and simultaneously modifying the composition in other ways, such as deleting the cable.
- Fixed the default filename in the Save Movie dialog that appears after recording a movie.
- Fixed stray linebreaks in the display of some example compositions’ descriptions.
- Fixed grainy Vuo file icons in menus on non-Retina displays.
- Fixed a bug where sheet dialogs displayed over an editor window would prevent interaction with other windows.
- Fixed an error after dragging a cable away from a type-converter node’s input port to disconnect it and then dragging it onto the input port that that type-converter node is connected to.
Compiler and Runtime
- Added
offlineMotionBlur
as an optional published input port on the image generator protocol. (Thanks to @alexmitchellmus for suggesting this!) - Enabled compositions to shut down cleanly when quit with Control-C or Activity Monitor.
- Changed the title of composition windows to match the runner process name when the composition is being run without live coding enabled.
- Reduced the size of exported apps by omitting the Graphviz dylibs.
- Reduced the time spent initializing the compiler, especially when the user has subcompositions installed.
- Enabled the composition’s Quit menu item to automatically kill the composition process if it doesn’t shut down within several seconds.
- Fixed hangs when running compositions with a lot of nested subcompositions. (Thanks to @MartinusMagneson for reporting this bug!)
- Fixed a bug where compositions would erroneously enter a macOS App Nap if they contained certain combinations of nodes. (Thanks to @manuel_mitasch for reporting this problem!)
- Fixed a crash when exporting a movie that contains certain combinations of nodes. (Thanks to Daniel Courville for asking about this!)
- Fixed a crash when running a composition in the current process, stopping it, running another composition using the same dylib, and stopping it. (Thanks to Ray Cutler for reporting this issue!)
- Fixed a rare crash involving LLVM code generation.
- Fixed a bug where the last node in a feedback loop inside a subcomposition could execute too late, allowing side effects of the subcomposition to happen after the subcomposition was supposed to be finished executing.
- Fixed a bug where a
Spin Off Event(s)
orSpin Off Value
node could be thwarted by the order in which the compiler schedules node executions. - Fixed a sporadic hang in compositions with certain structures involving multiple triggers and branching.
- Fixed a crash when compilation of a 3rd-party generic node fails.
- Fixed a sporadic crash when opening a composition, running it, and immediately resizing a drawer.
- Clarified some error messages for failures to compile compositions.
Documentation
- Added a manual section on subcompositions. (Thanks to @dumski for pointing out the need for this!)
- Documented the behavior of
Send Live Audio
when itsSend Channels
port value doesn’t cover all of the devices channels. (Thanks to @Kewl for asking about this!) - Changed “Mac OS X” to “macOS” to adhere to Apple’s new branding guidelines.
- Improved the documentation of many nodes and node sets.
SDK
- Enabled Vuo.framework to be inserted into VDMX5 b8.6.0.6.
- Node API
- Provided new port details “auto” and “autoSupersedesDefault” for
VuoInputData
.
- Provided new port details “auto” and “autoSupersedesDefault” for
- Runner API
- Modified the
VuoPluginApp
example to reduce the time the user has to spend waiting for the first composition to open. - Fixed a crash in the RunImageFilter-Qt and RunImageFilter-GLFW examples when they ran a composition with a graphics window.
- Modified the
Version
1.2.4
Files
Attachment | Size |
---|---|
vuo-1.2.4-sdk.zip | 57.41 MB |
vuo-1.2.4-src.zip | 20.91 MB |
vuo-1.2.4-editor.zip | 71.51 MB |
vuo-1.2.4-manual.pdf | 4.16 MB |
vuo-1.2.4-composition-examples.zip | 8.46 MB |