I am glad to hear the sample-level processing is possible! That opens many interesting doors …
The relation you describe when running a gen~ patch sound entirely like what I need! So to be sure: I don’t need to take special care when running gen~ patches to create special functions that loop over the block buffer (like in the ResonanatFilterPatch)? It is taken care of by the OWL?
Concerning physical feedback :
In the first place I intend to explore feedback internally on a sample-to-sample basis. I want to built functions around an iteration scheme like this one (where dt will equal one sample) :
omega = 4;
dt = 0.01;
N_t = 60;
for n = 2:N_t
u(n) = u(n-1) + dt*v(n-1);
v(n) = v(n-1) - dt*omega*u(n);
And then expand omega with various more elaborate linear and nonlinear functions. And possible more delay terms.
A physical feedback latency at 900uS at 44.1kHz sampling rate is around 40 samples latency which will make the above function difficult to bring into oscillation. However I am considering it to come into the picture at some point (for auto-evolving controls).
PS. with a block size of 2 I could probably also write a function that kept track of the previous block, picking out the necessary previous and before-previous samples ...
Thanks for quick response!
All the best Hans Peter