Skip to content

Feature Request: FPGA-based audio mixing engine with assignable DSP insert points #68

@bung69

Description

@bung69

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions