Le 25/02/2016 18:09, Alexandre Torres Porres a écrit :
2016-02-25 13:57 GMT-03:00 martin brinkmann <mnb@martin-brinkmann.de mailto:mnb@martin-brinkmann.de>:
if you want feedback in a complex patch, (like these virtual-virtual-modular-systems) the only thing you can do is to reblock everything to 1, which is not always possible (due to high cpu load, conflicting blocksizes, whatever).
This was addressed only to me, let me reply to the list.
I never needed to do it in a super complex patch, but anyway, what you're saying is not true. Here's how you can do it.
Have your crazy complex patch running around all over the place.
Now, for your feedback loop, you need to create a subpatch to "send it".
Make it [pd fb_send]
in it, create a short delay line, give it a cool name like $0-fb, use [block~ 1].
then, for your feedback receive, have another subpatch [pd fb_receive]. In it, use [delread~ $0-fb 0].
voilá...
check my self frequency modulating oscillator patch attached
your patch did not work with 1 sample delay. to test : remove the block~ 1 object, and the sound did not change.
put everything in a subpatch, add a block~ 1 object, and the sound change (and get better)
There are 2 problem in you patch : nothing force the writer to be computed before the reader. you can add a dummy audio connection between writer and reader to force execution order of the 2 subpatch. see miller exemple G05.
But the main problem is that the osc run with 64 block size. there is no way to have less than 64 sample delay between osc frequency in and osc output.
In order to have feedback in a very complex patch, you need to block~ everything to 1.
cheers c
cheers
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list