[PD] [PD-dev] What goes on during dsp ticks?
Charles Henry
czhenry at gmail.com
Sun Jun 15 09:02:15 CEST 2008
On Sat, Jun 14, 2008 at 10:20 PM, PSPunch <shima at pspunch.com> wrote:
>
> Hi, Charles,
>
>
> I think it is just the matter of WHERE the code goes.
>
> My understanding (as for now) is that the method registered with
> gensym("dsp") is called,
> >> anytime when either the block size or sample rate changes or when the
> >> signal graph is rebuilt.
>
> so that running this check,
>
> > if (x->n != n)
> > x->is_new_or_resized=1;
>
> may be redundant if it is in the DSP chain (typically
> classname_tilde_perform) compared to including it in the call back
> function. (typically classname_tilder_dsp).
ok, I get it now. cool
There's the dsp routine and the perform routine separately. Makes a
lot of sense to me, now.
>
> Someone please correct me if I am wrong.
>
> --
> David Shimamoto
>
>
>
>> On Sat, Jun 14, 2008 at 5:15 PM, Thomas Grill <gr at grrrr.org> wrote:
>>> Am 14.06.2008 um 18:37 schrieb PSPunch:
>>
>>> That's definitely bad practice.
>>> Instead of that you can do the allocation in the "dsp" callback, that's
>>> where you add your dsp processing to the signal chain. This callback will be
>>> called anytime when either the block size or sample rate changes or when the
>>> signal graph is rebuilt.
>>
>> What is the dsp callback? This is new to me, too.
>>
>> I had a different approach when it comes to building static arrays
>> that depend on block size. I used three variables in the struct,
>> x->n, x->array_pointer, and x->is_new_or_resized
>>
>> Then, example use in perform routine:
>>
>> if (x->n != n)
>> x->is_new_or_resized=1;
>> if (x->is_new_or_resized)
>> {
>> x->is_new_or_resized=0;
>> if (x->array_pointer != NULL)
>> free(x->array_pointer);
>> malloc(x->array_pointer, n);
>> x->n=n;
>> }
>>
>> So, you can see the problem. It would be useful to know another way.
>>
>> Chuck
>>
>>> gr~~~
>>>
>>>
>>> _______________________________________________
>>> Pd-list at iem.at mailing list
>>> UNSUBSCRIBE and account-management ->
>>> http://lists.puredata.info/listinfo/pd-list
>>>
>>>
>>
>> _______________________________________________
>> Pd-list at iem.at mailing list
>> UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
>>
>
>
> _______________________________________________
> Pd-dev mailing list
> Pd-dev at iem.at
> http://lists.puredata.info/listinfo/pd-dev
>
More information about the Pd-list
mailing list