Hi all.
I've been trying to work through Johannes's useful tutorial on PD externals. In the signal example, English version, he says:
Optimization of the DSP-tree tries to avoid unnecessary copy-operations. Therefore it is possible, that in- and out-signal are located at the same address in the memory. In this case, the programmer has to be careful not to write into the out-signal before having read the in-signal to avoid overwriting data that is not yet saved.
http://iem.kug.ac.at/pd/externals-HOWTO/ node6.html#SECTION00065000000000000000
To me, this is a bit ambiguous (and my German officemate couldn't help with the lang-de version). Who does the optimization? Does PD optimize the DSP tree such that it creates in-place operations, and therefore the programmer must be aware of this happening? Or does it mean that the programmer has the option of optimizing the DSP tree by doing computations in place, as long as they do it carefully?
I'm sorry if I come across as pedantic about language. I'm honestly confused, and the API I'm trying to write a glue to actually encourages in-place DSP computation. So if there is a way of interfacing with PD in that way, I'd be really happy.
Thanks, adam