wwmm / easyeffects

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

Switching output devices causes EasyEffects to not output any sort of audio. #2459

Closed TermoZour closed 1 month ago

TermoZour commented 1 year ago

EasyEffects Version

7.0.5

What package are you using?

Flatpak (Flathub)

Distribution

Pop!_OS 22.04 LTS

Describe the bug

When I start EasyEffects on a given output device, EasyEffects works correctly. As soon as I switch the output device either through an extension or the Settings, the EQ shows no output and no audio can be heard. Switching back to previous output device does not solve the problem.

I tried disabling loading of a preset for a given device and just have 1 preset with an Autogain so I have some effects going through EasyEffects. The issue still occurs.

Closing EasyEffects (Shutdown on window closing) makes audio work again as well as switching between output devices.

Expected Behavior

EasyEffects should continue to output audio, automatically loading the preset for a given device as needed.

Debug Log

Debug Log (no autoloading of preset)
``` (process:2): easyeffects-DEBUG: 17:37:41.488: easyeffects.cpp:35 easyeffects version: 7.0.5 (process:2): easyeffects-DEBUG: 17:37:41.488: easyeffects.cpp:45 locale directory: /app/share/locale (easyeffects:2): easyeffects-DEBUG: 17:37:41.493: presets_manager.cpp:49 system input presets directory: "/app/etc/xdg/easyeffects/input"; (easyeffects:2): easyeffects-DEBUG: 17:37:41.493: presets_manager.cpp:49 system input presets directory: "/etc/easyeffects/input"; (easyeffects:2): easyeffects-DEBUG: 17:37:41.493: presets_manager.cpp:49 system input presets directory: "/etc/xdg/easyeffects/input"; (easyeffects:2): easyeffects-DEBUG: 17:37:41.493: presets_manager.cpp:52 system output presets directory: "/app/etc/xdg/easyeffects/output"; (easyeffects:2): easyeffects-DEBUG: 17:37:41.493: presets_manager.cpp:52 system output presets directory: "/etc/easyeffects/output"; (easyeffects:2): easyeffects-DEBUG: 17:37:41.493: presets_manager.cpp:52 system output presets directory: "/etc/xdg/easyeffects/output"; (easyeffects:2): easyeffects-DEBUG: 17:37:41.493: presets_manager.cpp:194 user presets directory already exists: /home/termozour/.var/app/com.github.wwmm.easyeffects/config/easyeffects/ (easyeffects:2): easyeffects-DEBUG: 17:37:41.493: presets_manager.cpp:194 user presets directory already exists: /home/termozour/.var/app/com.github.wwmm.easyeffects/config/easyeffects/input (easyeffects:2): easyeffects-DEBUG: 17:37:41.493: presets_manager.cpp:194 user presets directory already exists: /home/termozour/.var/app/com.github.wwmm.easyeffects/config/easyeffects/output (easyeffects:2): easyeffects-DEBUG: 17:37:41.493: presets_manager.cpp:194 user presets directory already exists: /home/termozour/.var/app/com.github.wwmm.easyeffects/config/easyeffects/autoload/input (easyeffects:2): easyeffects-DEBUG: 17:37:41.493: presets_manager.cpp:194 user presets directory already exists: /home/termozour/.var/app/com.github.wwmm.easyeffects/config/easyeffects/autoload/output (easyeffects:2): easyeffects-DEBUG: 17:37:41.552: pipe_manager.cpp:1429 compiled with PipeWire: 0.3.69 (easyeffects:2): easyeffects-DEBUG: 17:37:41.552: pipe_manager.cpp:1430 linked to PipeWire: 0.3.69 (easyeffects:2): easyeffects-DEBUG: 17:37:41.560: pipe_manager.cpp:1400 core version: 0.3.74 (easyeffects:2): easyeffects-DEBUG: 17:37:41.560: pipe_manager.cpp:1401 core name: pipewire-0 (easyeffects:2): easyeffects-DEBUG: 17:37:41.561: pipe_manager.cpp:1312 found metadata: settings (easyeffects:2): easyeffects-DEBUG: 17:37:41.561: pipe_manager.cpp:1312 found metadata: default (easyeffects:2): easyeffects-DEBUG: 17:37:41.561: pipe_manager.cpp:1312 found metadata: route-settings (easyeffects:2): easyeffects-DEBUG: 17:37:41.561: pipe_manager.cpp:1167 Audio/Sink 32 alsa_output.usb-Razer_Razer_Nari_Ultimate-00.analog-game with serial 49 has been added (easyeffects:2): easyeffects-DEBUG: 17:37:41.561: pipe_manager.cpp:1167 Audio/Source 40 alsa_input.usb-Razer_Razer_Nari_Ultimate-00.analog-chat with serial 50 has been added (easyeffects:2): easyeffects-DEBUG: 17:37:41.561: pipe_manager.cpp:1167 Stream/Output/Audio 72 spotify with serial 527 has been added (easyeffects:2): easyeffects-DEBUG: 17:37:41.561: pipe_manager.cpp:1167 Audio/Sink 109 alsa_output.pci-0000_00_1f.3.hdmi-stereo with serial 1655 has been added (easyeffects:2): easyeffects-DEBUG: 17:37:41.561: pipe_manager.cpp:1167 Audio/Source 46 alsa_input.pci-0000_00_1f.3.analog-stereo.10 with serial 1656 has been added (easyeffects:2): easyeffects-DEBUG: 17:37:41.561: pipe_manager.cpp:1207 spotify port 71 is connected to alsa_output.pci-0000_00_1f.3.hdmi-stereo port 49 (easyeffects:2): easyeffects-DEBUG: 17:37:41.561: pipe_manager.cpp:1207 spotify port 77 is connected to alsa_output.pci-0000_00_1f.3.hdmi-stereo port 39 (easyeffects:2): easyeffects-DEBUG: 17:37:41.561: pipe_manager.cpp:1167 Audio/Sink 81 easyeffects_sink with serial 2026 has been added (easyeffects:2): easyeffects-DEBUG: 17:37:41.561: pipe_manager.cpp:1167 Audio/Source/Virtual 80 easyeffects_source with serial 2027 has been added (easyeffects:2): easyeffects-DEBUG: 17:37:41.561: pipe_manager.cpp:900 new metadata property: 0, default.configured.audio.sink, Spa:String:JSON, { "name": "alsa_output.pci-0000_00_1f.3.hdmi-stereo" } (easyeffects:2): easyeffects-DEBUG: 17:37:41.561: pipe_manager.cpp:900 new metadata property: 0, default.configured.audio.source, Spa:String:JSON, {"name":"alsa_input.usb-Razer_Razer_Nari_Ultimate-00.analog-chat"} (easyeffects:2): easyeffects-DEBUG: 17:37:41.561: pipe_manager.cpp:900 new metadata property: 0, default.audio.sink, Spa:String:JSON, {"name":"alsa_output.pci-0000_00_1f.3.hdmi-stereo"} (easyeffects:2): easyeffects-DEBUG: 17:37:41.561: pipe_manager.cpp:900 new metadata property: 0, default.audio.source, Spa:String:JSON, {"name":"alsa_input.usb-Razer_Razer_Nari_Ultimate-00.analog-chat"} (easyeffects:2): easyeffects-DEBUG: 17:37:41.561: pipe_manager.cpp:900 new metadata property: 72, target.node, Spa:Id, 76 (easyeffects:2): easyeffects-DEBUG: 17:37:41.561: pipe_manager.cpp:900 new metadata property: 72, target.object, Spa:Id, 1668 (easyeffects:2): easyeffects-DEBUG: 17:37:41.562: pipe_manager.cpp:1524 easyeffects_sink node successfully retrieved with id 81 and serial 2026 (easyeffects:2): easyeffects-DEBUG: 17:37:41.562: pipe_manager.cpp:1529 easyeffects_source node successfully retrieved with id 80 and serial 2027 (easyeffects:2): easyeffects-DEBUG: 17:37:41.566: plugin_base.cpp:370 soe: output_level successfully connected to PipeWire graph (easyeffects:2): easyeffects-DEBUG: 17:37:41.567: plugin_base.cpp:370 soe: spectrum successfully connected to PipeWire graph (easyeffects:2): easyeffects-DEBUG: 17:37:41.569: plugin_base.cpp:370 soe: autogain successfully connected to PipeWire graph (easyeffects:2): easyeffects-DEBUG: 17:37:41.569: pipe_manager.cpp:1207 easyeffects_sink port 76 is connected to ee_soe_autogain port 142 (easyeffects:2): easyeffects-DEBUG: 17:37:41.569: pipe_manager.cpp:1207 easyeffects_sink port 79 is connected to ee_soe_autogain port 127 (easyeffects:2): easyeffects-DEBUG: 17:37:41.572: plugin_base.cpp:370 sie: output_level successfully connected to PipeWire graph (easyeffects:2): easyeffects-DEBUG: 17:37:41.573: plugin_base.cpp:370 sie: spectrum successfully connected to PipeWire graph (easyeffects:2): easyeffects-DEBUG: 17:37:41.573: rnnoise.cpp:245 sie: rnnoise using the standard model. (easyeffects:2): easyeffects-DEBUG: 17:37:41.575: plugin_base.cpp:370 sie: rnnoise successfully connected to PipeWire graph (easyeffects:2): easyeffects-DEBUG: 17:37:41.575: pipe_manager.cpp:1207 alsa_input.usb-Razer_Razer_Nari_Ultimate-00.analog-chat port 55 is connected to ee_sie_rnnoise port 126 (easyeffects:2): easyeffects-DEBUG: 17:37:41.604: stream_output_effects.cpp:317 disconnecting the autogain filter from PipeWire (easyeffects:2): easyeffects-DEBUG: 17:37:41.606: pipe_manager.cpp:213 157 ee_soe_autogain has been removed (easyeffects:2): easyeffects-DEBUG: 17:37:41.611: plugin_base.cpp:370 soe: autogain successfully connected to PipeWire graph (easyeffects:2): easyeffects-DEBUG: 17:37:41.611: pipe_manager.cpp:1207 easyeffects_sink port 76 is connected to ee_soe_autogain port 139 (easyeffects:2): easyeffects-DEBUG: 17:37:41.611: pipe_manager.cpp:1207 easyeffects_sink port 79 is connected to ee_soe_autogain port 91 (easyeffects:2): easyeffects-DEBUG: 17:37:41.613: stream_input_effects.cpp:316 disconnecting the rnnoise filter from PipeWire (easyeffects:2): easyeffects-DEBUG: 17:37:41.614: pipe_manager.cpp:213 124 ee_sie_rnnoise has been removed (easyeffects:2): easyeffects-DEBUG: 17:37:41.617: plugin_base.cpp:370 sie: rnnoise successfully connected to PipeWire graph (easyeffects:2): easyeffects-DEBUG: 17:37:41.617: pipe_manager.cpp:1207 alsa_input.usb-Razer_Razer_Nari_Ultimate-00.analog-chat port 55 is connected to ee_sie_rnnoise port 123 easyeffects-INFO: 17:37:41.618: application.cpp:50 disabling global bypass (easyeffects:2): easyeffects-DEBUG: 17:37:41.638: application_ui.cpp:86 Icon Theme Pop detected (easyeffects:2): easyeffects-DEBUG: 17:37:41.713: app_info.cpp:141 cannot lookup application icon com.spotify.Client in /usr/share/pixmaps (easyeffects:2): easyeffects-DEBUG: 17:37:41.713: app_info.cpp:141 cannot lookup application icon com.spotify.Client in /usr/local/share/pixmaps (easyeffects:2): easyeffects-DEBUG: 17:37:41.720: rnnoise_ui.cpp:390 model directory already exists: /home/termozour/.var/app/com.github.wwmm.easyeffects/config/easyeffects/rnnoise (easyeffects:2): easyeffects-DEBUG: 17:37:41.724: stream_output_effects.cpp:317 disconnecting the autogain filter from PipeWire (easyeffects:2): easyeffects-DEBUG: 17:37:41.726: pipe_manager.cpp:213 145 ee_soe_autogain has been removed (easyeffects:2): easyeffects-DEBUG: 17:37:41.728: plugin_base.cpp:370 soe: autogain successfully connected to PipeWire graph (easyeffects:2): easyeffects-DEBUG: 17:37:41.728: pipe_manager.cpp:1207 easyeffects_sink port 76 is connected to ee_soe_autogain port 127 (easyeffects:2): easyeffects-DEBUG: 17:37:41.729: pipe_manager.cpp:1207 easyeffects_sink port 79 is connected to ee_soe_autogain port 98 (easyeffects:2): easyeffects-DEBUG: 17:37:41.798: stream_input_effects.cpp:316 disconnecting the rnnoise filter from PipeWire (easyeffects:2): easyeffects-DEBUG: 17:37:41.800: pipe_manager.cpp:213 154 ee_sie_rnnoise has been removed (easyeffects:2): easyeffects-DEBUG: 17:37:41.802: plugin_base.cpp:370 sie: rnnoise successfully connected to PipeWire graph (easyeffects:2): easyeffects-DEBUG: 17:37:41.802: pipe_manager.cpp:1207 alsa_input.usb-Razer_Razer_Nari_Ultimate-00.analog-chat port 55 is connected to ee_sie_rnnoise port 153 (easyeffects:2): easyeffects-DEBUG: 17:37:41.803: stream_output_effects.cpp:317 disconnecting the autogain filter from PipeWire (easyeffects:2): easyeffects-DEBUG: 17:37:41.804: pipe_manager.cpp:213 142 ee_soe_autogain has been removed (easyeffects:2): easyeffects-DEBUG: 17:37:41.805: plugin_base.cpp:370 soe: autogain successfully connected to PipeWire graph (easyeffects:2): easyeffects-DEBUG: 17:37:41.806: pipe_manager.cpp:1207 easyeffects_sink port 76 is connected to ee_soe_autogain port 139 (easyeffects:2): easyeffects-DEBUG: 17:37:41.806: pipe_manager.cpp:1207 easyeffects_sink port 79 is connected to ee_soe_autogain port 117 (easyeffects:2): easyeffects-DEBUG: 17:37:41.806: application.cpp:78 new default output device: alsa_output.pci-0000_00_1f.3.hdmi-stereo (easyeffects:2): easyeffects-DEBUG: 17:37:41.807: stream_output_effects.cpp:317 disconnecting the autogain filter from PipeWire (easyeffects:2): easyeffects-DEBUG: 17:37:41.807: pipe_manager.cpp:213 151 ee_soe_autogain has been removed (easyeffects:2): easyeffects-DEBUG: 17:37:41.809: plugin_base.cpp:370 soe: autogain successfully connected to PipeWire graph (easyeffects:2): easyeffects-DEBUG: 17:37:41.809: pipe_manager.cpp:1207 easyeffects_sink port 76 is connected to ee_soe_autogain port 138 (easyeffects:2): easyeffects-DEBUG: 17:37:41.809: pipe_manager.cpp:1207 easyeffects_sink port 79 is connected to ee_soe_autogain port 127 (easyeffects:2): easyeffects-DEBUG: 17:37:41.811: application.cpp:86 new default input device: alsa_input.usb-Razer_Razer_Nari_Ultimate-00.analog-chat (easyeffects:2): easyeffects-DEBUG: 17:37:41.811: stream_input_effects.cpp:316 disconnecting the rnnoise filter from PipeWire (easyeffects:2): easyeffects-DEBUG: 17:37:41.812: pipe_manager.cpp:213 156 ee_sie_rnnoise has been removed (easyeffects:2): easyeffects-DEBUG: 17:37:41.814: plugin_base.cpp:370 sie: rnnoise successfully connected to PipeWire graph (easyeffects:2): easyeffects-DEBUG: 17:37:41.814: pipe_manager.cpp:1207 alsa_input.usb-Razer_Razer_Nari_Ultimate-00.analog-chat port 55 is connected to ee_sie_rnnoise port 140 (easyeffects:2): easyeffects-DEBUG: 17:37:41.818: app_info.cpp:141 cannot lookup application icon com.spotify.Client in /usr/share/pixmaps (easyeffects:2): easyeffects-DEBUG: 17:37:41.818: app_info.cpp:141 cannot lookup application icon com.spotify.Client in /usr/local/share/pixmaps (easyeffects:2): easyeffects-DEBUG: 17:37:41.818: application.cpp:98 device alsa_card.pci-0000_00_1f.3 has changed its input route to: analog-input-internal-mic (easyeffects:2): easyeffects-DEBUG: 17:37:41.818: application.cpp:118 input autoloading: the target node name does not match the input device name (easyeffects:2): easyeffects-DEBUG: 17:37:41.818: application.cpp:130 device alsa_card.pci-0000_00_1f.3 has changed its output route to: hdmi-output-0 (easyeffects:2): easyeffects-DEBUG: 17:37:41.818: application.cpp:130 device alsa_card.usb-Razer_Razer_Nari_Ultimate-00 has changed its output route to: razer-nari-output-game (easyeffects:2): easyeffects-DEBUG: 17:37:41.818: application.cpp:150 output autoloading: the target node name does not match the output device name (easyeffects:2): easyeffects-DEBUG: 17:37:41.818: application.cpp:98 device alsa_card.usb-Razer_Razer_Nari_Ultimate-00 has changed its input route to: razer-nari-input (easyeffects:2): easyeffects-DEBUG: 17:37:41.818: app_info.cpp:141 cannot lookup application icon com.spotify.Client in /usr/share/pixmaps (easyeffects:2): easyeffects-DEBUG: 17:37:41.818: app_info.cpp:141 cannot lookup application icon com.spotify.Client in /usr/local/share/pixmaps (easyeffects:2): easyeffects-DEBUG: 17:37:41.818: app_info.cpp:141 cannot lookup application icon com.spotify.Client in /usr/share/pixmaps (easyeffects:2): easyeffects-DEBUG: 17:37:41.818: app_info.cpp:141 cannot lookup application icon com.spotify.Client in /usr/local/share/pixmaps (easyeffects:2): easyeffects-DEBUG: 17:37:43.580: pipe_manager.cpp:900 new metadata property: 72, target.node, Spa:Id, 81 (easyeffects:2): easyeffects-DEBUG: 17:37:43.581: pipe_manager.cpp:900 new metadata property: 72, target.object, Spa:Id, 2026 (easyeffects:2): easyeffects-DEBUG: 17:37:43.581: pipe_manager.cpp:1207 spotify port 71 is connected to easyeffects_sink port 68 (easyeffects:2): easyeffects-DEBUG: 17:37:43.581: pipe_manager.cpp:1207 spotify port 77 is connected to easyeffects_sink port 86 (easyeffects:2): easyeffects-DEBUG: 17:37:43.582: app_info.cpp:141 cannot lookup application icon com.spotify.Client in /usr/share/pixmaps (easyeffects:2): easyeffects-DEBUG: 17:37:43.582: app_info.cpp:141 cannot lookup application icon com.spotify.Client in /usr/local/share/pixmaps (easyeffects:2): easyeffects-DEBUG: 17:37:43.590: output_level.cpp:37 soe: output_level: PipeWire blocksize: 2048 (easyeffects:2): easyeffects-DEBUG: 17:37:43.590: output_level.cpp:38 soe: output_level: PipeWire sampling rate: 88200 (easyeffects:2): easyeffects-DEBUG: 17:37:50.387: pipe_manager.cpp:213 Audio/Sink 109 alsa_output.pci-0000_00_1f.3.hdmi-stereo has been removed (easyeffects:2): easyeffects-DEBUG: 17:37:50.387: pipe_manager.cpp:213 Audio/Source 46 alsa_input.pci-0000_00_1f.3.analog-stereo.10 has been removed (easyeffects:2): easyeffects-DEBUG: 17:37:50.387: pipe_manager.cpp:1167 Audio/Sink 46 alsa_output.pci-0000_00_1f.3.analog-stereo with serial 2174 has been added (easyeffects:2): easyeffects-DEBUG: 17:37:50.387: pipe_manager.cpp:1167 Audio/Source 69 alsa_input.pci-0000_00_1f.3.analog-stereo.11 with serial 2175 has been added (easyeffects:2): easyeffects-DEBUG: 17:37:50.387: stream_output_effects.cpp:317 disconnecting the autogain filter from PipeWire (easyeffects:2): easyeffects-DEBUG: 17:37:50.389: pipe_manager.cpp:213 157 ee_soe_autogain has been removed (easyeffects:2): easyeffects-DEBUG: 17:37:50.389: pipe_manager.cpp:900 new metadata property: 0, default.audio.sink, Spa:String:JSON, {"name":"easyeffects_sink"} (easyeffects:2): easyeffects-DEBUG: 17:37:50.391: plugin_base.cpp:370 soe: autogain successfully connected to PipeWire graph (easyeffects:2): easyeffects-DEBUG: 17:37:50.392: pipe_manager.cpp:1207 easyeffects_sink port 76 is connected to ee_soe_autogain port 116 (easyeffects:2): easyeffects-DEBUG: 17:37:50.392: pipe_manager.cpp:1207 easyeffects_sink port 79 is connected to ee_soe_autogain port 157 (easyeffects:2): easyeffects-DEBUG: 17:37:50.392: pipe_manager.cpp:900 new metadata property: 0, default.configured.audio.sink, Spa:String:JSON, { "name": "alsa_output.pci-0000_00_1f.3.analog-stereo" } (easyeffects:2): easyeffects-DEBUG: 17:37:50.396: node_info_holder.cpp:98 109, alsa_output.pci-0000_00_1f.3.hdmi-stereo finalized (easyeffects:2): easyeffects-DEBUG: 17:37:50.398: pipe_manager.cpp:900 new metadata property: 0, default.audio.sink, Spa:String:JSON, {"name":"alsa_output.pci-0000_00_1f.3.analog-stereo"} (easyeffects:2): easyeffects-DEBUG: 17:37:50.400: node_info_holder.cpp:98 46, alsa_input.pci-0000_00_1f.3.analog-stereo.10 finalized (easyeffects:2): easyeffects-DEBUG: 17:37:50.400: application.cpp:130 device alsa_card.pci-0000_00_1f.3 has changed its output route to: analog-output-speaker (easyeffects:2): easyeffects-DEBUG: 17:37:50.400: application.cpp:150 output autoloading: the target node name does not match the output device name (easyeffects:2): easyeffects-DEBUG: 17:37:50.400: application.cpp:78 new default output device: alsa_output.pci-0000_00_1f.3.analog-stereo (easyeffects:2): easyeffects-DEBUG: 17:37:50.400: stream_output_effects.cpp:317 disconnecting the autogain filter from PipeWire (easyeffects:2): easyeffects-DEBUG: 17:37:50.401: pipe_manager.cpp:213 117 ee_soe_autogain has been removed (easyeffects:2): easyeffects-DEBUG: 17:37:50.403: plugin_base.cpp:370 soe: autogain successfully connected to PipeWire graph (easyeffects:2): easyeffects-DEBUG: 17:37:50.404: pipe_manager.cpp:1207 easyeffects_sink port 76 is connected to ee_soe_autogain port 138 (easyeffects:2): easyeffects-DEBUG: 17:37:50.404: pipe_manager.cpp:1207 easyeffects_sink port 79 is connected to ee_soe_autogain port 109 (easyeffects:2): easyeffects-DEBUG: 17:37:50.410: app_info.cpp:141 cannot lookup application icon com.spotify.Client in /usr/share/pixmaps (easyeffects:2): easyeffects-DEBUG: 17:37:50.410: app_info.cpp:141 cannot lookup application icon com.spotify.Client in /usr/local/share/pixmaps (easyeffects:2): easyeffects-DEBUG: 17:37:50.437: app_info.cpp:141 cannot lookup application icon com.spotify.Client in /usr/share/pixmaps (easyeffects:2): easyeffects-DEBUG: 17:37:50.437: app_info.cpp:141 cannot lookup application icon com.spotify.Client in /usr/local/share/pixmaps (easyeffects:2): easyeffects-DEBUG: 17:37:51.835: stream_input_effects.cpp:165 No app linked to our device wants to play. Unlinking our filters. (easyeffects:2): easyeffects-DEBUG: 17:37:51.835: stream_input_effects.cpp:316 disconnecting the rnnoise filter from PipeWire (easyeffects:2): easyeffects-DEBUG: 17:37:51.838: pipe_manager.cpp:213 159 ee_sie_rnnoise has been removed (easyeffects:2): easyeffects-DEBUG: 17:37:57.011: pipe_manager.cpp:213 Audio/Sink 46 alsa_output.pci-0000_00_1f.3.analog-stereo has been removed (easyeffects:2): easyeffects-DEBUG: 17:37:57.011: pipe_manager.cpp:213 Audio/Source 69 alsa_input.pci-0000_00_1f.3.analog-stereo.11 has been removed (easyeffects:2): easyeffects-DEBUG: 17:37:57.011: pipe_manager.cpp:1167 Audio/Sink 69 alsa_output.pci-0000_00_1f.3.hdmi-stereo with serial 2208 has been added (easyeffects:2): easyeffects-DEBUG: 17:37:57.011: pipe_manager.cpp:1167 Audio/Source 139 alsa_input.pci-0000_00_1f.3.analog-stereo.12 with serial 2209 has been added (easyeffects:2): easyeffects-DEBUG: 17:37:57.011: node_info_holder.cpp:98 46, alsa_output.pci-0000_00_1f.3.analog-stereo finalized (easyeffects:2): easyeffects-DEBUG: 17:37:57.012: node_info_holder.cpp:98 69, alsa_input.pci-0000_00_1f.3.analog-stereo.11 finalized (easyeffects:2): easyeffects-DEBUG: 17:37:57.016: application.cpp:130 device alsa_card.pci-0000_00_1f.3 has changed its output route to: hdmi-output-0 (easyeffects:2): easyeffects-DEBUG: 17:37:57.016: application.cpp:150 output autoloading: the target node name does not match the output device name (easyeffects:2): easyeffects-DEBUG: 17:37:57.016: pipe_manager.cpp:900 new metadata property: 0, default.audio.sink, Spa:String:JSON, {"name":"easyeffects_sink"} (easyeffects:2): easyeffects-DEBUG: 17:37:57.020: pipe_manager.cpp:900 new metadata property: 0, default.configured.audio.sink, Spa:String:JSON, { "name": "alsa_output.pci-0000_00_1f.3.hdmi-stereo" } (easyeffects:2): easyeffects-DEBUG: 17:37:57.022: pipe_manager.cpp:900 new metadata property: 0, default.audio.sink, Spa:String:JSON, {"name":"alsa_output.pci-0000_00_1f.3.hdmi-stereo"} (easyeffects:2): easyeffects-DEBUG: 17:37:57.022: application.cpp:78 new default output device: alsa_output.pci-0000_00_1f.3.hdmi-stereo (easyeffects:2): easyeffects-DEBUG: 17:37:57.022: stream_output_effects.cpp:317 disconnecting the autogain filter from PipeWire (easyeffects:2): easyeffects-DEBUG: 17:37:57.023: pipe_manager.cpp:213 142 ee_soe_autogain has been removed (easyeffects:2): easyeffects-DEBUG: 17:37:57.025: plugin_base.cpp:370 soe: autogain successfully connected to PipeWire graph (easyeffects:2): easyeffects-DEBUG: 17:37:57.025: pipe_manager.cpp:1207 easyeffects_sink port 76 is connected to ee_soe_autogain port 91 (easyeffects:2): easyeffects-DEBUG: 17:37:57.025: pipe_manager.cpp:1207 easyeffects_sink port 79 is connected to ee_soe_autogain port 142 (easyeffects:2): easyeffects-DEBUG: 17:37:57.032: app_info.cpp:141 cannot lookup application icon com.spotify.Client in /usr/share/pixmaps (easyeffects:2): easyeffects-DEBUG: 17:37:57.032: app_info.cpp:141 cannot lookup application icon com.spotify.Client in /usr/local/share/pixmaps (easyeffects:2): easyeffects-DEBUG: 17:37:57.049: app_info.cpp:141 cannot lookup application icon com.spotify.Client in /usr/share/pixmaps (easyeffects:2): easyeffects-DEBUG: 17:37:57.049: app_info.cpp:141 cannot lookup application icon com.spotify.Client in /usr/local/share/pixmaps (easyeffects:2): easyeffects-DEBUG: 17:38:01.104: effects_base.cpp:248 soe: pipeline latency: 0 ms (easyeffects:2): easyeffects-DEBUG: 17:38:01.104: stream_output_effects.cpp:317 disconnecting the autogain filter from PipeWire (easyeffects:2): easyeffects-DEBUG: 17:38:01.107: pipe_manager.cpp:213 157 ee_soe_autogain has been removed (easyeffects:2): easyeffects-DEBUG: 17:38:01.112: autogain_ui.cpp:183 disposed (easyeffects:2): easyeffects-DEBUG: 17:38:01.113: autogain_ui.cpp:26 data struct destroyed (easyeffects:2): easyeffects-DEBUG: 17:38:01.113: autogain_ui.cpp:193 finalize (easyeffects:2): easyeffects-DEBUG: 17:38:01.118: app_info.cpp:319 spotify disposed (easyeffects:2): easyeffects-DEBUG: 17:38:01.119: app_info.cpp:327 spotify finalized (easyeffects:2): easyeffects-DEBUG: 17:38:01.119: app_info.cpp:28 data struct destroyed (easyeffects:2): easyeffects-DEBUG: 17:38:01.120: app_info.cpp:141 cannot lookup application icon com.spotify.Client in /usr/share/pixmaps (easyeffects:2): easyeffects-DEBUG: 17:38:01.120: app_info.cpp:141 cannot lookup application icon com.spotify.Client in /usr/local/share/pixmaps (easyeffects:2): easyeffects-DEBUG: 17:38:01.121: presets_manager.cpp:571 successfully loaded preset: /home/termozour/.var/app/com.github.wwmm.easyeffects/config/easyeffects/output/Default.json (easyeffects:2): easyeffects-DEBUG: 17:38:10.025: application_ui.cpp:206 disposed (easyeffects:2): easyeffects-DEBUG: 17:38:10.027: app_info.cpp:319 spotify disposed (easyeffects:2): easyeffects-DEBUG: 17:38:10.028: app_info.cpp:327 spotify finalized (easyeffects:2): easyeffects-DEBUG: 17:38:10.028: app_info.cpp:28 data struct destroyed (easyeffects:2): easyeffects-DEBUG: 17:38:10.031: presets_menu.cpp:476 disposed (easyeffects:2): easyeffects-DEBUG: 17:38:10.032: presets_menu.cpp:26 data struct destroyed (easyeffects:2): easyeffects-DEBUG: 17:38:10.032: presets_menu.cpp:486 finalized (easyeffects:2): easyeffects-DEBUG: 17:38:10.032: effects_box.cpp:466 disposed (easyeffects:2): easyeffects-DEBUG: 17:38:10.032: chart.cpp:28 data struct destroyed (easyeffects:2): easyeffects-DEBUG: 17:38:10.032: chart.cpp:600 finalized (easyeffects:2): easyeffects-DEBUG: 17:38:10.032: blocklist_menu.cpp:193 disposed (easyeffects:2): easyeffects-DEBUG: 17:38:10.032: blocklist_menu.cpp:26 data struct destroyed (easyeffects:2): easyeffects-DEBUG: 17:38:10.032: blocklist_menu.cpp:203 finalized (easyeffects:2): easyeffects-DEBUG: 17:38:10.032: apps_box.cpp:389 disposed (easyeffects:2): easyeffects-DEBUG: 17:38:10.032: node_info_holder.cpp:98 72, spotify finalized (easyeffects:2): easyeffects-DEBUG: 17:38:10.032: apps_box.cpp:26 data struct destroyed (easyeffects:2): easyeffects-DEBUG: 17:38:10.032: apps_box.cpp:399 finalized (easyeffects:2): easyeffects-DEBUG: 17:38:10.032: plugins_box.cpp:739 disposed (easyeffects:2): easyeffects-DEBUG: 17:38:10.033: plugins_menu.cpp:250 disposed (easyeffects:2): easyeffects-DEBUG: 17:38:10.033: plugins_menu.cpp:30 data struct destroyed (easyeffects:2): easyeffects-DEBUG: 17:38:10.033: plugins_menu.cpp:260 finalized (easyeffects:2): easyeffects-DEBUG: 17:38:10.033: plugins_box.cpp:30 data struct destroyed (easyeffects:2): easyeffects-DEBUG: 17:38:10.033: plugins_box.cpp:749 finalized (easyeffects:2): easyeffects-DEBUG: 17:38:10.033: effects_box.cpp:32 data struct destroyed (easyeffects:2): easyeffects-DEBUG: 17:38:10.033: effects_box.cpp:476 finalized (easyeffects:2): easyeffects-DEBUG: 17:38:10.033: effects_box.cpp:466 disposed (easyeffects:2): easyeffects-DEBUG: 17:38:10.033: chart.cpp:28 data struct destroyed (easyeffects:2): easyeffects-DEBUG: 17:38:10.033: chart.cpp:600 finalized (easyeffects:2): easyeffects-DEBUG: 17:38:10.033: blocklist_menu.cpp:193 disposed (easyeffects:2): easyeffects-DEBUG: 17:38:10.033: blocklist_menu.cpp:26 data struct destroyed (easyeffects:2): easyeffects-DEBUG: 17:38:10.033: blocklist_menu.cpp:203 finalized (easyeffects:2): easyeffects-DEBUG: 17:38:10.034: apps_box.cpp:389 disposed (easyeffects:2): easyeffects-DEBUG: 17:38:10.034: apps_box.cpp:26 data struct destroyed (easyeffects:2): easyeffects-DEBUG: 17:38:10.034: apps_box.cpp:399 finalized (easyeffects:2): easyeffects-DEBUG: 17:38:10.034: plugins_box.cpp:739 disposed (easyeffects:2): easyeffects-DEBUG: 17:38:10.034: rnnoise_ui.cpp:323 disposed (easyeffects:2): easyeffects-DEBUG: 17:38:10.034: rnnoise_ui.cpp:38 data struct destroyed (easyeffects:2): easyeffects-DEBUG: 17:38:10.034: rnnoise_ui.cpp:333 finalized (easyeffects:2): easyeffects-DEBUG: 17:38:10.036: plugins_menu.cpp:250 disposed (easyeffects:2): easyeffects-DEBUG: 17:38:10.036: plugins_menu.cpp:30 data struct destroyed (easyeffects:2): easyeffects-DEBUG: 17:38:10.036: plugins_menu.cpp:260 finalized (easyeffects:2): easyeffects-DEBUG: 17:38:10.036: plugins_box.cpp:30 data struct destroyed (easyeffects:2): easyeffects-DEBUG: 17:38:10.036: plugins_box.cpp:749 finalized (easyeffects:2): easyeffects-DEBUG: 17:38:10.036: effects_box.cpp:32 data struct destroyed (easyeffects:2): easyeffects-DEBUG: 17:38:10.036: effects_box.cpp:476 finalized (easyeffects:2): easyeffects-DEBUG: 17:38:10.036: pipe_manager_box.cpp:758 disposed (easyeffects:2): easyeffects-DEBUG: 17:38:10.038: node_info_holder.cpp:98 69, alsa_output.pci-0000_00_1f.3.hdmi-stereo finalized (easyeffects:2): easyeffects-DEBUG: 17:38:10.039: node_info_holder.cpp:98 32, alsa_output.usb-Razer_Razer_Nari_Ultimate-00.analog-game finalized (easyeffects:2): easyeffects-DEBUG: 17:38:10.039: node_info_holder.cpp:98 139, alsa_input.pci-0000_00_1f.3.analog-stereo.12 finalized (easyeffects:2): easyeffects-DEBUG: 17:38:10.039: node_info_holder.cpp:98 40, alsa_input.usb-Razer_Razer_Nari_Ultimate-00.analog-chat finalized (easyeffects:2): easyeffects-DEBUG: 17:38:10.039: pipe_manager_box.cpp:28 data struct destroyed (easyeffects:2): easyeffects-DEBUG: 17:38:10.039: test_signals.cpp:200 destroyed (easyeffects:2): easyeffects-DEBUG: 17:38:10.040: pipe_manager_box.cpp:768 finalized (easyeffects:2): easyeffects-DEBUG: 17:38:10.040: application_ui.cpp:29 data struct destroyed (easyeffects:2): easyeffects-DEBUG: 17:38:10.040: application_ui.cpp:216 finalized (easyeffects:2): easyeffects-DEBUG: 17:38:10.040: presets_manager.cpp:180 destroyed (easyeffects:2): easyeffects-DEBUG: 17:38:10.040: stream_input_effects.cpp:112 destroyed (easyeffects:2): easyeffects-DEBUG: 17:38:10.040: effects_base.cpp:97 effects_base: destroyed (easyeffects:2): easyeffects-DEBUG: 17:38:10.040: rnnoise.cpp:87 sie: rnnoise destroyed (easyeffects:2): easyeffects-DEBUG: 17:38:10.041: spectrum.cpp:59 sie: spectrum destroyed (easyeffects:2): easyeffects-DEBUG: 17:38:10.041: output_level.cpp:33 sie: output_level destroyed (easyeffects:2): easyeffects-DEBUG: 17:38:10.042: stream_output_effects.cpp:112 destroyed (easyeffects:2): easyeffects-DEBUG: 17:38:10.042: effects_base.cpp:97 effects_base: destroyed (easyeffects:2): easyeffects-DEBUG: 17:38:10.043: autogain.cpp:107 soe: autogain destroyed (easyeffects:2): easyeffects-DEBUG: 17:38:10.043: spectrum.cpp:59 soe: spectrum destroyed (easyeffects:2): easyeffects-DEBUG: 17:38:10.043: output_level.cpp:33 soe: output_level destroyed (easyeffects:2): easyeffects-DEBUG: 17:38:10.043: pipe_manager.cpp:1552 Destroying PipeWire registry... (easyeffects:2): easyeffects-DEBUG: 17:38:10.043: pipe_manager.cpp:1555 Disconnecting PipeWire core... (easyeffects:2): easyeffects-DEBUG: 17:38:10.043: pipe_manager.cpp:213 Audio/Sink 32 alsa_output.usb-Razer_Razer_Nari_Ultimate-00.analog-game has been removed (easyeffects:2): easyeffects-DEBUG: 17:38:10.043: pipe_manager.cpp:213 Audio/Source 40 alsa_input.usb-Razer_Razer_Nari_Ultimate-00.analog-chat has been removed (easyeffects:2): easyeffects-DEBUG: 17:38:10.043: pipe_manager.cpp:213 Stream/Output/Audio 72 spotify has been removed (easyeffects:2): easyeffects-DEBUG: 17:38:10.043: pipe_manager.cpp:213 Audio/Sink 69 alsa_output.pci-0000_00_1f.3.hdmi-stereo has been removed (easyeffects:2): easyeffects-DEBUG: 17:38:10.043: pipe_manager.cpp:213 Audio/Sink 81 easyeffects_sink has been removed (easyeffects:2): easyeffects-DEBUG: 17:38:10.043: pipe_manager.cpp:213 Audio/Source/Virtual 80 easyeffects_source has been removed (easyeffects:2): easyeffects-DEBUG: 17:38:10.043: pipe_manager.cpp:213 Audio/Source 139 alsa_input.pci-0000_00_1f.3.analog-stereo.12 has been removed (easyeffects:2): easyeffects-DEBUG: 17:38:10.043: pipe_manager.cpp:1560 Stopping PipeWire's loop... (easyeffects:2): easyeffects-DEBUG: 17:38:10.044: pipe_manager.cpp:1563 Destroying PipeWire's context... (easyeffects:2): easyeffects-DEBUG: 17:38:10.044: pipe_manager.cpp:1566 Destroying PipeWire's loop... (easyeffects:2): easyeffects-DEBUG: 17:38:10.044: application.cpp:418 Shutting down... (easyeffects:2): easyeffects-DEBUG: 17:38:10.046: easyeffects.cpp:60 Exitting the main function with status: 0 ```

Additional Information

No response

wwmm commented 1 year ago

Run pw-dot before and after the problem happens. It will generate a file named pw.dot that can be viewed with the command xdot and will show how are the links between filters and devices as well as the link state. If the links are there but there is no audio the bug is on PipeWire.

wwmm commented 1 year ago

new metadata property: 0, default.audio.sink, Spa:String:JSON, {"name":"easyeffects_sink"}

It seems that at some point our virtual device was set as the default system device. This can cause problems in some situations #1836. Ideally our virtual sink should never be set as the system default output device.

TermoZour commented 1 year ago
.dot before changing devices, effects working
![pw-before](https://github.com/wwmm/easyeffects/assets/16005294/5b5b61d8-d3b0-4a6d-b8ba-d324c50c2b1f)
.dot after changing devices, effects not working. No sound.
![pw-after](https://github.com/wwmm/easyeffects/assets/16005294/8fb96f19-8302-4e37-aa02-203038778b9b)

Seems like the links are there... I will also look into what makes the EE sink default system device. Might be the culprit.

wwmm commented 1 year ago

Seems like the links are there...

Yes. And based on pw-dot output they are also in the active state. So there should be audio. Unless something is suddenly being muted somewhere. But the filters do not even allow this to happen. And the mute control in our virtual sink is disabled by default. I was expecting to see some links out of the active state. This is a PipeWire bug that has been around for a long time. But something else seems to be going on in your case.

I will also look into what makes the EE sink default system device. Might be the culprit.

The image does not show to which device the last filter is linked to. Usually when our virtual device is set as default the last filter's output ports won't be linked to another node.

wwmm commented 1 year ago

I am doing some tests on my computer (I have more than one sound card here) and so far nothing strange happens while switching default output devices in Pavucontrol. So some bad interaction between PipeWire and your sound card drivers may be happening. I think we will probably need to talk to PipeWire's developers. If possible open an issue there and let me know when you do so I can follow it there.

Digitalone1 commented 1 year ago

I don't have this issue. I occasionally connect my laptop to my TV through HDMI port and EasyEffects follow the switch of default device correctly. I use Arch, but I suppose this should work also on other distributions.

Anyway, I have to say something about Chromium. Weeks ago I was experiencing issues reported in #2408. I mainly use Brave Browser and have no issues, but I found out that when I switch to Chromium sometimes the default device is changed to EasyEffects Sink.

So if you're using Chromium, please report if this issue is reproducible. I don't know how to reproduce it, but when it happens, I notice I'm using Chromium.

wwmm commented 1 year ago

It may be worth to take a look at pw-top while switching devices. It has a column that counts errors in PipeWire's nodes. It will also show what PipeWire is doing to the sampling rate and latency.

but I found out that when I switch to Chromium sometimes the default device is changed to EasyEffects Sink.

That is bizarre. WirePlumber should not switch to another default device just because Chromium is started.

TermoZour commented 1 year ago

This is what I get when I have audio set to HDMI output. image

This is what I get when I switch to laptop speaker. No audio after the switch. image

EasyEffects sink disappears then shows up again after a split second during the switch, but otherwise I see nothing weird.

After picking any output device and EasyEffects is started (so effects/audio working), when I open Pavucontrol I see this: image

The interesting thing is that after Pavucontrol was started, switching audio devices (from wherever) worked no problem and EasyEffects kept working. I even closed Pavucontrol and switching devices still works

wwmm commented 1 year ago

The interesting thing is that after Pavucontrol was started, switching audio devices (from wherever) worked no problem and EasyEffects kept working. I even closed Pavucontrol and switching devices still works

Pavucontrol level meters are implemented through recording streams that are linked to the input/output device monitors. Maybe these extra links are somehow influencing how PipeWire is managing the PipeWire state.

sephid86 commented 1 year ago

@TermoZour

Can you show a video showing the process of changing the output device?

There may be a number of cases.

For example, some of gnome's extensions play independently of the default output device when you change the output device.

Such a case is a bug in gnome's extension.

Digitalone1 commented 1 year ago

That is bizarre. WirePlumber should not switch to another default device just because Chromium is started.

I know but I noticed that. Luckily I'm using Brave. Maybe I will test Chromium in the next days to see if it's reproducible.

TermoZour commented 1 year ago

@sephid86 I don't think it's that relevant. No matter from where I switch devices, extension or from System Settings, the audio stops. The EQ Visualizer of EE still keeps playing, but no actual audio is coming out. Not even if I switch back. The only thing that brings it back is killing EasyEffects and starting it again (in which case all applications are disabled and I need to enable them back). After I enable all applications, then future applications are "enabled" as well. Otherwise, all applications remain disabled.

marco-kretz commented 1 year ago

Just noticed the same problem yesterday. I'm on Debian Testing KDE and running EasyEffects as flatpak. Switching output devices causes my PC to not output anything anymore. Killing EasyEffects with flatpak kill com.github.wwmm.easyeffects instantly brings the sound back.

@wwmm Can I do anything to help you with debugging?

wwmm commented 1 year ago

Can I do anything to help you with debugging?

Not much besides running pw-dot when the problem happens and checking the links state by viewing the resulting file with xdot. But a fix probably will require changes to PipeWire's code. We just ask PipeWire to create the links. From this point on everything is managed by PipeWire. So it will help if someone that can reproduce the issue open an issue at PipeWire's page and let me know about it so I can help them there if necessary.

Digitalone1 commented 1 year ago

I forgot to report that I saw this issue a couple of weeks ago. I was watching a video on the TV through HDMI. Then switched the mode on the TV and finally returned on the HDMI input. But the audio was not working at all. Could not reproduce it every time, but it happened randomly when I was switching inputs on the TV. The only way to recover EasyEffects was to kill and restart it.

Unfortunately I can't reproduce it because I can't use the TV at the moment.

TermoZour commented 1 month ago

I just updated to EasyEffects 7.1.9 and I can no longer reproduce this issue. Seems fixed.