0.10.4 Update – Oscillator Syncing, Piano Roll Improvements, Envelope Sampling

The next AudioNodes update brings the ability to hard-sync Oscillator Nodes and LFO Nodes with signals, introduces 2 new experimental Nodes to sample envelopes, makes some QoL improvements to snippets and custom Nodes, and also makes some QoL improvements to the Piano Roll Node.


Custom Nodes & Snippets

  • You can now rename custom Nodes directly from the custom Node designer
  • The shortest allowed name for snippets and custom Nodes is now 3 characters instead of 4, which should help open up some more naming options
  • The Save as Custom Node dialog now remembers the description and Node category if you cancel and reopen, so you can make last-second edits without having to fill these fields again
  • Custom Nodes saved to the library will now load the custom Node’s own description when accessing its docs, instead of just always showing the Subpatch Node description
    • Note: this only takes effect for newly placed custom Nodes, if your project already has custom Nodes, they’ll still load the Subpatch Node description, like before

Nodes

Oscillator Node & LFO Node

The Oscillator Node and LFO Node both receive a new feature to reset their phase with another signal, a technique called hard-syncing or just oscillator syncing. This introduces some new synth recipes not previously possible in AudioNodes, and typically produces metallic sounds when used with the Oscillator Node.

For both the Oscillator Node and the LFO Node:

  • Added a new Hard sync option to the Reset mode setting, enabling oscillator syncing using another signal
    • This option, when selected, enables the new Hard-Sync Input — connect a signal to this input, and every time the signal increases above 0, the oscillator’s phase resets
  • When the Frequency-Control Input receives a constant-0 value, the Oscillator Node will now also output a constant 0, enabling constant optimization in connected destination Nodes

Additional LFO Node changes:

  • Renamed Melody-Reset Input to MIDI-Sync Input, to be consistent with the Oscillator Node
Piano Roll Node

The Piano Roll Node receives a large number of QoL improvements & fixes in this update, to make it more polished and overall more convenient to use:

  • Increased grid contrast and overall editor brightness
  • Newly created notes no longer snap to grid when the option is disabled
  • Added Ctrl+Left-Right arrow hotkey & menu option to move notes by an entire bar
  • Holding Shift temporarily disables snap to grid when placing, dragging, moving 1 bar and resizing note — this is similar to how the Timeline behaves when the Shift key is held
  • Added I hotkey for chopping
  • Added P hotkey for select all notes with same pitch
  • Added L hotkey and menu point for select all notes with same length
  • Unselecting with Escape works for only one note as well
  • Hotkey M for moving the new node does not need Ctrl/Cmd along with it anymore
  • Notes now snap to grid on left-right arrow if option is enabled
  • Fixed messed up note order & problematic undo when reversing notes
  • Fixed undo when notes were quantized by hotkey
  • Base note (from project preferences) has white background instead of “C”
Timer Node
  • Added a new, optional Max Value setting — if set to a non-0 value, the Timer Node will automatically reset when it reaches this value, which can be useful to avoid timing imprecision if left running for too long (see the Timer Node docs for more details on this)
  • The default mode is now Signal-threshold trigger

Experimental Nodes

Envelope Param & Sampler Nodes

The experimental Envelope Param Node and Envelope Sampler Node are new in this update, and provide a low-level mechanism to sample envelopes, similarly to the Audio File Sampler Node. They essentially replace the Envelope Trigger Node as a more versatile alternative.

Envelope Trigger Node

Deprecated and removed from the Node browser. This Node will stop working in a future update. Use the Envelope Sampler Node instead, which is much more versatile.


Timeline

  • The Timeline’s possible minimum height at the bottom of the screen is now half of what it was before, enabling it to take up less of the screen if not used

Misc Fixes & Changes

  • Fixed a performance issue where a large number of unconnected output ports would cause UI lag
  • Fixed a rare bug where the Slider Param Node would crash while reducing the Count setting
  • Constant Value Node no longer shows the Dividers setting when not in a subpatch, or when the Expose as param option is disabled
  • Log Node is no longer experimental
  • XY Param Node is no longer experimental