On Sun, May 25, 2014 at 10:28 PM, Jonathan Wilkes jancsika@yahoo.comwrote:
What's your setup routine for the external look like?
void tabPowSine_tilde_setup(void) { // Initialize the class tabPowSine_class = class_new(gensym("tabPowSine~"), (t_newmethod)tabPowSine_new, (t_method)tabPowSine_free, sizeof(t_tabPowSine), 0, A_GIMME, 0);
// Specify signal input, with automatic float to signal conversion
CLASS_MAINSIGNALIN(tabPowSine_class, t_tabPowSine, x_f);
// Bind the DSP method, which is called when the DACs are turned on
class_addmethod(tabPowSine_class, (t_method)tabPowSine_dsp,
gensym("dsp"), A_CANT, 0);
// Print authorship to Pd window
post("powSine~: Sinewave oscillator raised to a power\n external by
Alexandros Drymonitis"); }
Lyon's book explaing what A_GIMME does, but not A_CANT. I checked m_pd.h a bit but didn't make much out of it. It is there where the problem lies?
-Jonathan
On Sunday, May 25, 2014 2:14 PM, Alexandros Drymonitis adrcki@gmail.com wrote:
I'm building an external (my very first one) and it's working as expected, only the arguments I type when I create it are not passed and the variables set to get values from these arguments are set to zero.
The new instance routine prototype is this: void *tabPowSine_new(t_symbol *s, short argc, t_atom argv)
and in this routine I type the following two lines: if(argc >= 1) { x->x_frequency = atom_getfloatarg(0, argc, argv); } if(argc >= 2) { x->x_power = atom_getfloatarg(1, argc, argv); }
but if I create an object like this [tabPowSine~ 220 0.5], the variables x_frequency and x_power (declared in the object structure) won't get these values. As soon as I send a signal or float to the respective inlet, everything works fine.
Also, I get a warning when I type "make" in the terminal, to make the Pd object, which is: tabPowSine~.c:60:32: warning: unused parameter 's' [-Wunused-parameter]
Can I just ommint the t_symbol *s? I'm following Eric Lyon's book for writing externals, and he's passing this symbol pointer (it is a symbol pointer, right?) to the new instance routine...
Final question, so that I don't send three different emails, is it preferable to use a table lookup cosine oscillator than using the cos function in the perform routine? Is there significant difference in the CPU consumption?
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list