Thomas,
Thanks a lot! Wow, yes that seems to be the case.
Now having some mysteries solved, I can go get some sleep in comfort. Seriously, you might have just saved my life :)
While you are there, can you please tell me just a bit more?
So, I've made a cache to copy the original signal to before processing.
Because the block size may change anytime, I am malloc & freeing a cache the size of the block on each DSP cycle.
I hear that malloc is a "relatively" expensive task. Is it bad practice to run this each cycle, or is a kilobyte or two not a bid deal?
-- David Shimamoto
Hi David,
Am 14.06.2008 um 03:08 schrieb PSPunch:
===================== == PROCESS BLOCK.2 == =====================
while (n--) { // *out++ = *in++; }
Remarks: Action is commented out but signal goes through.. Why?
that's because in and out can point to the same memory... signal vectors are reused in PD for cache-friendlyness.
===================== == PROCESS BLOCK.4 == =====================
n--; *out++ = 0; while (n--) { *out++ = *in++; }
Remarks: Expecting first sample of the block to be zero and others delayed by 1 sample. Instead, I get an constant output of zero.
As above... you have to be aware that when you are writing to the output, you change the input. Either cache the input or use a different algorithm (in this case start from the end)
gr~~~