This release focuses on adding support for sending and receiving MIDI note and controller messages. We also added a “Make Wave” node, fixed several memory leaks, and fixed several bugs in node implementations and the compiler. This is an alpha release. Alpha releases may include changes that break compositions you made with previous versions.

Changes

Here’s what we’ve done in the last week:

Documentation

  • Updated Vuo Manual section “Creating Compositions” to reflect current editor functionality. [#3281]
  • Changed remaining uses of the word “graph” in the Vuo Manual to the word “composition”, to improve clarity for non-mathematicians. [#4323]

Examples

  • Fixed memory leak in scenegraph rendering, as exhibited by the RippleImageOfSphere (formerly called SphereOnSquare) example composition. (Thanks, @George_Toledo, for reporting this issue.) [#5744]
  • Renamed example compositions to verb phrases. [#5779]
  • Added “WavesWithSphere” example composition. [#5310]
  • Added “SendMIDINotes” example composition. [#5279]
  • Removed the “RightTriangles” example composition (superseded by “WavesWithSphere”). [#5721]
  • Removed the “UnicodeStringLength” example composition, since it was more of a test than an example, and we already have a test of this in TestVuoText. [#5779]

Vuo Editor

  • Nodes’ version numbers are now embedded in composition files. [#5292]
  • When saving a composition, constant values are written for published input ports. [#5770] [#5800]
  • When saving a composition, constant values are no longer written for ports with data cables connected. [#4796]
  • Fixed issue where nodes and cables weren’t being written to composition files in a consistent order (making diffs excessively verbose). [#5802]
  • Fixed issue where a large composition might hang during live coding. [#5816]

Built-in Nodes and Types

  • Added “Make Wave” node. [#5310]
  • Added new MIDI nodes: [#4601]
    • “Filter MIDI Controller”
    • “Filter MIDI Note”
    • “Get MIDI Controller Values”
    • “Get MIDI Device Values”
    • “Get MIDI Note Values”
    • “List MIDI Devices”
    • “Make MIDI Controller”
    • “Make MIDI Device with ID”
    • “Make MIDI Device with Name”
    • “Make MIDI Note”
    • “Receive MIDI Events”
    • “Send MIDI Event”
  • Added bounds checking for VuoListGetValueAtIndex_*(). [#5285] [#5654]
  • Increased precision in VuoReal spinboxes from 2 decimal places to 6. [#5724]
  • Fixed crash when modifying a running composition with a “Get Mouse” node. The node’s triggers were not being prevented from firing while the composition was reloading. [#5181]
  • Fixed bug where VuoColor port constants were incorrectly parsed. [#5755]
  • Fixed bug where node “Count within Range” would return unexpected values when the minimum or maximum was changed. The count is now adjusted to be within the minimum and maximum before trying to increment, decrement, or wrap/saturate. [#4442]
  • Fixed memory leak when creating vertices from parametric expressions. [#5744]
  • Fixed memory leak in scenegraph rendering. (Thanks, @George_Toledo, for reporting this issue.) [#5744]
  • Fixed memory leak of a VuoSceneObject when fini-ing a ‘Render Scene to Window’, ‘Render Image to Window’, or ‘Render Scene to Image’ node. [#5744]
  • Fixed memory leak in the VuoText “Append” node. [#5744]
  • Fixed memory leak of the summary string belonging to each VuoShader. [#5744]
  • Fixed memory leak in the summary function for the VuoList type. This was causing memory to leak each time that a node with a list port executed. [#5744]
  • Fixed range of the “Make Gradient Noise” nodes when in Simplex mode, to produce values between -1 and 1. [#5783]
  • Renamed node vuo.math.multiply.point.4d to vuo.math.multiply.point4d. [#3922]
  • Renamed node vuo.math.multiply.point.4d.quaternion to vuo.math.multiply.point4d.quaternion. [#3922]
  • Renamed node library “VuoSceneParametricVertices” to “VuoVerticesParametric”. [#5123]
  • Renamed node library “VuoImageCommon” to “VuoImageGet”. [#5275]

API

  • Added documentation for writing data editors. [#5738]
  • Added documentation for vuoRegister function and macro. [#2987]
  • Added documentation specifying that Chicago Manual of Style capitalization should be used for node titles (as opposed to APA). [#4019] [#4442] [#2786]
  • When reporting errors about reference counting, the error message now includes the location in source code where the pointer was registered for reference counting. [#2987]
  • Renamed “graph” to “composition” in class and method names. [#4323]
  • Renamed “data editor” to “input editor”. [#5742]

Vuo Compiler

  • Fixed crash when compiling a composition with a struct trigger port that Clang lowers to a pointer-to-struct function parameter. [#5786]

Known Issues

Documentation

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

Vuo Editor

  • The editor may hang when attempting to display a port value popover while the composition is being reloaded (after being modified while running). [#5318] [#5390]
  • Changing the “Fire Periodically” node’s seconds port while the composition is running does not affect firing rate. [#5317]
  • 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]
  • 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]
  • For some port types, the constant flag displays its value in quotation marks. [#5700]

Built-in Nodes, Types, and Data Editors

  • Only a single, root scenegraph object is rendered. [#3630]
  • When rendering a scenegraph, the Z axis is inverted. [#5536]
  • Some values of type VuoImage are not properly released when the composition is modified while running. [#5418]
  • Data editor source code is currently classified as proprietary, making it difficult for 3rd-party developers to create data editors. [#5662]

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]
  • The “done” port does not conduct an event that comes in through an input port with a wall or door. [#5668]
Version
0.4.5