Hello!
I am using PulseAudio with the Equalizer on (pulseaudio-equalizer-ladspa
), but everytime I play something, happens a lag of 1~2 seconds. On YouTube, for example, the video freezes for 1~2 seconds until the audio start.
This happen to Spotify and VLC too. Only happens when I am using the equalizer.
The pulseaudio process have high priority.
There is any way to reduce this lag?
Using pulseaudio, GNOME, X11, 5.15 Kernel, system up-to-date.
From your description I suspect you are using pulseaudio-equalizer
that has never been very good and PulseAudio developers have no interest in fixing it
Please fix PulseAudio equalizer (#515) · Issues · PulseAudio / pulseaudio · GitLab
I suggest you try replacing it with pulseaudio-equalizer-ladspa
that usually works much better
The problem is: I am already using pulseaudio-equalizer-ladspa
. I don’t have pulseaudio-equalizer installed here.
That was my fault, I should specified that…
I’ve been having problems with pulseaudio and pulseaudio equalizer too. I decided to just bite the bullet and switch to pipewire with easyeffects. It works much better, and if you use the manjaro-pipewire
package, the transition is pretty much flawless
Adding audio processing to the audio pipeline will add some latency, but one equalizer should not be adding 1 or 2 second delay
I suspect audio delay issues may be affecting more than just the equalizer and some of the latency is from other PulseAudio modules, but is not noticeable until equalizer is added
Check information about PulseAudio configuration for all audio cards and output sinks
pactl list sinks | grep -E 'Name|Latency'
Multiple effects packages (pulseffects-legacy
or jamesdsp-pulse
) could add more latency if a lot of the effects are turned on, but if just an equalizer is used it might have less latency than the LADSPA equalizer
For this system, audio card has about 0.25s latency and 0.25s from LADSPA
Name: alsa_output.pci-0000_04_06.0.analog-stereo
Latency: 255500 usec, configured 256000 usec
Name: ladspa_output.mbeq_1197.mbeq
Latency: 256014 usec, configured 256000 usec
JamesDSP graphic equalizer is showing about 0.09s latency
Name: JamesDSP
Latency: 9279 usec, configured 10000 usec
I am considering switch to pipewire. I have to just uninstall pulseaudio
and that’s it? My system already have pipewire
installed, but it’s running on pulseaudio.
That’s why I am thinking too.
That command didn’t work for me…
Am I doing something wrong? I just copied and paste on terminal.
Try the command without the grep filter
pactl list sinks
The command should work for PulseAudio or PipeWire
I am considering switch to pipewire. I have to just uninstall
pulseaudio
and that’s it?
If you try to uninstall PulseAudio, the package manager is likely to remove desktop audio controls needed for PipeWire
The metapackage manjaro-pipewire
can replace PulseAudio packages with PipeWire packages without removing audio controls
The output:
Destino #2
Estado: RUNNING
Nome: alsa_output.pci-0000_0a_00.3.analog-stereo
Descrição: Family 17h (Models 00h-0fh) HD Audio Controller Estéreo analógico
Driver: module-alsa-card.c
Especificação da amostragem: s16le 2ch 44100Hz
Mapa dos canais: front-left,front-right
Módulo proprietário: 26
Mudo: não
Volume: front-left: 30801 / 47% / -19,67 dB, front-right: 30801 / 47% / -19,67 dB
balanço 0,00
Volume base: 65536 / 100% / 0,00 dB
Fonte de monitoração: alsa_output.pci-0000_0a_00.3.analog-stereo.monitor
Latência: 616054 useg, 980000 useg configurado
Sinalizadores: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY
Propriedades:
alsa.resolution_bits = "16"
device.api = "alsa"
device.class = "sound"
alsa.class = "generic"
alsa.subclass = "generic-mix"
alsa.name = "ALC887-VD Analog"
alsa.id = "ALC887-VD Analog"
alsa.subdevice = "0"
alsa.subdevice_name = "subdevice #0"
alsa.device = "0"
alsa.card = "1"
alsa.card_name = "HD-Audio Generic"
alsa.long_card_name = "HD-Audio Generic at 0xf6700000 irq 81"
alsa.driver_name = "snd_hda_intel"
device.bus_path = "pci-0000:0a:00.3"
sysfs.path = "/devices/pci0000:00/0000:00:08.1/0000:0a:00.3/sound/card1"
device.bus = "pci"
device.vendor.id = "1022"
device.vendor.name = "Advanced Micro Devices, Inc. [AMD]"
device.product.id = "1457"
device.product.name = "Family 17h (Models 00h-0fh) HD Audio Controller"
device.string = "front:1"
device.buffering.buffer_size = "352768"
device.buffering.fragment_size = "176384"
device.access_mode = "mmap+timer"
device.profile.name = "analog-stereo"
device.profile.description = "Estéreo analógico"
device.description = "Family 17h (Models 00h-0fh) HD Audio Controller Estéreo analógico"
module-udev-detect.discovered = "1"
device.icon_name = "audio-card-pci"
Portas:
analog-output-lineout: Line Out (tipo: Linha, prioridade: 9000, não disponível)
analog-output-headphones: Headphones (tipo: Fones de ouvido, prioridade: 9900, disponível)
Porta ativa: analog-output-headphones
Formatos:
pcm
Destino #3
Estado: SUSPENDED
Nome: alsa_output.pci-0000_08_00.1.hdmi-stereo-extra1
Descrição: GP107GL High Definition Audio Controller Digital Stereo (HDMI 2)
Driver: module-alsa-card.c
Especificação da amostragem: s16le 2ch 44100Hz
Mapa dos canais: front-left,front-right
Módulo proprietário: 25
Mudo: não
Volume: front-left: 29212 / 45% / -21,06 dB, front-right: 29212 / 45% / -21,06 dB
balanço 0,00
Volume base: 65536 / 100% / 0,00 dB
Fonte de monitoração: alsa_output.pci-0000_08_00.1.hdmi-stereo-extra1.monitor
Latência: 0 useg, 0 useg configurado
Sinalizadores: HARDWARE DECIBEL_VOLUME LATENCY SET_FORMATS
Propriedades:
alsa.resolution_bits = "16"
device.api = "alsa"
device.class = "sound"
alsa.class = "generic"
alsa.subclass = "generic-mix"
alsa.name = "LG ULTRAWIDE"
alsa.id = "HDMI 1"
alsa.subdevice = "0"
alsa.subdevice_name = "subdevice #0"
alsa.device = "7"
alsa.card = "0"
alsa.card_name = "HDA NVidia"
alsa.long_card_name = "HDA NVidia at 0xf6080000 irq 79"
alsa.driver_name = "snd_hda_intel"
device.bus_path = "pci-0000:08:00.1"
sysfs.path = "/devices/pci0000:00/0000:00:03.1/0000:08:00.1/sound/card0"
device.bus = "pci"
device.vendor.id = "10de"
device.vendor.name = "NVIDIA Corporation"
device.product.id = "0fb9"
device.product.name = "GP107GL High Definition Audio Controller"
device.string = "hdmi:0,1"
device.buffering.buffer_size = "352768"
device.buffering.fragment_size = "176384"
device.access_mode = "mmap+timer"
device.profile.name = "hdmi-stereo-extra1"
device.profile.description = "Digital Stereo (HDMI 2)"
device.description = "GP107GL High Definition Audio Controller Digital Stereo (HDMI 2)"
module-udev-detect.discovered = "1"
device.icon_name = "audio-card-pci"
Portas:
hdmi-output-1: HDMI / DisplayPort 2 (tipo: HDMI, prioridade: 5800, disponível)
Porta ativa: hdmi-output-1
Formatos:
pcm
Destino #4
Estado: RUNNING
Nome: ladspa_output.mbeq_1197.mbeq
Descrição: LADSPA Plugin Multiband EQ on Family 17h (Models 00h-0fh) HD Audio Controller Estéreo analógico
Driver: module-ladspa-sink.c
Especificação da amostragem: float32le 2ch 44100Hz
Mapa dos canais: front-left,front-right
Módulo proprietário: 31
Mudo: não
Volume: front-left: 30801 / 47%, front-right: 30801 / 47%
balanço 0,00
Volume base: 65536 / 100%
Fonte de monitoração: ladspa_output.mbeq_1197.mbeq.monitor
Latência: 615979 useg, 980000 useg configurado
Sinalizadores: HW_MUTE_CTRL LATENCY
Propriedades:
device.master_device = "alsa_output.pci-0000_0a_00.3.analog-stereo"
device.class = "filter"
device.ladspa.module = "mbeq_1197"
device.ladspa.label = "mbeq"
device.ladspa.name = "Multiband EQ"
device.ladspa.maker = "Steve Harris <steve@plugin.org.uk>"
device.ladspa.copyright = "GPL"
device.ladspa.unique_id = "1197"
device.description = "LADSPA Plugin Multiband EQ on Family 17h (Models 00h-0fh) HD Audio Controller Estéreo analógico"
device.icon_name = "audio-card"
Formatos:
pcm
It’s in portuguese, but I believe that you can understand.
If you have any doubt, I can translate.
The latency on LADSPA is:
615979 useg, 980000 useg configurado
It’s quite high, no? Can I change this?
Any news about fix this?
I am really considering give up using PulseAudio Equalizer…
I have been testing jamesdsp-pulse for the last few days and it has much lower latency than pulseaudio-equalizer-ladspa
I would expect jamesdsp-pulse
on your system would reduce combined latency from 1200ms to 800 ms or lower
There are lots of other options for lower latency but not as simple as this
This change will at least give an indication of what level of latency would be suitable for your needs
grep filter in Portuguese should work for you to check latency
pactl list sinks | grep -E 'Nome|Latência'
Changing PulseAudio configuration to reduce latency might reduce latency further, but not as much as changing the equalizer
Hello! Here I Am again.
I installed jamesdsp-pulse
but when I selected it, no sound on P2 port. Running pactl list sinks | grep -E 'Nome|Latência'
returns:
~ pactl list sinks | grep -E 'Nome|Latência' ✔
Nome: alsa_output.pci-0000_0a_00.3.analog-stereo
Latência: 0 useg, 0 useg configurado
Nome: alsa_output.pci-0000_08_00.1.hdmi-stereo-extra1
Latência: 0 useg, 0 useg configurado
Nome: JamesDSP
Latência: 0 useg, 0 useg configurado
How to use it on P2 port?
JamesDSP should redirect audio streams through the equalizer automatically when is is launched
If not use this command to set JamesDSP as default sink for audio playback
pacmd set-default-sink JamesDSP
Audio streams can also be routed manually in PulseAudio Volume Control (pavucontrol --tab=1)
to play via JamesDSP or direct to analog or HDMI output
Audio output from JamesDSP can also be directed to analog or HDMI output
(If nothing is audible check that output from JamesDSP is not set to JamesDSP input)
The latency data in post #5 was based on default PulseAudio configuration
The latency for the alsa-output sinks can be reduced with some reconfiguration, but latency for JamesDSP remains the same
Name: alsa_output.pci-0000_04_06.0.analog-stereo
Latency: 19755 usec, configured 20000 usec
Name: JamesDSP
Latency: 9714 usec, configured 10000 usec
Latency reported for JamesDSP varies between 5-10 ms during audio playback
After following your instructions, I run pactl list sinks | grep -E 'Nome|Latência'
again and the result is:
Nome: alsa_output.pci-0000_0a_00.3.analog-stereo
Latência: 0 useg, 0 useg configurado
Nome: ladspa_output.mbeq_1197.mbeq
Latência: 0 useg, 0 useg configurado
Nome: alsa_output.pci-0000_08_00.1.hdmi-stereo-extra1
Latência: 0 useg, 0 useg configurado
Nome: JamesDSP
Latência: 0 useg, 0 useg configurado
I downloaded pavucontrol-qt
and fixed the output, and now JamesDSP it’s working.
But, when I change the equalizer, I can’t hear much difference. Maybe I am doing something wrong?
(The “Bass profile” it’s just to test)
Turn off the Passthrough option. That is to bypass all effects to hear unprocessed audio
It worked!
I liked that. Only problem: my MIC stay active all the time. But it’s a good start. Maybe I change to PipeWire in the future. For now, I am happy with JamesDSP
UPDATE: I give up JamesDSP. On every boot I need to open PavuControl to set JamesDSP output on P2 port. So, for now I am not using any equalizer
I do not understand what “P2” port is exactly
Does the Line Out port always show as (unplugged) in pavucontrol --tab=3
?
or does it change to show if audio jack is detected as (plugged in) ?
Data in post #8 shows the Active Port (Porta ativa:) analog-output-headphones is available (disponível)
But the other port analog-output-lineout is not available (não disponível)
If lineout port is not available even if a jack is plugged in I would expect PulseAudio to avoid using the port and only connect to available headphone port
It might be possible for user to command PulseAudio to use lineout port
pactl set sink port alsa_output.pci-0000_0a_00.3.analog-stereo analog-output-lineout
but PulseAudio will switch back to another port that is available
(or unknown availability if jack detection is not present or disabled)
ALSA can be reconfigured to either fix the jack detection for lineout port so it is available in PulseAudio when a jack is plugged in.
Or disable jack detection so availability is unknown
ALSA reconfiguration might be simply a matter of changing ‘Auto-Mute Mode’ to Disabled
(so lineout jack is not disabled when headphones are plugged in)
use this command to ensure Auto-Mute is disabled
amixer --card=1 sset 'Auto-Mute Mode'
Thanks! P2 it’s the headphones, basically.
This Line Out it’s from Digital Output.
I have some updates: I installed manjaro-pipewire
yesterday, and everything is okay.
I tried EasyEffects, but the equalizer need the “Linux Studio Plugins” installed on the system. I installed that (lsp-plugins
) but it installed several icons on applications menu, and the equalizer didn’t worked. But, I am liking PipeWire, seems more optimized.
Any tip for EasyEffects? Or I can keep trying JamesDSP?
If ‘P2’ is the headphone output analog-output-headphones
and ‘Line Out’ is the digital output hdmi-stereo-extra1
,
the simplest way to move audio streams from HDMI to Headphone output would be to change the Profile for GP107GL High Definition Audio Controller to Off in pavucontrol --tab=5
lsp-plugins is a large collection of audio processing plugins that creates 131 .desktop launchers, to allow use of the plugins in standalone mode without a host package (easyeffects, carla, jack_rack)
The solution of having only one launcher for all plugins keeps getting pushed back to a later version Single launcher · Issue #195 · sadko4u/lsp-plugins · GitHub
jamesdsp-pulse and jamesdsp do not require any external plugins
Hello, sorry for not responding. Busy here, and I was doing some testes.
For the last 10 days I running on PipeWire, everything ok.
I tried JamesDSP again, but I had the same problem. Now, since I am using PipeWire and not PulseAudio, how to correctly setup the audio output without pavucontrol? It is possible?
Thanks!