Audio silent with volume under 25%

Hello guys.
I recently switched from EndeavourOS back to Manjaro and noticed strange bug, both on EOS and Manjaro (but EOS forum is blegh, so I didn’t bother then).
Basically, if I lower my volume under 25% in Audio Settings or Audio Widget, the sound is completly muted. Just like volume was 0%. As soon as I move to 25% volume it starts playing. Is there a way to offset volume control for particular output device? Like always add 20% to current volume, but show it correctly?

Then

  1. post /etc/pulse/daemon.conf
  2. the output of alsamixer on console

Alsamixer (note, this happens only on USB headphones)

/etc/pulse/daemon.conf

# This file is part of PulseAudio.
#
# PulseAudio is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# PulseAudio is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.

## Configuration file for the PulseAudio daemon. See pulse-daemon.conf(5) for
## more information. Default values are commented out.  Use either ; or # for
## commenting.

; daemonize = no
; fail = yes
; allow-module-loading = yes
; allow-exit = yes
; use-pid-file = yes
; system-instance = no
; local-server-type = user
; enable-shm = yes
; enable-memfd = yes
; shm-size-bytes = 0 # setting this 0 will use the system-default, usually 64 MiB
; lock-memory = no
; cpu-limit = no

; high-priority = yes
; nice-level = -11

; realtime-scheduling = yes
; realtime-priority = 5

; exit-idle-time = 20
; scache-idle-time = 20

; dl-search-path = (depends on architecture)

; load-default-script-file = yes
; default-script-file = /etc/pulse/default.pa

; log-target = auto
; log-level = notice
; log-meta = no
; log-time = no
; log-backtrace = 0

; resample-method = speex-float-1
; avoid-resampling = false
; enable-remixing = yes
; remixing-use-all-sink-channels = yes
; remixing-produce-lfe = no
; remixing-consume-lfe = no
; lfe-crossover-freq = 0

; flat-volumes = no

; rescue-streams = yes

; rlimit-fsize = -1
; rlimit-data = -1
; rlimit-stack = -1
; rlimit-core = -1
; rlimit-as = -1
; rlimit-rss = -1
; rlimit-nproc = -1
; rlimit-nofile = 256
; rlimit-memlock = -1
; rlimit-locks = -1
; rlimit-sigpending = -1
; rlimit-msgqueue = -1
; rlimit-nice = 31
; rlimit-rtprio = 9
; rlimit-rttime = 200000

; default-sample-format = s16le
; default-sample-rate = 44100
; alternate-sample-rate = 48000
; default-sample-channels = 2
; default-channel-map = front-left,front-right

; default-fragments = 4
; default-fragment-size-msec = 25

; enable-deferred-volume = yes
; deferred-volume-safety-margin-usec = 8000
; deferred-volume-extra-delay-usec = 0
  1. You should setup pulseaudio correctly:
; default-sample-format = s16le
; default-sample-rate = 44100
; alternate-sample-rate = 48000
; default-sample-channels = 2
; default-channel-map = front-left,front-right

to

default-sample-format = s24le
default-sample-rate = 96000
alternate-sample-rate = 48000
default-sample-channels = 2
default-channel-map = front-left,front-right

Alsamixer screenshot is only showing virtual audio control for PulseAudio output

Use this command to find the ALSA card number for the USB

cat /proc/asound/devices

(Card 0 is usually HDMI output and Onboard Audio is Card 1, so USB device is most likely to be card 2 )

Use this command with the correct card number to get information about ALSA settings for the USB Headset in text format

amixer --card=2
Simple mixer control 'Speaker',0
  Capabilities: pvolume pswitch pswitch-joined
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 37
  Mono:
  Front Left: Playback 10 [27%] [-27.00dB] [on]
  Front Right: Playback 10 [27%] [-27.00dB] [on]
Simple mixer control 'Mic',0
  Capabilities: pvolume pvolume-joined cvolume cvolume-joined pswitch pswitch-joined cswitch cswitch-joined
  Playback channels: Mono
  Capture channels: Mono
  Limits: Playback 0 - 31 Capture 0 - 35
  Mono: Playback 16 [52%] [-7.00dB] [off] Capture 20 [57%] [8.00dB] [on]
Simple mixer control 'Auto Gain Control',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]

Audio control for output to speaker ALSA is only set to 27%

Try increasing the level and check if the GUI level control has a better volume range

amixer --card=2 sset 'Speaker' 50%

It might also help to turn off auto gain control

amixer --card=2 sset 'Auto Gain Control' mute

Sadly, doesn’t help.

amixer --card=2 sset 'Speaker' 50%

Just set my volume temporarly to 50%. GUI still shows 20% when no sound is played

I expected audio ‘silence’ threshold to reduce to 10% if ALSA level was doubled

Observing audio level meter, does audio level appear to stop abruptly at 20% or does it show a low level of inaudible audio?
(The Auto Gain Control might have a noise gate to cut all sound below 20%)

As soon as I drop the audio slider below 25% the audio completly shuts off. It’s just muted. Funny enough, it’s only happening with USB headset, bluetooth speaker works fine.