[PD] So far so failed on my part
Thomas Grill
t.grill at gmx.net
Tue Aug 19 00:24:19 CEST 2003
Hi Wade,
a few very superficial remarks from my side (i'm in a hurry....).
1) I don't use straight PD code because of exactly the problems you have.
2) I use flext.
3) As far as i remember (and deducing from flext internal code) i see the
following points
> //why do I have 6 outlets defined here but 7 show up on the sphere~ object
box?
The reason is that for a signal object the leftmost signal inlet is
implicit. It's always there.
In sphere_tilde_perform:
> //no inclusion? what happens to w[0]?
Miller knows it.
> t_sphere_tilde *ref = (t_sphere_tilde *)(w[1]);
> t_sample *in1 = (t_sample *)(w[2]); //centerx
> t_sample *in2 = (t_sample *)(w[3]); //centery
> t_sample *in3 = (t_sample *)(w[4]); //centerz
> t_sample *in4 = (t_sample *)(w[5]); //radius
> t_sample *in5 = (t_sample *)(w[6]); //conrolx
> t_sample *in6 = (t_sample *)(w[7]); //conroly
> t_sample *in7 = (t_sample *)(w[8]); //conrolz
> t_sample *out = (t_sample *)(w[9]); //outlet
> int n = (int)(w[10]);//number of samples in block
Look good.
Apart from that you should possibly clean up the code a bit..... one running
index would probably be more clear and efficient than incrementing each
pointer individually.
> void sphere_tilde_dsp(t_sphere_tilde *ref, t_signal **sp)
>{
> dsp_add(sphere_tilde_perform, 10, ref,
> sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec,
sp[4]->s_vec, sp[5]->s_vec, sp[6]->s_vec, sp[0]->s_n);
>}
You announce that you are passing 10 arguments here, while you are passing
only 9!! Hence, you should pass another sp[7]->s_vec.
Remember that you have 7 inbound and 1 outbound signals.
> //optional question: what happens if I want to have an optional
> //number of defaults within the object box?
> //e.g. [sphere~ centerx centery centerz radius]
This won't work if your centerx, centery, centerz , radius are passed in as
signals. Signals can't have a default value defined inside the external.
Probably you don't need signals for these values? Will simple float messages
do it as well?
best greetings,
Thomas
More information about the Pd-list
mailing list