Browse Source

Blog post: Development update (April 6)

Ben Niemann 3 years ago
  1. 28


@ -0,0 +1,28 @@
Title: Development update (April 6)
Date: 2019-04-06
This [commit](
adds the capability to have nodes with dynamic ports, i.e. the list and types of ports are not
static anymore, but can change during the lifetime of the node. For now this is only used by one
builtin node type, but I plan to make more use of that feature in the future. E.g. to have a single
"VCA" node with a flexible number of channels, instead of needing a number of separate "VCA (mono)",
"VCA (stereo)" nodes.
### What's new
The Custom CSound node now has a dynamic port list. Ports can be added, removed and modified.
### Internal changes
* The NodeDescription of a node can be generated dynamically. Changes are propagated to the audio
engine and for some changes, e.g. port type or direction changes, the underlying processor
instance gets reinitialized (which does cause a brief audio glitch, if the processor is hooked up
and producing sound).
* Added node parameters, which are persistent in the audio engine graph, but not part of the
project. Used for setting the CSound orchestra and score of the Custom CSound node. Processors
already had the concept of parameters, which has been assimilated into the more generic node
* A new ObjectListEditor class, which provides a table widget for editing lists of
objects. Currently only used for the port list editor of the Custom CSound node.