bmc0 / dsp

An audio processing program with an interactive mode.
ISC License
219 stars 31 forks source link

ladspa dsp module will not load after updating to pulseaudio 12.0_1 on voidlinux, #34

Closed exaiyo closed 6 years ago

exaiyo commented 6 years ago

I updated my system and noticed that dsp was no longer working, so I checked pacmd list-modules and it is no longer there. My config hasn't changed, the sink is still the same name, but I cannot get the module to load. The following command cannot successfully load the module but I see no error message. pacmd load-module module-ladspa-sink sink_name=dsp sink_master=alsa_output.pci-0000_06_01.0.iec958-stereo plugin=ladspa_dsp label=ladspa_dsp

Reinstalling the newest version of your dsp plugin didn't help either.

Any idea what might be wrong? The one time I choose to update voidlinux without making a backup first, this happens...

Thanks, your plugin is the best!

bmc0 commented 6 years ago

Hard to say without an error message... Did you do a full rebuild (make distclean && make && make install)? You could try running pulseaudio in verbose mode:

$ pulseaudio -k
$ pulseaudio -vv
exaiyo commented 6 years ago

I had not run the command "make distclean" I was unaware of that one. Now I have run make distclean && make && make and run pulseaudio in verbose mode. It says "no such file or directory", but I do see ladspa_dsp.so in /usr/lib/ladspa with 755 permissions so I'm not sure why. Here is the relevant section.

I: [pulseaudio] module.c: Loaded "module-position-event-sounds" (index: #19; argument: ""). I: [pulseaudio] module.c: Loaded "module-filter-heuristics" (index: #20; argument: ""). I: [pulseaudio] module.c: Loaded "module-filter-apply" (index: #21; argument: ""). D: [pulseaudio] module-ladspa-sink.c: Using default input ladspa port mapping D: [pulseaudio] module-ladspa-sink.c: Using default output ladspa port mapping E: [pulseaudio] ltdl-bind-now.c: Failed to open module ladspa_dsp.so: ladspa_dsp.so: cannot open shared object file: No such file or directory E: [pulseaudio] module-ladspa-sink.c: Failed to load LADSPA plugin: file not found E: [pulseaudio] module.c: Failed to load module "module-ladspa-sink" (argument: "sink_name=dsp sink_master=alsa_output.pci-0000_06_01.0.iec958-stereo plugin=ladspa_dsp label=ladspa_dsp"): initialization failed. E: [pulseaudio] main.c: Sink dsp does not exist. D: [pulseaudio] main.c: Got org.PulseAudio1! D: [pulseaudio] main.c: Got org.pulseaudio.Server! I: [pulseaudio] main.c: Daemon startup complete. E: [pulseaudio] bluez5-util.c: GetManagedObjects() failed: org.freedesktop.DBus.Error.ServiceUnknown: The name org.bluez was not provided by any .service files D: [pulseaudio] module-udev-detect.c: /dev/snd/controlC2 is accessible: yes D: [pulseaudio] module-udev-detect.c: Resuming all sinks and sources of card alsa_card.pci-0000_01_00.1. D: [pulseaudio] module-udev-detect.c: /dev/snd/controlC1 is accessible: yes D: [pulseaudio] module-udev-detect.c: Resuming all sinks and sources of card alsa_card.pci-0000_00_1b.0.

bmc0 commented 6 years ago

Now I have run make distclean && make && make

Make sure you run make install (as root), not just make for that last command (not sure if this was a typo or not).

bmc0 commented 6 years ago

If it still doesn't work after running make install, post the output of this command: ldd /usr/lib/ladspa/ladspa_dsp.so.

exaiyo commented 6 years ago

Yes that was a typo, sorry. Here is the result of ldd:

# ldd /usr/lib/ladspa/ladspa_dsp.so linux-vdso.so.1 (0x00007ffdb85f6000) libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f576937f000) libm.so.6 => /usr/lib/libm.so.6 (0x00007f5769032000) libc.so.6 => /usr/lib/libc.so.6 (0x00007f5768c7d000) libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007f5768a66000) /lib/ld-linux-x86-64.so.2 (0x00007f576998f000)

bmc0 commented 6 years ago

Hmm... Maybe pulse just isn't looking in the right place for some reason (though it should be, according to the documentation...). Try running pulseaudio like this:

$ LADSPA_PATH="/usr/lib/ladspa" pulseaudio -vv
exaiyo commented 6 years ago

Yes that appears to have fixed the issue. Once again you are the best. Is there any way to make the change stick? In my .xinitrc file I had to add start-pulseaudio-x11 & in order to get sound working alongside firejail. I'm not sure if that is relevant.

bmc0 commented 6 years ago

Setting that environment variable shouldn't be required, so someone must've broken something. It seems to work on Arch, so maybe it's a problem with Void's package.

Anyway, you could add export LADSPA_PATH="/usr/lib/ladspa" somewhere (.xinitrc, .bash_profile, .profile, /etc/profile.d/...), then log out and log back in.

Another option is to go against the recommendations in the PulseAudio documentation and give the full plugin path in your pulseaudio configuration:

pacmd load-module module-ladspa-sink sink_name=dsp sink_master=alsa_output.pci-0000_06_01.0.iec958-stereo plugin=/usr/lib/ladspa/ladspa_dsp.so label=ladspa_dsp
bmc0 commented 6 years ago

You're welcome. Thanks for the kind words.

pit65 commented 4 years ago

Hi

For me full path can not help. Compile with ladspa 1.15 and pulseaudio 9 on Slackware distro.

I: [pulseaudio] module.c: Loaded "module-filter-heuristics" (index: #22; argument: ""). I: [pulseaudio] module.c: Loaded "module-filter-apply" (index: #23; argument: ""). E: [pulseaudio] module-ladspa-sink.c: Failed to parse module arguments. E: [pulseaudio] module.c: Failed to load module "module-ladspa-sink" (argument: "sink_name=dsp master=alsa_output.pci-0000_00_1b.0.analog-stereo plugin=ladspa_dsp label=ladspa_dsp set-default-sink dsp"): initialization failed. E: [pulseaudio] main.c: Module load failed. E: [pulseaudio] main.c: Zainicjowanie usługi się nie powiodło. I: [pulseaudio] module.c: Unloading "module-filter-apply" (index: #23). I: [pulseaudio] module.c: Unloaded "module-filter-apply" (index: #23).

Distro Slackware64