Pulseaudio and module-equalizer-sink YOCTO recipe

Dear community,
I am trying to integrate the software equalizer from pulseaudio package into my system.
We are now using BSP 7.1.0 with pulseaudio following the indications of this post.
I have included the following lines in local.conf

IMAGE_INSTALL:append = " pulseaudio-module-equalizer-sink"

When generating the image I get the following error message.

…/pulseaudio-17.0/meson.build:635:11: ERROR: Dependency “fftw3f” not found, tried pkgconfig

I have looked at the file pulseaudio.inc and modified the following line

EXTRA_OEMESON += “-Dfftw=enabled”.

Still I can’t manage to generate the image without errors.
Any suggestions?
Thanks to all of you for your collaboration.
Julián

Hi, I’m the Toradex AI Assistant. The Toradex Support team will follow up with you shortly!

Did you like my answer?

:+1: :-1:


Hello Julián,

To address the issue you’re encountering with integrating the PulseAudio equalizer into your Yocto-based system, please follow these steps:

  1. Install FFTW3 Development Package: Ensure that the FFTW3 development package is included in your Yocto build environment. You can do this by adding the following line to your local.conf:

    IMAGE_INSTALL:append = " fftw3"
    
  2. Verify pkgconfig Setup: Check that the pkgconfig for FFTW3 is correctly set up. Make sure the fftw3f.pc file is present in your PKG_CONFIG_PATH. This file is essential for the build system to locate the FFTW3 library.

  3. Modify pulseaudio.inc: Confirm that your modification to enable FFTW in pulseaudio.inc is correct. The line should be:

    EXTRA_OEMESON += "-Dfftw=enabled"
    

    Ensure there are no syntax errors and that this change is applied during the build process.

  4. Clean and Rebuild: After making these changes, perform a clean build of the PulseAudio package to ensure all configurations are applied correctly. Use the following commands:

    bitbake -c clean pulseaudio
    bitbake pulseaudio
    

By following these steps, you should be able to resolve the dependency issue and successfully generate the image with the PulseAudio equalizer.

Best regards,
Toradex AI Assistant

Please, also check if these links can help you solve your problem:

https://community.nxp.com/t5/i-MX-Processors/imx6qsabresd-Linux-camera-interface/m-p/437640/highlight/true

Pulseaudio and module-echo-cancel YOCTO recipe.

Dear @ToradexAI ,
Many thanks for the information but I can’t find the fftw3 dependency.

Missing or unbuildable dependency chain was: [‘tdx-reference-multimedia-image’, ‘fftw3’]

Best regards,
Julián

Hello @jbruno,

If you manually set EXTRA_OEMESON += "-Dfftw=enabled", you also need to add the fftw dependency to the pulseaudio recipe, in pulseaudio.inc:

-DEPENDS = "m4-native libatomic-ops libsndfile1 libtool"
+DEPENDS = "m4-native libatomic-ops libsndfile1 libtool fftw"

Best Regards,
Bruno

Dear @bruno.tx ,
Thank you very much for your response. With this configuration you suggest I have managed to get the equalizer working. I leave here some steps in case someone needs to try it.
First initialize the pulseaudio server, define the source and sink, and then load the modules.

pulseaudio --start
pactl set-default-sink alsa_output.hw_0_0
pactl set-default-source alsa_input.hw_0_0
pactl load-module module-dbus-protocol
pactl load-module module-equalizer-sink

Once this is done, list the sinks and look for the index that corresponds to the “module-equalizer-sink” driver.
pacmd list-sinks

With that index set the default sink
pactl set-default-sink X

Finally run this script to set the filter for the two channels.
python3 pulse-set-eq.py X 2 1.0 100 0.0 500 1.0 800 0.0

pulse-set-eq.py (2.5 KB)

Best regards,
Julián

1 Like

Hello @jbruno,

Thanks for the update and for sharing your example!

Best Regards,
Bruno