snapshot inside poly~ don't mute?

    Mar 13 2006 | 12:13 pm
    I have a poly~ with audio objects, including a snapshot~ sampling the audio
    to a float output. If the instance is muted, all audio is stopped, but
    snapshot~ keeps on outputting values. The build in snapshot function of
    number~ doesn't do this.
    snapshot~ is more efficient then number~ for sampling an audio stream, but
    this behavior makes me wonder. Is this a bug or can someone explain to me
    why it works like that?

    • Mar 13 2006 | 3:04 pm
      If it is not a bug, I sent a bug report about a year ago, but since
      it is not of a vital importance, it might not be high on the bug fix
      to-do list.
    • Mar 13 2006 | 3:59 pm
      ah, thanks for letting me know.
    • Mar 13 2006 | 4:50 pm
      When you mute an instance in a poly~ it turns off the signal
      processing, but it does not turn off the message-passing activities of
      the main and scheduler threads. The only thing snapshot~
      signal-processing code does is store the most recent value in a
      variable so that when the object is asked to output a value, either by
      a bang or the internal clock, it accessess the variable. Turning off
      the signal processing simply freezes the most recent value.
      The code for number~ is very similar except that there's a filter in
      the number output method that prevents the same number from being
      output twice in a row. In other words if the internal stored value is
      unchanged since the last output, nothing is output until a change
      There's one other very important difference between these similar
      capabilities of snapshot~ and number~: when internally clocked,
      snapshot~ outputs the data in the scheduler thread. number~ defers
      the output to the main thread.
    • Mar 13 2006 | 7:38 pm
      Hi Ben, thanks for the detailed explanation. It makes sense like that. I'll
      just put a change after snapshot. number~ is no option anyway because it
      can't go under 20ms.
      best, thijs
    • Mar 13 2006 | 7:52 pm
      Thank you for the clarification.
      ps I use a work around by stopping the snapshot manually by using the
      'stop' message
    • Mar 13 2006 | 8:04 pm
      good idea, never noticed that message.
      best, t_
    • Mar 14 2006 | 2:14 pm
      Quote: wrote on Mon, 13 March 2006 12:52
      > Thank you for the clarification.
      > pa
      > ps I use a work around by stopping the snapshot manually by using the
      > 'stop' message
      which still would not run off the signal connection
      and therefore the processing of the snapshot object. ;)
      what about multiplying that signal with 0.~ when the
      poly~ is turned off ?
    • Mar 14 2006 | 2:54 pm
      mute turns off the dsp, stop turns off the snapshot~ scheduler, what else is
      left to fix then? I don't see what *~ 0. is good for on an already muted
      signal path. maybe I misunderstand you.
    • Mar 14 2006 | 8:46 pm
      hmmm ... may i ask why you turn the poly~ off?
      you normally do that to save CPU, which will not
      happen by sending (stop) to [snapshot~].
      to disable the outlets you could use other
      things which are more simple than sending (mute 1)
      to [thispatcher] from outside the poly patcher.
      i recommended the 0.~ bc that would at least stop outputting
      numbers from snapshot.
      (well, if you have a change behind it ;) )
    • Mar 14 2006 | 10:54 pm
      I use adsr~ inside poly~ using it's automatic mute function to thispoly.
      That way the poly gets muted when a voice dies. To save my cpu, ofcourse.
      Then the snapshot inside this poly, which is sampling the audio, is
      continuing, so I use the mute flag to start/stop the snapshot with each
      voice. This not only stops the scheduler inside snapshot, but also
      eliminates the need for [change] after [snaphot].
    • Mar 15 2006 | 8:56 pm
      Roman Thilenius wrote:
      > what about multiplying that signal with 0.~ when the
      > poly~ is turned off ?
      I think you would need the pass~ object. Its sole purpose is silencing
      muted patchers.
      [][] [][][] [][] [][][]
      Stefan Tiedje
      Electronic Composition
      \ /|() ()|
      ))))) )| | |( \
      /// _/)/ )))))
      ___/ ///
      --(_|_ ----|-----|-----()----
      -- _|_)----|-----()-----------
      14, Av. Pr. Franklin Roosevelt,
      94320 Thiais, France
      Phone at CCMIX +33-1-57 42 91 09