FAST FPGA Audio Processor Prototype

January 2022 Milestone

Our current prototype of the FAST FPGA Audio Processor can reach a latency inferior to 10us thanks to the use of high-end audio codecs such as the ADAU1787. A major breakthrough since the previous version is our ability to use DDR memory on the board, allowing us to run DSP algorithms with large memory footprints such as echos, reverbs, etc.

A PCB has been developed to create a wide range of hardware interfaces to control the DSP running on the processor.

July 2021 Milestone

The FAST FPGA audio processor is currently being developed as part of the FAST project. It provides a round-trip audio latency inferior to 80us. It also hosts an Analog to Digital Converter (ADC) for sensors offering a "control-to-sound" latency inferior to 100us.

It is based on a Digilent Zybo Z7 board hosting a Xilinx Zynq 7000 FPGA that is used for audio processing. The FAST FPGA audio processor is fully programmable with the Faust programming language at high level through USB.

For reference, here's the Faust program used in the above demo video:

import("stdfaust.lib");
oscFreq = hslider("oscFreq",80,50,5000,0.01);
lfoFreq = hslider("lfoFreq",1,0.01,50,0.01);
lfoRange = hslider("lfoRange",1000,10,5000,0.01);
oscGain = hslider("oscGain",0.5,0,1,0.01);
noiseGain = hslider("noiseGain",0,0,1,0.01);
LFO = os.lf_triangle(lfoFreq)*0.5 + 0.5;
process = os.sawtooth(oscFreq)*oscGain + no.noise*noiseGain : fi.resonlp(LFO*lfoRange+50,5,1);

(you can try it directly in your Web browser in the Faust Web IDE).

Next steps involve:

  • improving the performances of the system to run large Faust programs,
  • adding more audio inputs and outputs (we're currently aiming at 32x32),
  • use this system for active control.

DSC00011