Configuring PulseAudio for Audient EVO 4

Published on

For about a month now, I’ve been using the Audient EVO 4 audio interface. One of its features is “audio loopback”, where it can capture your computer audio and send it as if it were coming from your microphone.

Unfortunately, when used with its default PulseAudio configuration on Linux, this feature is turned on by default. As a result, your peers on a video call will be hearing themselves (unless an echo-cancellation algorithm of the video call service interferes).

Toon Claes ran into the same problem and published his solution. It was a great starting point for me, but it didn’t quite work in my case, so here I am publishing a rather simpler configuration that does work for me. (Note that this configuration does not support the audio loopback feature. If needed, it can be set up directly in PulseAudio by using its loopback module.)

  1. Put the following in /etc/udev/rules.d/91-pulseaudio-custom-profiles.rules:

    SUBSYSTEM=="sound", SUBSYSTEMS=="usb", ACTION=="change", KERNEL=="card*", ENV{ID_VENDOR}=="Audient", ENV{ID_MODEL}=="EVO4", ENV{PULSE_PROFILE_SET}="/etc/pulse/profile-sets/audient-evo4.conf"
  2. Put the following in /etc/pulse/profile-sets/audient-evo4.conf:

    auto-profiles = no
    [Mapping mic-input]
    description = Mic
    device-strings = hw:%f
    channel-map = mono,mono,aux0,aux1
    paths-input = analog-input-mic
    direction = input
    priority = 1
    [Mapping stereo-output]
    description = Stereo output
    device-strings = front:%f
    channel-map = front-left,front-right,aux3,aux4
    paths-output = analog-output
    direction = output
    priority = 1
    [Profile output:stereo-output+input:mic-input]
    description = Stereo Output + Mic Input
    output-mappings = stereo-output
    input-mappings = mic-input
    priority = 100
    skip-probe = yes
  3. Put the following in ~/.config/pulse/daemon.conf:

    remixing-use-all-sink-channels = no
  4. Apply the settings:

    sudo udevadm control --reload
    sudo udevadm trigger --subsystem-match=sound
    pulseaudio --kill