Sample level processing using OWL pedal?

Hi !

Looking in to the to OWL pedal (and what follows) I wonder if processing is possible at sample level of the OWL pedal? In the Patch library there is an example of a sample-based patch (called “ResonantFilterPatch”) showing the use of processSample(…) derived from processBuffer(…) indicating it should be possible.

I am a Gen~ user wanting to implement some differential functions (depending on one and two samples delays). Very much in the style of the above mentioned patch. Since Gen~ can do sample-level processing I wonder if OWL can too?

Any clarification would be of great help in deciding if I should buy an OWL pedal.

All the best Hans Peter

Hello Hans Peter,

The OWL (and Alchemist et al) have an adjustable blocksize, between 2 and 1024 samples.
Having said that, regardless of blocksize you can still of course do sample-by-sample processing.

So when you run a Gen~ patch on the OWL the processing is sample-based, regardless of blocksize. The blocksize then sets how frequently the control inputs (knobs et c) are sampled, and determines the latency.

In your application, does the differential function depend on audio feedback loops at all? As in a physical feedback loop, from the audio output back to the audio input? The inherent latency in the ADC might affect this (from around 900uS with blocksize of 2).

Hi Martin!

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) + dtv(n-1);
v(n) = v(n-1) - dt
omega*u(n);
end

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