gate - zero or no data?

    May 23 2017 | 11:04 am
    How can i stop closed gate outputs in gen~ from sending a constant zero and instead send no data/value at all?
    Thank you for any insights!

    • May 23 2017 | 1:06 pm
      hay großer,
      i think it does not differ from msp; you cant send nothing (read:disconnect) with sample accuracy.
    • May 24 2017 | 11:38 am
      Hey Roman, i thought so/ich dachte mir das schon.
      So instead of distributing values through a gate that offers different kinds of sub-processing on it's outlets i had put the sub-processing first and then just used a selector to pick the one desired.
      However, that kind of method seems a total waste of cpu resources.
      As i am programming for a Cortex M4 those worries are real. Hmm.
    • May 24 2017 | 6:08 pm
      not sure what you are doing, but in case you dont want to use a sinal of zeros for "nothing" because you need the "0"for something else already (for example for "false"), try using an offset for -1 or +1 for this kind of operation. for signals this is often your only chance.
      p.s. after i broke my arm 2 weeks ago this is the first sentence i am able to type with two hands again :)
    • May 24 2017 | 6:16 pm
      ach so: subcircuit. afaik that is not possible at all in gen.
      check if you have the option to use separate gen patchers. eventually can also combine some parts of these different sub-processings.
    • May 25 2017 | 7:40 am
      i think if you want to "stop" an audio signal process to save cpu you need to put different sub-processes of your patch into different poly~ objects and send a mute message to the poly~ that houses the process you want to halt
    • May 26 2017 | 6:58 pm
      Thanx, yes, i know that, but the Cortex processor (in Hoxton Owl) takes only the code inside one single gen~ object to work with.
    • Jun 05 2017 | 10:48 am
      The only way to suppress audio processing entirely within a single gen~ patcher is to use codebox if() statements.
      But if your branches are simple, it might be better for the CPU to compute both paths and use selector. (Sometimes the unpredictability of the if() condition is more expensive than the computation within the branches. Modern CPUs don't like unpredictability...)
    • Jun 05 2017 | 3:40 pm
      Thank you again, Graham, i ended up doing exactly that (branch out before, then use selector). I think, that aCortex M4 is reasonably modern, however 168MHz aren't exactly fast and onboard extra RAM is only 1MB, so i am still wondering, if functions could only be called, when they are needed.