A few questions

hi,
I’m used to programming plugins and haven’t worked with DSP chips before. I’m excited about the OWL since I’d love to port some things I’ve made to hardware. I have a few questions:

  • how much of the 192kb ram in the basic version will be available for patches?
  • will audio be processed with a fixed block size?
  • what kinds of algorithms are realistically possible on the chip? Do you know for instance, roughly how many linear-interpolated table-lookup oscillators it might run?

cheers!

oli

www.olilarkin.co.uk

Hi oli, good to find you here!

I can’t give exact answers to your questions because the code is not yet finalised, but I’ll try to give an indication -
The chip we are looking at is the STM32F4 ARM Cortex M4 which has three separate memory regions, totalling 192kB SRAM. Almost all of the general purpose SRAM, which is 112kB, will be available for patches, and some of the CCM can be used for buffers.

We’d like to reach the external memory push target, which opens up much greater possibilities for delay lines and long verbs.

Block size is likely to be configurable, as is the sampling frequency.
As for performance, the example we use is a 7-band EQ which can be implemented in 299 cycles per sample, and the processor is capable of more than 3500 cycles per sample at 48kHz. The Cortex M4 can do many complex instructions like Multiply and Accumulate, and 32bit floating point, in single cycles, and has SIMD support which makes it possible to do two 16-bit instructions in one cycle. It’s a very nice little chip!

hth,

Martin

hi,

i would like to write a patch that contains a compressor, delay, reverb and a 6db lowpass. Something like a combination patch with parts/snippets from the existing patch library. Could that be done with the OWL and the external memory in terms of cpu cycles?

cheers,

stiwi

We’re working on a benchmarking system, which uses the DWT cycle count registers on the ARM chip to get very accurate results. With this you can simply measure the CPU cycles of the patches you want to combine to get an idea of if it will work.
Reverbs require a fair bit of MCU power, but the other effects you mention can be done very efficiently, so the combination should be possible.
Oh and you know you can combine two patches in series / parallel modes, right?

Sounds great. A benchmarking system would be a great to optimize critical parts in the code. Series / parallel modes? No, i have no clue! What is that? I am just starting to get all the facts together.

At the moment, the pushbutton is used to switch between two active patches: red slot and green slot. The patches can be configured in Dual mode (only one running at a time, mono or stereo), Series (green then red, mono or stereo) or Parallel (green on left, red on right channels).
We’re working on defining a fourth mode, Single, which frees up the pushbutton to be used by the patch itself. This will include an updated API giving access to the button state.