rw-r--r--

chown -R toon blog/ && chmod -R u=rw,go=r $_

Audient EVO 4 Pulseaudio profile

posted on 2020-05-11

Recently I bought myself an audio interface. For those not familiar with that term, it’s a USB connected device which you can use to capture sound from microphones into your computer.

During my research to find the perfect interface for me I was looking for an interface that has proper support for GNU/Linux. But it was really hard to find information about this, for almost any interface.

So I ended up buying myself an Audient EVO 4. It’s a fairly new interface, but I’ve watched several reviews, and they were are very positive. I bought it from Thomann, because they have a 30 day money back guarantee, so I had some time to figure out if it worked with my computer.

If you don’t like the story you can just skip to the solution or the review.

Plug-and-play

When the EVO 4 arrived, I plugged it in, and it worked straight out-of-the-box.

It is a really fun interface, I really enjoyed from the start. But quickly ran into an issue.

Loopback

This interface has a feature called: loopback. It allows you to not only record the sound from the microphone inputs, but also the sound comming from the computer itself. It’s designed to record singing, or whatever, together with the music that’s playing on your computer. But in my case, that gave me issues.

Audient has drivers for the EVO 4 for macOS and Windows, but not for GNU/Linux. The drivers create separate devices for each input, and also one for loopback audio. But the generic drivers on GNU/Linux only create one device: all the inputs combined. And here is where the trouble comes in. To explain, let me illustrate my setup.

                 +------+
                 |  PC  |
                 +---+--+
                     |
+------------+   +---+---+    +-----+
| headphones +---+ EVO 4 +----+ Mic |
+------------+   +-------+    +-----+

I have my microphone (obviously) and my headphones connected to the EVO 4, this allows me to mix the audio from the computer with the sound of my mic, which is nice when you’re recording or broadcasting. But sending computer audio to the EVO 4 will cause it to loop back into my mic audio. So when I use the EVO 4 during video calls with colleagues, they will hear an echo of themselves or other participants.

I contacted support, but no one could help me and they just gave me the message: “Linux is not supported”.

Luckily, I friend of mine suggested to raise my issue on an online forum, so I did.

Unfixable?

For a while I thought my problem was unfixable, because I considered the inputs were joined in hardware, and there was nothing I could do about.

But a comment from the kind user @puleglot gave me hope. I did add the following line to my ~/.config/pulse/daemon.conf:

remixing-use-all-sink-channels = no

After restarting the pulse daemon with pulseaudio --kill the loopback audio was gone. Great! But this created another issue: input 1 ended up only on the left side of the input channel, and input 2 only on the right side. So not ideal. But it gave me hope.

A lot of tinkering

@puleglot helped me out and after some back and forth I figured out the configuration for the EVO 4, you can read all about it in the forum thread I posted earlier.

The solution

Tell pulseaudio to use a custom profile, so create /etc/udev/rules.d/91-pulseaudio-custom-profiles.rules with the following content:

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"

And place this in the /etc/pulse/profile-sets/audient-evo4.conf file:

[General]
auto-profiles = yes


[Mapping mic-input]
description = Mic
device-strings = hw:%f
channel-map = mono,mono,aux1,aux1
paths-input = analog-input-mic
direction = input
priority = 1

[Mapping multichannel-input]
description = Multichannel
device-strings = hw:%f
channel-map = front-left,front-right,front-center,lfe
paths-input = multichannel-input
direction = input
priority = 2


[Mapping analog-surround-40]
description = Analog Surround 4.0
device-strings = front:%f
channel-map = front-left,front-right,front-center,lfe
paths-output = analog-output
direction = output
priority = 1


[Profile output:analog-surround-40+input:mic-input]
description = Analog Surround 4.0 Output + Mic Input
output-mappings = analog-surround-40
input-mappings = mic-input
priority = 100
skip-probe = yes

[Profile output:analog-surround-40+input:multichannel-input]
description = Analog Surround 4.0 Output + Multichannel Input
output-mappings = analog-surround-40
input-mappings = multichannel-input
priority = 60
skip-probe = yes

To apply these settings, run:

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

Now if you open up pavucontrol you’ll have different profiles available.

PulseAudio sound profiles for the EVO 4

These are pretty self-explanatory. If you only like the microphone inputs select “Mic Input”, if also like to include loopback audio select “Multichannel Input”. So now I can select the profile I want, depending on the situation.

EVO 4 review

I have this interface for a month now, and it’s really great.

The LEDs around the dial are my favorite. When you turn the knob, it shows the selected gain, and if you don’t touch it it shows the volume of the selected input/ouput. And the dial works also great to configure the monitor mix.

I haven’t used the Smart Gain that much, but the input buttons also light up red when they clip, so that also helps to set the gain correctly.

So even with 1 dial you have a lot of control.

I like you can mute the inputs, but the “hold to mute/unmute” is a bit cumbersome if you want to switch it on/off quickly.

It has a nice form factor, and with the inputs on the back, it stands nicely on my desk.

I would definitely recommend this to any beginner, it’s a great piece of hardware.

Conclusion

I would definitely recommend the Audient EVO 4, even if you’re on GNU/Linux.