assurance-tunnel
assurance-tunnel
assurance-tunnel
assurance-tunnel

Envelope & Gate?


  • Tech Staff

    Is this something I have just never noticed before or maybe a bug?

    **[BELOW]** - Click trigger envelope and it works as expected. No problems.

    **[BELOW]** Gate is turned on; now when you click trigger envelope nothing happens, but if you turn off the gate the envelope generator does run (as in the values do go up and its running 'behind the scenes')
    ![](http://troikatronix.com/troikatronixforum/uploads/FileUpload/3b/7a6f2e-screen-shot-2013-01-23-at-13.42.50.png)
    **[BELOW]** Then interestingly if the gate is still **OFF** but I remove the Jump actor and click trigger envelope it runs.... but obviously the gate doesn't allow the trigger through. Any ideas?

    abaaf4-screen-shot-2013-01-23-at-13.42.43.png 7a6f2e-screen-shot-2013-01-23-at-13.42.50.png 959129-screen-shot-2013-01-23-at-13.42.58.png


  • Tech Staff

    Here is my patch....

    EDIT: Patch is wrong I attached wrong one (but can't delete it?!)

    51784c-envalope-gate.izz



  • @Skulpture

    Tried it.
    Yes, but as soon you have something that Envelope sends number to it works as it should

    f8a0dd-envalope-gate-fix.izz


  • Tech Staff

    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


  • Tech Staff

    Yea... weird hey? 

    It's as if the gate is sending a message back to the envelope generator to stop.

  • Tech Staff

    well when the jump actor is not connected the gate actor doesn't do that.


  • Tech Staff

    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.


  • Tech Staff

    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??


  • Tech Staff

    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.

  • Tech Staff

    @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.


  • Tech Staff

    @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 output
    2) Gate sense that it is "open" -- passes request for a value to the 'in' input
    3) The 'in' input tells the "upstream" actors to execute; in this case, the Envelope Generator.
    3) Envelope Generator executes and provides an output
    4) The Gate's 'in' input receives the value
    5) Gate actor executes -- meaning does its job, and passes value from 'in' to 'output' 
    6) Jump value receives value and triggers
    But when the Gate is closed, it runs like this:
    1) Jump value asks for a value from Gate's output
    2) 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 -> Projector
    Here, 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 actor
    2) 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 Actor
    1) Jump value asks for a value from Gate's output
    2) Gate sense that it is "closed" -- so execution stops there.
    OUTPUT 2: Calculator
    1) Calculator executes
    2) 'input 1' tells upstream actors to execute (the Envelope Generator)
    3) Envelope Generator provides an output
    4) Calculate 'input 1' receives the value
    5) '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

  • Tech Staff

    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

  • Tech Staff

    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!

  • Tech Staff

    @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

Log in to reply
 

Looks like your connection to TroikaTronix Community Forum was lost, please wait while we try to reconnect.