Forums > Dev

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 !


June 1, 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 :

http://cycling74.com/forums/topic.php?id=37349

- 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


June 3, 2012 | 6:23 pm

Hi,
I found a trick :

Attachments:
  1. pg.ghostnoise.c

June 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


Viewing 4 posts - 1 through 4 (of 4 total)