Smooth inside a subcomp hangs Vuo


I’m trying to create a QC-like Smooth patch, so that it keeps an internal state, and you need just to feed the target value.
I succeeded in doing that so I tried to save this to a subcomp to make it reusable.
This way I get Vuo hanging using the subcomp in a simple test workspace and can’t figure out why.
I attach the subcomp I created and the test patch.


test smooth.vuo (3.33 KB)

cremaschi.smoothWithDurationWithInternalState.vuo (3.89 KB)

If I take away the Hold Value nodes inside of the subcomposition (attached), it no longer hangs.

Based on port popovers in the parent composition and a Display Console Window in the subcomposition:

  • First event hits Smooth With Duration With Internal State node’s Value and Time input ports.
    • Event travels through subcomposition and emerges from Smooth With Duration With Internal State node’s output port.
  • Second event hits Smooth With Duration With Internal State node’s Value and Time input ports.
    • Event never makes it in through subcomposition’s published input ports.

I don’t yet know the details of why, but I’m guessing that the subcomposition is still working on its first time executing. The second event hits the subcomposition node, but inside of the subcomposition, it’s still processing the first event.

This is probably a bug involving the way that nodes in the subcomposition are scheduled to execute. Obviously it shouldn’t get stuck like that.

However, I don’t think the Hold Value nodes are really accomplishing anything in this composition, right? Did you add them because the subcomposition wasn’t actually smoothing the data? The problem there is that the Value port is receiving values as fast as the Time port — whereas the Smooth with Duration node and other smooth nodes are intended for the Target to change more slowly than the Time. (1.71 KB)

Without Hold Values, Vuo doesn’t hangs but the subcomp doesn’t output anything - this is not the expected behaviour, i0d expect it behave like a normal Smooth with duration.
In my idea, the rightmost Hold Value is in effect useless; but the other should be necessary as it holds the internal state. Could you confirm this idea?
With just that Vuo hangs anyway.

The Smooth with Duration node stores its own internal state. When you send a different value into Set Target, it starts from its current position, it doesn’t start over at the original position. Maybe the attached composition helps as a demonstration.

SmoothWave.vuo (2.78 KB)