I want to use the ffva example from the sdk on the xkvoice l71 development kit to create a low-latency audio loopback. My goal is to route the audio from the both the mics on the kit directly back to the DAC and j3 speaker port to monitor the input in real-time.Can you provide guidance on changes needed in the code, particularly concerning the data flow and buffer management? Are there any specific configurations or settings I should be aware of to ensure a true real-time, low-latency loopback?the FFVA example is for low-latency audio capture and playback, which is crucial for a real-time loopback so I want to change it for my need
In the future, I plan to integrate a custom Dynamic Range Compression (DRC) algorithm into this pipeline. I'm looking for advice on where to place this algorithm within the existing FFVA architecture.
Any advice on both the loopback setup and the future DSP integration would be greatly appreciated. Thanks!
Modifying FFVA for Real-time Audio Loopback
-
- Junior Member
- Posts: 4
- Joined: Wed Jul 09, 2025 6:48 am
-
Verified
- Experienced Member
- Posts: 83
- Joined: Wed Feb 17, 2016 5:10 pm
Will the monitor be headphones or a speaker? If it is a speaker you may need to incur a latency for AEC/anti howl processing.
Either way, I think you would want to start with an empty pipeline and add your DSP from there:
https://github.com/xmos/sln_voice/tree/ ... ence/empty
Another route would be to follow this app note:
https://www.xmos.com/file/an02031-live- ... d-example/
and fork: https://github.com/xmos/lib_board_support/tree/develop to add support for the L71 kit.
Cheers,
-Andrew
Either way, I think you would want to start with an empty pipeline and add your DSP from there:
https://github.com/xmos/sln_voice/tree/ ... ence/empty
Another route would be to follow this app note:
https://www.xmos.com/file/an02031-live- ... d-example/
and fork: https://github.com/xmos/lib_board_support/tree/develop to add support for the L71 kit.
Cheers,
-Andrew
-
- Junior Member
- Posts: 4
- Joined: Wed Jul 09, 2025 6:48 am
I will be using headphones mostly
-
- Junior Member
- Posts: 4
- Joined: Wed Jul 09, 2025 6:48 am
Could you please tell me the steps I need to follow
-
Verified
- Experienced Member
- Posts: 83
- Joined: Wed Feb 17, 2016 5:10 pm
Good news, it looks like there is a pending pull request for the L71 support:
https://github.com/xmos/lib_board_support/pull/31
The sound card example is here:
https://github.com/xmos/lib_board_support/pull/31
You will have to modify the application's CMakeLists.txt to point at the fork (until the PR is approved):
https://www.xmos.com/download/xcommon-c ... _3_0).pdf/ (section 7.4 gives the format, you will just modify the one line in the CMakeLists.txt in the application folder)
The only other wrinkle is getting the microphones to be the input, rather than I2S (since the multi channel board has I2S ADCs and the L71 board does not), this should just be a #define in your xua_conf.h, but you will want to make sure you know which tile the mics are on, where the mclk is coming from, etc.
https://www.xmos.com/download/xcommon-c ... _3_0).pdf/
Cheers,
-Andrew
https://github.com/xmos/lib_board_support/pull/31
The sound card example is here:
https://github.com/xmos/lib_board_support/pull/31
You will have to modify the application's CMakeLists.txt to point at the fork (until the PR is approved):
https://www.xmos.com/download/xcommon-c ... _3_0).pdf/ (section 7.4 gives the format, you will just modify the one line in the CMakeLists.txt in the application folder)
The only other wrinkle is getting the microphones to be the input, rather than I2S (since the multi channel board has I2S ADCs and the L71 board does not), this should just be a #define in your xua_conf.h, but you will want to make sure you know which tile the mics are on, where the mclk is coming from, etc.
https://www.xmos.com/download/xcommon-c ... _3_0).pdf/
Cheers,
-Andrew