Envelope & Gate?
-
Tried it.Yes, but as soon you have something that Envelope sends number to it works as it should -
I can confirm this, even though you don't see the envelope generator do anything it does go on in time and if you delete the jump actor you see the envelope generator move and trigger but with the gate off the trigger doesnt pass. I think this is a bug. The question is should the envelope generator play if the gate is off or not?
@mark?Best,
Michel -
Yea... weird hey?
It's as if the gate is sending a message back to the envelope generator to stop. -
well when the jump actor is not connected the gate actor doesn't do that.
-
Yeah, I can confirm that is does this in Windows as well.
If you connect anything to the value output of the generator the behavior no longer occurs. -
Its almost as if Izzy knows that the signals from Generator are not being used (can't be) so the display of the Generator actor is stopped (seems to run in background), maybe to save a little CPU??
-
But what about the Jump actor? @dusx
-
Why adding a receiver to Envelope makes everything OK?
-
if a tree falls in the woods, and the Gate is 'off', does it make a sound?
i experienced this recently and thought it was odd, but it didn't really have an effect on my patches. -
@Skulpture are you asking why the Jump being attached doesn't cause it to be 'visually active'? No idea.. I was just speculating :P
@dbini your right it doesn't effect patching.. but I suspect its not the intended behavior. -
@dusx yeah I was just speculating also.
I use envelopes a lot and I am trying to cast my mind back as to when this behavior started but I really can't think... -
Hi everyone -- it's not a bug, though I'm sure it seems like one. Here's what's happening.
Isadora tries to "pull" values to the output. So the first thing we must define is, _what is an output?_ The answer is: the actor at the end of the chain, regardless of whether or not that actor actively "outputs" something to the real world.In Skulpture's first example the "output" is the Jump actor. Now, when the Gate is open, everything works as expected. To be very explicit:1) Jump value asks for a value from Gate's output2) Gate sense that it is "open" -- passes request for a value to the 'in' input3) The 'in' input tells the "upstream" actors to execute; in this case, the Envelope Generator.3) Envelope Generator executes and provides an output4) The Gate's 'in' input receives the value5) Gate actor executes -- meaning does its job, and passes value from 'in' to 'output'6) Jump value receives value and triggersBut when the Gate is closed, it runs like this:1) Jump value asks for a value from Gate's output2) Gate sense that it is "closed" -- so execution stops there. No upstream actors are executed.Why is this? The point of the pull mechanism to to not execute actors that don't need to be executed. For "inexpensive" actors like the Envelope Generator, this isn't such a big deal. But consider this chain of actors:Movie Player -> Gaussian Blur -> Gate -> ProjectorHere, if the gate is off, you avoid the Gaussian Blur and any overhead of pulling the image of the movie into memory. A big savings. So that's the idea behind this mechanism.In Skulptures third example, he's deleted the Jump actor. In this case, the Gate actor becomes the output. The key to the difference now is that the value isn't being pulled through the Gate actor. The sequence of events goes like this.1) Execute Gate actor2) Gate actor tells upstream actors to execute (in this case, Envelope Generator)The flow of the "pull" is not through the Gate 'output'. Instead, we just execute the Gate actor itself, which in turns causes the upstream actors to execute. In this case, whether or not the Gate actor is open has no effect on the execution.Note that, if in Skulpture's first example, you connected a Calculator actor to the output of the Envelope Generator, the Envelope Generator would work regardless of the Gate setting. That's because both the Jump actor **and** the Calculator becomes "outputs," since they are at the end of a chain. So the execution would go like this:OUTPUT 1: Jump Actor1) Jump value asks for a value from Gate's output2) Gate sense that it is "closed" -- so execution stops there.OUTPUT 2: Calculator1) Calculator executes2) 'input 1' tells upstream actors to execute (the Envelope Generator)3) Envelope Generator provides an output4) Calculate 'input 1' receives the value5) 'input 2' tells upstream actors to execute -- there are none, so use the value show in the GUI.6) Calculator executes -- it adds 'value 1' and 'value 2' and sends the result to the output.So even when the gate is closed, the Envelope Generator executes because there are two "outputs" pulling it.Hopefully that sheds some light on the underlying mechanism.Best Wishes,Mark -
Wow I never knew Isadora could 'sense' things :) Thats quite clever.
I have a better understanding now. But I will need to read this a few times over for it to sink in.Has Isadora always worked like this? -
Graham,
I "improved" the pull mechanism at some point -- unsure where exactly it happened. But it was to make deeply nested User Actors and the like behave more efficiently.Best Wishes,Mark -
It must just be one of those things i've never realised until a few weeks ago.
It does make sense because if the end result is nothing then its a waste of resources; even more so when using 'heavy' effects such as blur, etc.Thanks for the lengthy feedback too! -
@Mark
You mentioned it in the old forum that you will implement this from version 1.3.
But what I still don't understand is why in example 2 with the closed gate and the attached jump actor, you don't see a movement in the envelope generator actor but in the background it does move, because when you open the gate you see the envelope generator not starting from beginning but exactly from that time you waited until you opened the gate.Best
Michel -
@mark
Somehow I "sensed" this behavior. That is why I attached an actor(Movie player, Calculator) to Envelope output when I played with sculpture's patch and got it working fine. And thanks for putting the explanation to my sense. -
Michel,
Are you talking about a situation where you have something like this: Enter Scene Trigger -> Env. Gen. -> Gate -> ... ? In the currently release version, this would do what you say. This is because of the inconstancies in the "pull" mechanism I've mentioned to you and the beta testers privately regarding changes in 1.3.0f27.Currently, the Enter Scene Trigger actor would "push" it's value to the Envelope Generator trigger input. It remembers the starting time -- but doesn't output anything until the Gate is opened. But because it remembers the starting time, when the gate opens it jumps to the proper time.With the updated "pull" mechanism in 1.3.0f27 this wouldn't happen, making the whole system more consistent.Best Wishes,Mark -
Ok then that's clear for me. Thanks Mark.
Best,
Michel