Stopping the DSP from inside an external

    May 31 2012 | 8:31 am
    Hi everyone,
    I'm trying to make my MSP external stop the DSP (and after some stuff start it again). I know of the canvas_stop_dsp() and canvas_start_dsp() functions, but the behaviour for canvas_stop_dsp is odd : it just doesn't work.
    I tried calling canvas_stop_dsp() inside a very simple patcher, with my external, and a ezadc~ connected to a ezdac~. The color of the ezdac/ezdca changes back to inactive, but the sound is still there, proof that the DSP hasn't really stopped
    While this method doesn't work, I tried sending a message directly to the Max application (using a message box with "; dsp stop"), and this works appropriately.
    Does anyone know if it's possible to send a message directly to the Max app from inside an external ? (a bit like with object_method(void *x, t_symbol *s), but with the Max app instead of an object)
    Thanks for the help !

    • Jun 01 2012 | 9:52 am
      Anybody has an idea ? The functions in the Max SDK have an odd behaviour : canvas_start_dsp() works fine, but canvas_stop_dsp() is buggy. It's actually the same problem as the one brought up in this thread :
      - which is why I'm trying to find a way to get around this problem, maybe by sending directly to Max a ";dsp stop" message from my external
    • Jun 03 2012 | 6:23 pm
      Hi, I found a trick :
    • Jun 18 2012 | 4:32 pm
      FYI, to do the same thing as ;dsp stop from C code, you can do this:
      object_method(gensym("dsp")->s_thing, gensym("stop"));
      best, Tim