Live Pro-Audio Mixing? Mixing? Reverb? USB HID? Ethernet/Wireless Control?

Technical discussions around xCORE processors (e.g. General Purpose (L/G), xCORE-USB, xCORE-Analog, xCORE-XA).
JayShoe
Junior Member
Posts: 4
Joined: Fri Jan 05, 2018 1:04 am

Live Pro-Audio Mixing? Mixing? Reverb? USB HID? Ethernet/Wireless Control?

Postby JayShoe » Fri Feb 09, 2018 12:26 am

Hello,

I know a lot of the professional audio companies are using SHARC processors to do the heavy lifting in live pro-audio mixing decks. What's the capability of an XMOS processor to perform live mixing tasks? If I need an XMOS+SHARC wi would look at the Danville Signal solutions (XMOS + SHARC), but if I can get away with XMOS only I would look at something like the miniDSP USBStreamer Kit (16 core XMOS only). So, how would an XMOS handle the tasks independently? Are there libraries that would make this easier?

Latency?
You'll have multiple ADC channels running into the XMOS via I2S. I know the throughput is rated at 3ms, an engineer I spoke with measured around 2ms from record to playback. What's the expected latency for mixing multiple channels? Is there any example code out there for mixing the channels? From what I've read, we need the latency to be less than 7ms to deem acceptable, but we strive for much better. What can we expect?

Reverb?
Say you take X number of those said channels, mix them, and then add a simple reverberation effect to the mix. Can the XMOS handle this? Again, are there any available shared code to make a simple reverb work?

USB HID?
We need to control the DSP via USB. Is there any example code out there that would make this easy for us? I've seen solutions that run over HID, MIDI, or most popularly TCP/IP.

Graphical Environment?
Some of the DSP's use Audio Weaver, Sigma Studio, or some graphical programming solution to make it easier to program the DSP. What's the possibility of the XMOS to host Audio Weaver by itself without a SHARC?

Thanks for the info,
Jay
User avatar
infiniteimprobability
XCore Expert
Posts: 961
Joined: Thu May 27, 2010 10:08 am

Postby infiniteimprobability » Thu Feb 15, 2018 9:24 am

Latency?
... What can we expect?


The normal architecture for DSP is to add a processing core which introduces a one-sample delay. The USB audio design is sample by sample (rather block) on the device end so there is no block delay. Mixing is just a dot product and you can approach 2 cycles per product for really efficient implementations (this is the limit) on newer devices (xcore 200).
There is an example mixer in the USB Audio reference design (free to download and that offers the following using 2 x 50MHz cores which was written for XS1: "The mixer takes two cores and can perform eight mixes with up to 18 inputs at sample rates up to 96kHz and two mixes with up to 18 inputs at higher sample rates."
So I don't anticipate a mixer to be adding any significant latency.

Reverb?
Can the XMOS handle this? Again, are there any available shared code to make a simple reverb work?


The xCORE is a pretty good fixed point DSP, amongst other things. We do a huge amount of audio DSP in voice applications for example.
There are various examples around of reverb including: https://www.xmos.com/published/xmos-xso ... on=&page=3


USB HID?

With or with USB audio?
Without - https://www.xmos.com/support/appnotes/AN00129
With - https://www.xmos.com/support/software/uac2
TCP is also no problem - see various lib_xtcp examples

Graphical Environment?
Some of the DSP's use Audio Weaver, Sigma Studio, or some graphical programming solution to make it easier to program the DSP. What's the possibility of the XMOS to host Audio Weaver by itself without a SHARC?


I am afraid not presently. While there are graphical tools for debug (scope view, waveform view..) DSP design is done via C source. We use Python and for exploring DSP before C implementation, as well as for generating coefficients etc.

Who is online

Users browsing this forum: No registered users and 11 guests