wwmm / easyeffects

Limiter, compressor, convolver, equalizer and auto volume and many other plugins for PipeWire applications
GNU General Public License v3.0
6.5k stars 269 forks source link

Per-application processing is not reenabled on EasyEffects restart with WirePlumber #1467

Closed quietvoid closed 2 years ago

quietvoid commented 2 years ago

EasyEffects Version

6.2.4, easyeffects-git 6.2.4.r73.g246357a2-1

What package are you using?

AUR (easyeffects-git)

Distribution

Arch Linux

Describe the bug

Continued from https://github.com/wwmm/easyeffects/issues/1454#issuecomment-1088859751

It seems that restarting easyeffects does not reenable "Activation" for the app unless the app is restarted afterwards as well.

Reproduction steps:

This has been tested with Spotify.

Expected Behavior

The app processing should be enabled when easyeffects is restarted. I have to reenable the "Activation" checkbox every restart, or restart the audio playing app.

Debug Log

Debug Log
``` (process:217467): easyeffects-DEBUG: 12:06:05.483: easyeffects version: 6.2.4 (process:217467): easyeffects-DEBUG: 12:06:05.484: main: locale directory: /usr/share/locale (easyeffects:217467): easyeffects-DEBUG: 12:06:05.486: presets_manager: system input presets directory: "/etc/easyeffects/input"; (easyeffects:217467): easyeffects-DEBUG: 12:06:05.486: presets_manager: system input presets directory: "/etc/xdg/easyeffects/input"; (easyeffects:217467): easyeffects-DEBUG: 12:06:05.486: presets_manager: system output presets directory: "/etc/easyeffects/output"; (easyeffects:217467): easyeffects-DEBUG: 12:06:05.486: presets_manager: system output presets directory: "/etc/xdg/easyeffects/output"; (easyeffects:217467): easyeffects-DEBUG: 12:06:05.486: presets_manager: user presets directory already exists: /home/user/.config/easyeffects/ (easyeffects:217467): easyeffects-DEBUG: 12:06:05.486: presets_manager: user presets directory already exists: /home/user/.config/easyeffects/input (easyeffects:217467): easyeffects-DEBUG: 12:06:05.486: presets_manager: user presets directory already exists: /home/user/.config/easyeffects/output (easyeffects:217467): easyeffects-DEBUG: 12:06:05.486: presets_manager: user presets directory already exists: /home/user/.config/easyeffects/autoload/input (easyeffects:217467): easyeffects-DEBUG: 12:06:05.486: presets_manager: user presets directory already exists: /home/user/.config/easyeffects/autoload/output (easyeffects:217467): easyeffects-DEBUG: 12:06:05.531: pipe_manager: compiled with PipeWire: 0.3.49 (easyeffects:217467): easyeffects-DEBUG: 12:06:05.531: pipe_manager: linked to PipeWire: 0.3.49 (easyeffects:217467): easyeffects-DEBUG: 12:06:05.539: pipe_manager: core version: 0.3.49 (easyeffects:217467): easyeffects-DEBUG: 12:06:05.539: pipe_manager: core name: pipewire-0 (easyeffects:217467): easyeffects-DEBUG: 12:06:05.539: pipe_manager: found metadata: settings (easyeffects:217467): easyeffects-DEBUG: 12:06:05.539: pipe_manager: found metadata: default (easyeffects:217467): easyeffects-DEBUG: 12:06:05.539: pipe_manager: found metadata: route-settings (easyeffects:217467): easyeffects-DEBUG: 12:06:05.540: pipe_manager: Audio/Sink 45 alsa_output.usb-JDS_Labs_JDS_Labs_Atom_DAC-00.iec958-stereo with timestamp 1649174765540005171 was added (easyeffects:217467): easyeffects-DEBUG: 12:06:05.540: pipe_manager: Audio/Source 54 alsa_input.pci-0000_0d_00.4.analog-stereo with timestamp 1649174765540034992 was added (easyeffects:217467): easyeffects-DEBUG: 12:06:05.540: pipe_manager: Stream/Output/Audio 73 spotify with timestamp 1649174765540065512 was added (easyeffects:217467): easyeffects-DEBUG: 12:06:05.540: pipe_manager: spotify port 65 is connected to alsa_output.usb-JDS_Labs_JDS_Labs_Atom_DAC-00.iec958-stereo port 55 (easyeffects:217467): easyeffects-DEBUG: 12:06:05.540: pipe_manager: spotify port 62 is connected to alsa_output.usb-JDS_Labs_JDS_Labs_Atom_DAC-00.iec958-stereo port 57 (easyeffects:217467): easyeffects-DEBUG: 12:06:05.540: pipe_manager: Audio/Sink 86 easyeffects_sink with timestamp 1649174765540111192 was added (easyeffects:217467): easyeffects-DEBUG: 12:06:05.540: pipe_manager: Audio/Source/Virtual 87 easyeffects_source with timestamp 1649174765540123393 was added (easyeffects:217467): easyeffects-DEBUG: 12:06:05.540: pipe_manager: new metadata property: 0, default.configured.audio.source, Spa:String:JSON, {"name":"alsa_input.pci-0000_0d_00.4.analog-stereo"} (easyeffects:217467): easyeffects-DEBUG: 12:06:05.540: pipe_manager: new metadata property: 0, default.audio.sink, Spa:String:JSON, {"name":"alsa_output.usb-JDS_Labs_JDS_Labs_Atom_DAC-00.iec958-stereo"} (easyeffects:217467): easyeffects-DEBUG: 12:06:05.540: pipe_manager: new metadata property: 0, default.audio.source, Spa:String:JSON, {"name":"alsa_input.pci-0000_0d_00.4.analog-stereo"} (easyeffects:217467): easyeffects-DEBUG: 12:06:05.540: pipe_manager: new metadata property: 73, target.node, Spa:Id, 120 'spa_pod_is_array(pod)' failed at /usr/include/spa-0.2/spa/pod/iter.h:339 spa_pod_get_array() (easyeffects:217467): easyeffects-DEBUG: 12:06:05.541: pipe_manager: easyeffects_sink node successfully retrieved with id 86 and timestamp 1649174765540111192 (easyeffects:217467): easyeffects-DEBUG: 12:06:05.541: pipe_manager: easyeffects_source node successfully retrieved with id 87 and timestamp 1649174765540123393 (easyeffects:217467): easyeffects-WARNING **: 12:06:05.561: lv2_wrapper: Could not find the plugin: http://drobilla.net/plugins/mda/Loudness (easyeffects:217467): easyeffects-DEBUG: 12:06:05.561: soe: http://drobilla.net/plugins/mda/Loudness is not installed (easyeffects:217467): easyeffects-WARNING **: 12:06:05.561: lv2_wrapper: http://drobilla.net/plugins/mda/Loudness port symbol not found: loudness (easyeffects:217467): easyeffects-WARNING **: 12:06:05.561: lv2_wrapper: http://drobilla.net/plugins/mda/Loudness port symbol not found: output (easyeffects:217467): easyeffects-WARNING **: 12:06:05.561: lv2_wrapper: http://drobilla.net/plugins/mda/Loudness port symbol not found: link (easyeffects:217467): easyeffects-DEBUG: 12:06:05.570: lv2_wrapper: http://lsp-plug.in/plugins/lv2/sc_compressor_stereo requires feature: http://lv2plug.in/ns/ext/urid#map (easyeffects:217467): easyeffects-DEBUG: 12:06:05.587: lv2_wrapper: http://lsp-plug.in/plugins/lv2/comp_delay_x2_stereo requires feature: http://lv2plug.in/ns/ext/urid#map (easyeffects:217467): easyeffects-DEBUG: 12:06:05.613: lv2_wrapper: http://lsp-plug.in/plugins/lv2/para_equalizer_x32_lr requires feature: http://lv2plug.in/ns/ext/urid#map (easyeffects:217467): easyeffects-DEBUG: 12:06:05.650: lv2_wrapper: http://lsp-plug.in/plugins/lv2/sc_limiter_stereo requires feature: http://lv2plug.in/ns/ext/urid#map (easyeffects:217467): easyeffects-DEBUG: 12:06:05.659: lv2_wrapper: http://lsp-plug.in/plugins/lv2/loud_comp_stereo requires feature: http://lv2plug.in/ns/ext/urid#map (easyeffects:217467): easyeffects-DEBUG: 12:06:05.667: lv2_wrapper: urn:zamaudio:ZaMaximX2 requires feature: http://lv2plug.in/ns/ext/options#options (easyeffects:217467): easyeffects-DEBUG: 12:06:05.667: lv2_wrapper: urn:zamaudio:ZaMaximX2 requires feature: http://lv2plug.in/ns/ext/urid#map (easyeffects:217467): easyeffects-DEBUG: 12:06:05.681: lv2_wrapper: http://lsp-plug.in/plugins/lv2/sc_mb_compressor_stereo requires feature: http://lv2plug.in/ns/ext/urid#map (easyeffects:217467): easyeffects-DEBUG: 12:06:05.699: soe: rnnoise using the default model (easyeffects:217467): easyeffects-DEBUG: 12:06:05.710: soe: output_level successfully connected to PipeWire graph (easyeffects:217467): easyeffects-DEBUG: 12:06:05.711: soe: spectrum successfully connected to PipeWire graph (easyeffects:217467): easyeffects-DEBUG: 12:06:05.712: soe: equalizer successfully connected to PipeWire graph (easyeffects:217467): easyeffects-WARNING **: 12:06:05.729: lv2_wrapper: Could not find the plugin: http://drobilla.net/plugins/mda/Loudness (easyeffects:217467): easyeffects-DEBUG: 12:06:05.729: sie: http://drobilla.net/plugins/mda/Loudness is not installed (easyeffects:217467): easyeffects-WARNING **: 12:06:05.729: lv2_wrapper: http://drobilla.net/plugins/mda/Loudness port symbol not found: loudness (easyeffects:217467): easyeffects-WARNING **: 12:06:05.729: lv2_wrapper: http://drobilla.net/plugins/mda/Loudness port symbol not found: output (easyeffects:217467): easyeffects-WARNING **: 12:06:05.729: lv2_wrapper: http://drobilla.net/plugins/mda/Loudness port symbol not found: link (easyeffects:217467): easyeffects-DEBUG: 12:06:05.738: lv2_wrapper: http://lsp-plug.in/plugins/lv2/sc_compressor_stereo requires feature: http://lv2plug.in/ns/ext/urid#map (easyeffects:217467): easyeffects-DEBUG: 12:06:05.755: lv2_wrapper: http://lsp-plug.in/plugins/lv2/comp_delay_x2_stereo requires feature: http://lv2plug.in/ns/ext/urid#map (easyeffects:217467): easyeffects-DEBUG: 12:06:05.781: lv2_wrapper: http://lsp-plug.in/plugins/lv2/para_equalizer_x32_lr requires feature: http://lv2plug.in/ns/ext/urid#map (easyeffects:217467): easyeffects-DEBUG: 12:06:05.819: lv2_wrapper: http://lsp-plug.in/plugins/lv2/sc_limiter_stereo requires feature: http://lv2plug.in/ns/ext/urid#map (easyeffects:217467): easyeffects-DEBUG: 12:06:05.827: lv2_wrapper: http://lsp-plug.in/plugins/lv2/loud_comp_stereo requires feature: http://lv2plug.in/ns/ext/urid#map (easyeffects:217467): easyeffects-DEBUG: 12:06:05.835: lv2_wrapper: urn:zamaudio:ZaMaximX2 requires feature: http://lv2plug.in/ns/ext/options#options (easyeffects:217467): easyeffects-DEBUG: 12:06:05.835: lv2_wrapper: urn:zamaudio:ZaMaximX2 requires feature: http://lv2plug.in/ns/ext/urid#map (easyeffects:217467): easyeffects-DEBUG: 12:06:05.848: lv2_wrapper: http://lsp-plug.in/plugins/lv2/sc_mb_compressor_stereo requires feature: http://lv2plug.in/ns/ext/urid#map (easyeffects:217467): easyeffects-DEBUG: 12:06:05.867: sie: rnnoise using the default model (easyeffects:217467): easyeffects-DEBUG: 12:06:05.877: sie: output_level successfully connected to PipeWire graph (easyeffects:217467): easyeffects-DEBUG: 12:06:05.878: sie: spectrum successfully connected to PipeWire graph (easyeffects:217467): easyeffects-DEBUG: 12:06:05.879: sie: rnnoise successfully connected to PipeWire graph easyeffects-INFO: 12:06:05.917: application: disabling global bypass (easyeffects:217467): easyeffects-DEBUG: 12:06:05.933: application_ui: Icon Theme Adwaita detected (easyeffects:217467): easyeffects-DEBUG: 12:06:06.042: rnnoise_box: model directory already exists: /home/user/.config/easyeffects/rnnoise (easyeffects:217467): easyeffects-DEBUG: 12:06:06.083: new default output device: alsa_output.usb-JDS_Labs_JDS_Labs_Atom_DAC-00.iec958-stereo (easyeffects:217467): easyeffects-DEBUG: 12:06:06.083: presets_manager: autoloading preset HD58X Oratory1990 Harman for device alsa_output.usb-JDS_Labs_JDS_Labs_Atom_DAC-00.iec958-stereo (easyeffects:217467): easyeffects-DEBUG: 12:06:06.084: presets_manager: loaded preset: /home/user/.config/easyeffects/output/HD58X Oratory1990 Harman.json (easyeffects:217467): easyeffects-DEBUG: 12:06:06.087: new default input device: alsa_input.pci-0000_0d_00.4.analog-stereo (easyeffects:217467): easyeffects-DEBUG: 12:06:06.089: application: device alsa_card.usb-JDS_Labs_JDS_Labs_Atom_DAC-00 has changed its output route to: iec958-stereo-output (easyeffects:217467): easyeffects-DEBUG: 12:06:06.090: presets_manager: autoloading preset HD58X Oratory1990 Harman for device alsa_output.usb-JDS_Labs_JDS_Labs_Atom_DAC-00.iec958-stereo (easyeffects:217467): easyeffects-DEBUG: 12:06:06.090: presets_manager: loaded preset: /home/user/.config/easyeffects/output/HD58X Oratory1990 Harman.json (easyeffects:217467): easyeffects-DEBUG: 12:06:06.090: application: device alsa_card.pci-0000_0d_00.4 has changed its input route to: analog-input-rear-mic 'spa_pod_is_array(pod)' failed at /usr/include/spa-0.2/spa/pod/iter.h:339 spa_pod_get_array() 'spa_pod_is_array(pod)' failed at /usr/include/spa-0.2/spa/pod/iter.h:339 spa_pod_get_array() (easyeffects:217467): easyeffects-DEBUG: 12:06:08.998: soe: equalizer latency: 0.128000 s (easyeffects:217467): easyeffects-DEBUG: 12:06:08.999: soe: pipeline latency: 128.000000 ms (easyeffects:217467): easyeffects-DEBUG: 12:06:08.999: soe: output_level: new PipeWire blocksize: 2048 (easyeffects:217467): easyeffects-DEBUG: 12:06:16.071: soe: No app linked to our device wants to play. Unlinking our filters. (easyeffects:217467): easyeffects-DEBUG: 12:06:16.073: sie: No app linked to our device wants to play. Unlinking our filters. 'spa_pod_is_array(pod)' failed at /usr/include/spa-0.2/spa/pod/iter.h:339 spa_pod_get_array() 'spa_pod_is_array(pod)' failed at /usr/include/spa-0.2/spa/pod/iter.h:339 spa_pod_get_array() 'spa_pod_is_array(pod)' failed at /usr/include/spa-0.2/spa/pod/iter.h:339 spa_pod_get_array() (easyeffects:217467): easyeffects-DEBUG: 12:06:34.824: pipe_manager: new metadata property: 73, target.node, Spa:Id, 86 (easyeffects:217467): easyeffects-DEBUG: 12:06:34.824: pipe_manager: new metadata property: 73, target.object, Spa:Id, 1513 (easyeffects:217467): easyeffects-DEBUG: 12:06:34.824: pipe_manager: spotify port 65 is connected to easyeffects_sink port 97 (easyeffects:217467): easyeffects-DEBUG: 12:06:34.824: pipe_manager: spotify port 62 is connected to easyeffects_sink port 128 (easyeffects:217467): easyeffects-DEBUG: 12:06:34.826: soe: At least one app linked to our device wants to play. Linking our filters. 'spa_pod_is_array(pod)' failed at /usr/include/spa-0.2/spa/pod/iter.h:339 spa_pod_get_array() (easyeffects:217467): easyeffects-DEBUG: 12:06:51.072: soe: No app linked to our device wants to play. Unlinking our filters. (easyeffects:217467): easyeffects-DEBUG: 12:07:00.131: application_ui: disposed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.133: app_info: spotify disposed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.133: app_info: spotify finalized (easyeffects:217467): easyeffects-DEBUG: 12:07:00.133: app_info: data struct destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.141: presets_menu: disposed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.141: presets_menu: data struct destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.141: presets_menu: finalized (easyeffects:217467): easyeffects-DEBUG: 12:07:00.141: effects_box: disposed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.141: chart_box: data struct destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.141: chart_box: finalized (easyeffects:217467): easyeffects-DEBUG: 12:07:00.141: blocklist_menu: disposed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.141: blocklist_menu: data struct destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.141: blocklist_menu: finalized (easyeffects:217467): easyeffects-DEBUG: 12:07:00.142: apps_box: disposed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.142: node holder: 73, spotify finalized (easyeffects:217467): easyeffects-DEBUG: 12:07:00.142: apps_box: data struct destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.142: apps_box: finalized (easyeffects:217467): easyeffects-DEBUG: 12:07:00.142: plugins_box: disposed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.142: equalizer_box: disposed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.143: equalizer_band_box: index: 0 disposed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.144: equalizer_band_box: data struct destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.144: equalizer_band_box: finalized (easyeffects:217467): easyeffects-DEBUG: 12:07:00.144: equalizer_band_box: index: 1 disposed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.145: equalizer_band_box: data struct destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.145: equalizer_band_box: finalized (easyeffects:217467): easyeffects-DEBUG: 12:07:00.145: equalizer_band_box: index: 2 disposed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.145: equalizer_band_box: data struct destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.145: equalizer_band_box: finalized (easyeffects:217467): easyeffects-DEBUG: 12:07:00.145: equalizer_band_box: index: 3 disposed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.146: equalizer_band_box: data struct destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.146: equalizer_band_box: finalized (easyeffects:217467): easyeffects-DEBUG: 12:07:00.146: equalizer_band_box: index: 4 disposed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.147: equalizer_band_box: data struct destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.147: equalizer_band_box: finalized (easyeffects:217467): easyeffects-DEBUG: 12:07:00.147: equalizer_band_box: index: 5 disposed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.148: equalizer_band_box: data struct destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.148: equalizer_band_box: finalized (easyeffects:217467): easyeffects-DEBUG: 12:07:00.148: equalizer_band_box: index: 6 disposed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.148: equalizer_band_box: data struct destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.148: equalizer_band_box: finalized (easyeffects:217467): easyeffects-DEBUG: 12:07:00.148: equalizer_band_box: index: 7 disposed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.149: equalizer_band_box: data struct destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.149: equalizer_band_box: finalized (easyeffects:217467): easyeffects-DEBUG: 12:07:00.149: equalizer_box: data struct destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.149: equalizer_box: finalized (easyeffects:217467): easyeffects-DEBUG: 12:07:00.149: plugins_menu: disposed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.149: plugins_menu: data struct destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.149: plugins_menu: finalized (easyeffects:217467): easyeffects-DEBUG: 12:07:00.149: plugins_box: data struct destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.149: plugins_box: finalized (easyeffects:217467): easyeffects-DEBUG: 12:07:00.150: effects_box: data struct destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.150: effects_box: finalized (easyeffects:217467): easyeffects-DEBUG: 12:07:00.150: effects_box: disposed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.150: chart_box: data struct destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.150: chart_box: finalized (easyeffects:217467): easyeffects-DEBUG: 12:07:00.150: blocklist_menu: disposed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.150: blocklist_menu: data struct destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.150: blocklist_menu: finalized (easyeffects:217467): easyeffects-DEBUG: 12:07:00.150: apps_box: disposed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.150: apps_box: data struct destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.150: apps_box: finalized (easyeffects:217467): easyeffects-DEBUG: 12:07:00.150: plugins_box: disposed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.150: rnnoise_box: disposed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.151: rnnoise_box: data struct destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.151: rnnoise_box: finalized (easyeffects:217467): easyeffects-DEBUG: 12:07:00.151: plugins_menu: disposed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.151: plugins_menu: data struct destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.151: plugins_menu: finalized (easyeffects:217467): easyeffects-DEBUG: 12:07:00.151: plugins_box: data struct destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.151: plugins_box: finalized (easyeffects:217467): easyeffects-DEBUG: 12:07:00.151: effects_box: data struct destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.151: effects_box: finalized (easyeffects:217467): easyeffects-DEBUG: 12:07:00.151: pipe_manager_box: disposed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.153: node holder: 54, alsa_input.pci-0000_0d_00.4.analog-stereo finalized (easyeffects:217467): easyeffects-DEBUG: 12:07:00.153: presets autoloading holder: alsa_output.usb-JDS_Labs_JDS_Labs_Atom_DAC-00.iec958-stereo, HD58X Oratory1990 Harman finalized (easyeffects:217467): easyeffects-DEBUG: 12:07:00.153: node holder: 45, alsa_output.usb-JDS_Labs_JDS_Labs_Atom_DAC-00.iec958-stereo finalized (easyeffects:217467): easyeffects-DEBUG: 12:07:00.153: pipe_manager_box: data struct destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.153: test signals: destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.154: pipe_manager_box: finalized (easyeffects:217467): easyeffects-DEBUG: 12:07:00.154: application_ui: data struct destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.154: application_ui: finalized (easyeffects:217467): easyeffects-DEBUG: 12:07:00.154: presets_manager: destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.154: sie: destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.154: effects_base: destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.154: sie: stereo_tools destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.155: sie: rnnoise destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.155: sie: reverb destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.156: sie: pitch destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.156: sie: multiband_gate destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.157: sie: multiband_compressor destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.159: sie: maximizer destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.160: sie: loudness destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.160: sie: limiter destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.161: sie: gate destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.162: sie: filter destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.163: sie: exciter destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.168: sie: equalizer destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.170: sie: echo_canceller destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.170: sie: delay destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.171: sie: deesser destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.172: sie: crystalizer destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.172: sie: crossfeed destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.172: sie: convolver destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.172: sie: compressor destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.173: sie: bass_loudness destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.174: sie: bass_enhancer destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.175: sie: autogain destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.176: sie: spectrum destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.176: sie: output_level destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.176: soe: destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.176: effects_base: destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.176: soe: stereo_tools destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.177: soe: rnnoise destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.177: soe: reverb destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.178: soe: pitch destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.178: soe: multiband_gate destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.179: soe: multiband_compressor destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.180: soe: maximizer destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.181: soe: loudness destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.182: soe: limiter destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.183: soe: gate destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.184: soe: filter destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.185: soe: exciter destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.186: soe: equalizer destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.188: soe: echo_canceller destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.188: soe: delay destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.189: soe: deesser destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.190: soe: crystalizer destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.190: soe: crossfeed destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.190: soe: convolver destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.190: soe: compressor destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.191: soe: bass_loudness destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.192: soe: bass_enhancer destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.193: soe: autogain destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.193: soe: spectrum destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.193: soe: output_level destroyed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.193: pipe_manager: Destroying PipeWire registry... (easyeffects:217467): easyeffects-DEBUG: 12:07:00.193: pipe_manager: Disconnecting PipeWire core... (easyeffects:217467): easyeffects-DEBUG: 12:07:00.193: pipe_manager: Audio/Sink alsa_output.usb-JDS_Labs_JDS_Labs_Atom_DAC-00.iec958-stereo was removed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.198: pipe_manager: Audio/Source alsa_input.pci-0000_0d_00.4.analog-stereo was removed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.198: pipe_manager: Stream/Output/Audio spotify was removed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.198: pipe_manager: Audio/Sink easyeffects_sink was removed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.198: pipe_manager: Audio/Source/Virtual easyeffects_source was removed (easyeffects:217467): easyeffects-DEBUG: 12:07:00.198: pipe_manager: Stopping PipeWire's loop... (easyeffects:217467): easyeffects-DEBUG: 12:07:00.199: pipe_manager: Destroying PipeWire's context... (easyeffects:217467): easyeffects-DEBUG: 12:07:00.199: pipe_manager: Destroying PipeWire's loop... (easyeffects:217467): easyeffects-DEBUG: 12:07:00.199: application: shutting down... (easyeffects:217467): easyeffects-DEBUG: 12:07:00.199: Exitting the main function with status: 0 ```

Additional Information

The log is for the easyeffects restart while Spotify is still open. There are messages about unlinking filters. I waited a bit before restarting Spotify, where we see the linking works again.

I also notice that in the restart, Spotify is already in the app list even when not playing.

wwmm commented 2 years ago

'spa_pod_is_array(pod)' failed at /usr/include/spa-0.2/spa/pod/iter.h:339 spa_pod_get_array()

I do not know if this is the source of the problem. But it should not be happening. I do not have this error here on my computer. Something is going wrong while talking to PipeWire. Maybe the package you are using has not been recompiled after a major PipeWire upgrade. It is hard to say... The error message by itself does not tell much...

quietvoid commented 2 years ago

I don't really know where that error is coming from, but it's been there for a while now. I'll have to look into it.

wwmm commented 2 years ago

Does the error message happen only when WirePlumber is used?

quietvoid commented 2 years ago

I don't think so. It was a mention before: https://github.com/wwmm/easyeffects/issues/1310#issuecomment-1004411848 I recently switched to WirePlumber a couple days ago.

wwmm commented 2 years ago

Ok. Just in case try to remove ~/.local/state/wireplumber/ and reboot. As the problem only happens with wireplumber maybe something in its state cache is corrupted.

quietvoid commented 2 years ago

Clearing WirePlumber's state did not help.

I tried reinstalling pipewire-media-session and the processing is always activated properly. The spa_pod_get_array error is present using both, and it usually happens on playback start in Spotify.

quietvoid commented 2 years ago

I think this has something to do with fallback devices again. If I remove my DAC from being default, EasyEffects Sink takes the default and then reenabling the processing works.

Though this creates the problem that now all outputs are processed by default.

wwmm commented 2 years ago

EasyEffects Sink takes the default and then reenabling the processing works. Though this creates the problem that now all outputs are processed by default.

Do you have Process All Outputs enabled or disabled?

wwmm commented 2 years ago

Do you have Process All Outputs enabled or disabled?

When this setting is disabled It will be up to the media session manager to move the stream to the last used used sink/source. I do not know what parameters it considers when taking this decision.

quietvoid commented 2 years ago

Do you have Process All Outputs enabled or disabled?

The option is disabled. Enabling it also fixes the reactivation on restart, but I don't want to process all outputs.

wwmm commented 2 years ago

Enabling it also fixes the reactivation on restart, but I don't want to process all outputs.

Ok. I think now I understand the situation. WirePlumber and the built-in session manager have different heuristics when it comes to "last used sink/source" restoration. This is something that is out of my control. Pulseaudio has the same feature but it was never clear why sometimes it did not restore the stream to a given device.

Depending on the applications you use a workaround would be to keep Process All Outputs enabled and adding some applications to the blocklist. How well this will work will depend on the applications and on how you use them.

quietvoid commented 2 years ago

Alright. I think I'll just switch to processing everything.

Though if WirePlumber is meant to be a drop-in replacement for pipewire-media-session, changes in behaviour should probably be brought up at their repo.

Thanks!

wwmm commented 2 years ago

Though if WirePlumber is meant to be a drop-in replacement for pipewire-media-session, changes in behaviour should probably be brought up at their repo.

Yes. It is not clear to me if this difference in behavior is intended or just a bug. So it is a good idea to report to them.

quietvoid commented 2 years ago

In fact, the workaround of adding exclusions does not work either.

If I restart, the apps are not excluded anymore but they are not activated either. And after a second restart, they get activated.

wwmm commented 2 years ago

All that the blocklist does is forbidding EasyEffects from trying applying effects to the given stream. The media session manager and third party tools like Pavucontrol still can move the stream to our virtual device.

I think that wireplumber is doing something really weird. But I do not understand why I do not see this on my computer. It is not the kind of behavior I would expect to depend on the hardware.

quietvoid commented 2 years ago

I tried it on my laptop and it's the same, so I don't know why it would only affect me. It was a fresh WirePlumber install.

wwmm commented 2 years ago

If I restart, the apps are not excluded anymore

Something crossed my mind now. Do you have an autoloading profile enabled? For some reasons the blocklist is saved in the profile. So if you have an autoloading profile enabled and the profile has the wrong blocklist or an empty one the exclusion won't work any more after restarting EasyEffects.

wwmm commented 2 years ago

I don't know why it would only affect me.

I am doing some tests with Process All Outputs disabled. I have it enabled all the time. With it disabled I can see WirePlumber does not restore streams to the EasyEffects sink. So this is something that is probably happening to all WirePlumber users.

wwmm commented 2 years ago

As I always have Process All Outputs enabled I had effects applied because EasyEffects was moving the streams to its devices.

quietvoid commented 2 years ago

For some reasons the blocklist is saved in the profile. So if you have an autoloading profile enabled and the profile has the wrong blocklist or an empty one the exclusion won't work any more after restarting EasyEffects.

I do autoload a preset. I wasn't aware the block list is saved in the preset.

wwmm commented 2 years ago

I wasn't aware the block list is saved in the preset.

It was a tough call. But handling the cases where it is useful to have different blocklists for each device without saving it to the presets file was not easy.

Fortunately it is easy to edit the presets file in a text editor and setting the blocklist to the proper value. In each file you will see something like

"blocklist": [],