-
-
Notifications
You must be signed in to change notification settings - Fork 6
Description
Feature Request: FPGA-based audio mixing engine with assignable DSP insert points
Assuming sufficient FPGA resources are available, would it be worth considering moving the core audio mixing into the FPGA, with the SHARC DSPs used as assignable insert processors rather than handling the primary mix?
Mixing in the FPGA
Rather than routing audio to the SHARCs for mixing, the FPGA could handle coefficient-weighted summing directly, with the SHARCs reserved for insert processing on an as-needed basis. This would potentially allow mixing of significantly more than the 40 channels currently possible within the SHARC architecture, while keeping latency minimal for the main mix path. Channels routed through DSP insert processing would incur additional latency, so automatic latency compensation may need to be considered as part of this architecture.
Digico take a similar approach with their consoles, and notably allow the session configuration itself to be changed by reprogramming the FPGA — allowing different combinations of mono and stereo inputs and buses up to the limit of the available FPGA resources. A similar reconfigurable architecture here could allow the user to trade off, for example, a larger number of mono channels against a smaller stereo bus count, or vice versa, depending on the requirements of the session. - AFAIK Digico dont bother with any latancy compensation.
Assignable insert points
Rather than fixed SHARC send/return paths, insert points could be assignable from multiple sources:
- SHARC DSP (as now) for onboard processing
- Expansion card slot — for example Waves SoundGrid integration
- Analog I/O — for hardware outboard processing
This would make the insert architecture flexible enough to suit studio, live, and broadcast workflows without hardcoding assumptions about where processing lives.
Questions for the community
- Has anyone looked in to the current FPGA resource utilisation to know how much headroom exists for a mix engine?
- Could the hardware support dynamic session reconfiguration, rather than maintaining a large library of pre-compiled bitstreams?
Happy to discuss further — this may be out of scope for the current phase of the project but feels worth raising sooner rather than later.
Thanks