What is the best way to split audio processing into multiple

If you have a simple question and just want an answer.
sonicemotion
New User
Posts: 3
Joined: Mon Jan 11, 2016 11:37 am

What is the best way to split audio processing into multiple

Post by sonicemotion »

I am currently evaluating if it is possible to run an existing audio algorithm on a XU2xx device. Most probably it will require more than 100 MIPS, so I will need to split the processing into different tasks. The structure of the algorithm is basically a chain of audio processing blocks

The following two options come to my mind:
  1. Split audio processing blocks into parallel tasks on multiple cores. For example a multi channel EQ.
  2. Process an audio block in one core and pass the output to the next core for processing the second block when ready and so on.
I favour option one, because I would not need to make a lot of changes to the structure of the current codebase. I fear however, that there will be a some overhead if I try to parallelize tasks at such a low level.

From what I understand option two is better alligned to the design principles for xmos, but It means that I would need to restructure my codebase. I would also introduce an audio delay for every additional core I add to the chain.

Are both options possible to implement? Which one would you recommend to go for?

User avatar
infiniteimprobability
Verified
XCore Legend
Posts: 1164
Joined: Thu May 27, 2010 10:08 am

Post by infiniteimprobability »

Moved to the forum as this is not really a one liner answer and is more of a discussion..

http://www.xcore.com/forum/viewtopic.ph ... 444#p20444

Engineer at XMOS