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

EasyEffects reverts to defaults EQ every time its opened #1246

Open Netherquark opened 2 years ago

Netherquark commented 2 years ago

EasyEffects Version

6.1.4

What package are you using?

Flatpak (Flathub)

Distribution

Fedora 35

Describe the bug

I have configured EasyEffects as follows: I have "Start Service at Login" toggled on, along with this: image

analog-output-lineout is connected to my headphones. This setup means whenever I boot my computer it defaults to the Oratory1990 profile if my headphones are connected. This is all perfectly functional, but I'm noting it in case it is relevant to the bug I'm facing. The Flatseal settings for EasyEffects are as follows: image image image

With all of this background out of the way, I'll describe the actual bug. If I set an EQ apart from the default loading Oratory1990, say bassy-k361, and then close EE, returning back to my work, it works as intended. But whenever I reopen EE to do whatever, it reverts to the Oratory1990 EQ again. I doubt this behaviour is intentional hence I'm creating this bug report. To be clear, by closing EE, I mean pressing the cross in the top right corner. And by opening EE, I mean searching for it as follows and pressing Enter: image

Expected Behavior

EasyEffects doesn't change the profile when reopened.

Debug Log

No response

Additional Information

Doubt this is relevant but: Gnome 41, using Asus Tuf B450 onboard audio, and this is the configuration I can see in Gnome Tweaks: image

I think the EE entry is probably Tweaks reading the autogenerated EE file to autostart on boot.

wwmm commented 2 years ago

have "Start Service at Login" toggled on, along with this:

@vchernin is this still working as intended in Flatpak?

@Netherquark when you close its window do you still see an EasyEffects process in gnome system monitor? IF not the reason why your autoloading profile is being triggered is EasyEffects not being started in service mode.

Netherquark commented 2 years ago

@Netherquark when you close its window do you still see an EasyEffects process in gnome system monitor? IF not the reason why your autoloading profile is being triggered is EasyEffects not being started in service mode.

image

seems like that isnt the problem

wwmm commented 2 years ago

seems like that isnt the problem

Then something unusual is happening in the Flatpak build. When running as a service closing and opening the window should not be making the autoload profile to be triggered.

wwmm commented 2 years ago

@Netherquark kill the EasyEffects instance and restart it as G_MESSAGES_DEBUG=easyeffects flatpak run com.github.wwmm.easyeeffects --gapplication-service. After that try to open its window as usual. Let's see what happens in the log from the moment the window is opened on.

wwmm commented 2 years ago

I edited the previous commenting adding --gapplication-service at the end

Netherquark commented 2 years ago

image huh weird

vchernin commented 2 years ago

Typo, there were excessive e's.

G_MESSAGES_DEBUG=easyeffects flatpak run com.github.wwmm.easyeffects --gapplication-service

Flatpak auto start should work, but running in the background can be strange due to not explicitly asking permission. That is another bug I need to open. But I don't think that's happened here since Flatseal says background permission is given.

Netherquark commented 2 years ago
You have PipeWire 0.3.39 installed
This is newer or the same as PipeWire 0.3.31 required to run EasyEffects
(process:2): easyeffects-DEBUG: 12:46:33.169: main: locale directory: /app/share/locale
(easyeffects:2): easyeffects-DEBUG: 12:46:33.366: presets_manager: system input presets directory: "/app/etc/xdg/easyeffects/input"; 
(easyeffects:2): easyeffects-DEBUG: 12:46:33.366: presets_manager: system input presets directory: "/etc/easyeffects/input"; 
(easyeffects:2): easyeffects-DEBUG: 12:46:33.366: presets_manager: system input presets directory: "/etc/xdg/easyeffects/input"; 
(easyeffects:2): easyeffects-DEBUG: 12:46:33.366: presets_manager: system output presets directory: "/app/etc/xdg/easyeffects/output"; 
(easyeffects:2): easyeffects-DEBUG: 12:46:33.366: presets_manager: system output presets directory: "/etc/easyeffects/output"; 
(easyeffects:2): easyeffects-DEBUG: 12:46:33.366: presets_manager: system output presets directory: "/etc/xdg/easyeffects/output"; 
(easyeffects:2): easyeffects-DEBUG: 12:46:33.366: presets_manager: user presets directory already exists: /home/netherquark/.var/app/com.github.wwmm.easyeffects/config/easyeffects/
(easyeffects:2): easyeffects-DEBUG: 12:46:33.366: presets_manager: user presets directory already exists: /home/netherquark/.var/app/com.github.wwmm.easyeffects/config/easyeffects/input
(easyeffects:2): easyeffects-DEBUG: 12:46:33.366: presets_manager: user presets directory already exists: /home/netherquark/.var/app/com.github.wwmm.easyeffects/config/easyeffects/output
(easyeffects:2): easyeffects-DEBUG: 12:46:33.367: presets_manager: user presets directory already exists: /home/netherquark/.var/app/com.github.wwmm.easyeffects/config/easyeffects/autoload/input
(easyeffects:2): easyeffects-DEBUG: 12:46:33.367: presets_manager: user presets directory already exists: /home/netherquark/.var/app/com.github.wwmm.easyeffects/config/easyeffects/autoload/output
(easyeffects:2): easyeffects-DEBUG: 12:46:33.393: application: easyeffects version: 6.1.4
(easyeffects:2): easyeffects-DEBUG: 12:46:33.404: pipe_manager: compiled with PipeWire: 0.3.31
(easyeffects:2): easyeffects-DEBUG: 12:46:33.404: pipe_manager: linked to PipeWire: 0.3.31
(easyeffects:2): easyeffects-DEBUG: 12:46:33.407: pipe_manager: core version: 0.3.39
(easyeffects:2): easyeffects-DEBUG: 12:46:33.407: pipe_manager: core name: pipewire-0
(easyeffects:2): easyeffects-DEBUG: 12:46:33.437: pipe_manager: found metadata: settings
(easyeffects:2): easyeffects-DEBUG: 12:46:33.437: pipe_manager: found metadata: default
(easyeffects:2): easyeffects-DEBUG: 12:46:33.437: pipe_manager: found metadata: route-settings
(easyeffects:2): easyeffects-DEBUG: 12:46:33.438: pipe_manager: Audio/Sink 47 alsa_output.pci-0000_08_00.1.hdmi-stereo with timestamp 1636787793438012873 was added
(easyeffects:2): easyeffects-DEBUG: 12:46:33.438: pipe_manager: Audio/Sink 48 alsa_output.pci-0000_08_00.6.analog-stereo with timestamp 1636787793438047493 was added
(easyeffects:2): easyeffects-DEBUG: 12:46:33.438: pipe_manager: Audio/Source 49 alsa_input.pci-0000_08_00.6.analog-stereo with timestamp 1636787793438064123 was added
(easyeffects:2): easyeffects-DEBUG: 12:46:33.438: pipe_manager: Audio/Source 222 alsa_input.usb-046d_0825_29B33DC0-02.pro-input-0 with timestamp 1636787793438143353 was added
(easyeffects:2): easyeffects-DEBUG: 12:46:33.438: pipe_manager: Stream/Output/Audio 254 Firefox with timestamp 1636787793438175454 was added
(easyeffects:2): easyeffects-DEBUG: 12:46:33.438: pipe_manager: Firefox port 186 is connected to alsa_output.pci-0000_08_00.6.analog-stereo port 55
(easyeffects:2): easyeffects-DEBUG: 12:46:33.438: pipe_manager: Firefox port 175 is connected to alsa_output.pci-0000_08_00.6.analog-stereo port 57
(easyeffects:2): easyeffects-DEBUG: 12:46:33.438: pipe_manager: Audio/Sink 123 easyeffects_sink with timestamp 1636787793438231404 was added
(easyeffects:2): easyeffects-DEBUG: 12:46:33.438: pipe_manager: Audio/Source/Virtual 131 easyeffects_source with timestamp 1636787793438245994 was added
(easyeffects:2): easyeffects-DEBUG: 12:46:33.439: pipe_manager: easyeffects_sink node successfully retrieved with id 123 and timestamp 1636787793438231404
(easyeffects:2): easyeffects-DEBUG: 12:46:33.440: pipe_manager: easyeffects_source node successfully retrieved with id 131 and timestamp 1636787793438245994
(easyeffects:2): easyeffects-DEBUG: 12:46:33.440: pipe_manager: new metadata property: 0, default.configured.audio.sink, Spa:String:JSON, { "name": "bluez_output.30_21_96_A2_46_F5.a2dp-sink" }
(easyeffects:2): easyeffects-DEBUG: 12:46:33.440: pipe_manager: new metadata property: 0, default.configured.audio.source, Spa:String:JSON, { "name": "alsa_input.usb-046d_0825_29B33DC0-02.pro-input-0" }
(easyeffects:2): easyeffects-DEBUG: 12:46:33.440: pipe_manager: new metadata property: 0, default.video.source, Spa:String:JSON, { "name": "v4l2_input.pci-0000_08_00.4-usb-0_1_1.0" }
(easyeffects:2): easyeffects-DEBUG: 12:46:33.440: pipe_manager: new metadata property: 0, default.audio.source, Spa:String:JSON, { "name": "alsa_input.usb-046d_0825_29B33DC0-02.pro-input-0" }
(easyeffects:2): easyeffects-DEBUG: 12:46:33.440: pipe_manager: new metadata property: 0, default.audio.sink, Spa:String:JSON, { "name": "alsa_output.pci-0000_08_00.6.analog-stereo" }
(easyeffects:2): easyeffects-DEBUG: 12:46:33.440: pipe_manager: new metadata property: 254, target.node, Spa:Id, 165

(easyeffects:2): easyeffects-WARNING **: 12:46:33.504: lv2_wrapper: Could not find the plugin: http://drobilla.net/plugins/mda/Loudness
(easyeffects:2): easyeffects-DEBUG: 12:46:33.504: soe: http://drobilla.net/plugins/mda/Loudness is not installed

(easyeffects:2): easyeffects-WARNING **: 12:46:33.504: lv2_wrapper: http://drobilla.net/plugins/mda/Loudness port symbol not found: loudness

(easyeffects:2): easyeffects-WARNING **: 12:46:33.504: lv2_wrapper: http://drobilla.net/plugins/mda/Loudness port symbol not found: output

(easyeffects:2): easyeffects-WARNING **: 12:46:33.504: lv2_wrapper: http://drobilla.net/plugins/mda/Loudness port symbol not found: link
(easyeffects:2): easyeffects-DEBUG: 12:46:33.523: lv2_wrapper: http://lsp-plug.in/plugins/lv2/sc_compressor_stereo requires feature: http://lv2plug.in/ns/ext/urid#map
(easyeffects:2): easyeffects-DEBUG: 12:46:33.561: lv2_wrapper: http://lsp-plug.in/plugins/lv2/comp_delay_x2_stereo requires feature: http://lv2plug.in/ns/ext/urid#map
(easyeffects:2): easyeffects-DEBUG: 12:46:33.615: lv2_wrapper: http://lsp-plug.in/plugins/lv2/para_equalizer_x32_lr requires feature: http://lv2plug.in/ns/ext/urid#map
(easyeffects:2): easyeffects-DEBUG: 12:46:33.695: lv2_wrapper: http://lsp-plug.in/plugins/lv2/sc_limiter_stereo requires feature: http://lv2plug.in/ns/ext/urid#map
(easyeffects:2): easyeffects-DEBUG: 12:46:33.712: lv2_wrapper: http://lsp-plug.in/plugins/lv2/loud_comp_stereo requires feature: http://lv2plug.in/ns/ext/urid#map
(easyeffects:2): easyeffects-DEBUG: 12:46:33.729: lv2_wrapper: urn:zamaudio:ZaMaximX2 requires feature: http://lv2plug.in/ns/ext/urid#map
(easyeffects:2): easyeffects-DEBUG: 12:46:33.729: lv2_wrapper: urn:zamaudio:ZaMaximX2 requires feature: http://lv2plug.in/ns/ext/options#options
(easyeffects:2): easyeffects-DEBUG: 12:46:33.758: lv2_wrapper: http://lsp-plug.in/plugins/lv2/sc_mb_compressor_stereo requires feature: http://lv2plug.in/ns/ext/urid#map
(easyeffects:2): easyeffects-DEBUG: 12:46:33.836: pipe_manager: Filter pe_soe_output_level, id = 233, was added
(easyeffects:2): easyeffects-DEBUG: 12:46:33.838: soe: output_level successfully connected to PipeWire graph
(easyeffects:2): easyeffects-DEBUG: 12:46:33.856: pipe_manager: Filter pe_soe_spectrum, id = 64, was added
(easyeffects:2): easyeffects-DEBUG: 12:46:33.858: soe: spectrum successfully connected to PipeWire graph
(easyeffects:2): easyeffects-DEBUG: 12:46:33.866: pipe_manager: Filter pe_soe_equalizer, id = 198, was added
(easyeffects:2): easyeffects-DEBUG: 12:46:33.870: soe: equalizer successfully connected to PipeWire graph
(easyeffects:2): easyeffects-DEBUG: 12:46:33.912: soe: output_level: new PipeWire blocksize: 512

(easyeffects:2): easyeffects-WARNING **: 12:46:33.921: lv2_wrapper: Could not find the plugin: http://drobilla.net/plugins/mda/Loudness
(easyeffects:2): easyeffects-DEBUG: 12:46:33.921: sie: http://drobilla.net/plugins/mda/Loudness is not installed

(easyeffects:2): easyeffects-WARNING **: 12:46:33.922: lv2_wrapper: http://drobilla.net/plugins/mda/Loudness port symbol not found: loudness

(easyeffects:2): easyeffects-WARNING **: 12:46:33.922: lv2_wrapper: http://drobilla.net/plugins/mda/Loudness port symbol not found: output

(easyeffects:2): easyeffects-WARNING **: 12:46:33.922: lv2_wrapper: http://drobilla.net/plugins/mda/Loudness port symbol not found: link
(easyeffects:2): easyeffects-DEBUG: 12:46:33.940: lv2_wrapper: http://lsp-plug.in/plugins/lv2/sc_compressor_stereo requires feature: http://lv2plug.in/ns/ext/urid#map
(easyeffects:2): easyeffects-DEBUG: 12:46:33.975: lv2_wrapper: http://lsp-plug.in/plugins/lv2/comp_delay_x2_stereo requires feature: http://lv2plug.in/ns/ext/urid#map
(easyeffects:2): easyeffects-DEBUG: 12:46:34.029: lv2_wrapper: http://lsp-plug.in/plugins/lv2/para_equalizer_x32_lr requires feature: http://lv2plug.in/ns/ext/urid#map
(easyeffects:2): easyeffects-DEBUG: 12:46:34.108: lv2_wrapper: http://lsp-plug.in/plugins/lv2/sc_limiter_stereo requires feature: http://lv2plug.in/ns/ext/urid#map
(easyeffects:2): easyeffects-DEBUG: 12:46:34.125: lv2_wrapper: http://lsp-plug.in/plugins/lv2/loud_comp_stereo requires feature: http://lv2plug.in/ns/ext/urid#map
(easyeffects:2): easyeffects-DEBUG: 12:46:34.141: lv2_wrapper: urn:zamaudio:ZaMaximX2 requires feature: http://lv2plug.in/ns/ext/urid#map
(easyeffects:2): easyeffects-DEBUG: 12:46:34.141: lv2_wrapper: urn:zamaudio:ZaMaximX2 requires feature: http://lv2plug.in/ns/ext/options#options
(easyeffects:2): easyeffects-DEBUG: 12:46:34.169: lv2_wrapper: http://lsp-plug.in/plugins/lv2/sc_mb_compressor_stereo requires feature: http://lv2plug.in/ns/ext/urid#map
(easyeffects:2): easyeffects-DEBUG: 12:46:34.230: pipe_manager: Filter pe_sie_output_level, id = 183, was added
(easyeffects:2): easyeffects-DEBUG: 12:46:34.232: sie: output_level successfully connected to PipeWire graph
(easyeffects:2): easyeffects-DEBUG: 12:46:34.237: pipe_manager: Filter pe_sie_spectrum, id = 167, was added
(easyeffects:2): easyeffects-DEBUG: 12:46:34.239: sie: spectrum successfully connected to PipeWire graph
(easyeffects:2): easyeffects-DEBUG: 12:46:34.245: pipe_manager: Filter pe_sie_equalizer, id = 153, was added
(easyeffects:2): easyeffects-DEBUG: 12:46:34.247: sie: equalizer successfully connected to PipeWire graph
(easyeffects:2): easyeffects-DEBUG: 12:46:34.251: pipe_manager: Filter pe_sie_rnnoise, id = 133, was added
(easyeffects:2): easyeffects-DEBUG: 12:46:34.253: sie: rnnoise successfully connected to PipeWire graph
(easyeffects:2): easyeffects-DEBUG: 12:46:34.257: pipe_manager: Filter pe_sie_gate, id = 134, was added
(easyeffects:2): easyeffects-DEBUG: 12:46:34.260: sie: gate successfully connected to PipeWire graph
(easyeffects:2): easyeffects-DEBUG: 12:46:34.267: pipe_manager: Filter pe_sie_deesser, id = 117, was added
(easyeffects:2): easyeffects-DEBUG: 12:46:34.269: sie: deesser successfully connected to PipeWire graph
(easyeffects:2): easyeffects-DEBUG: 12:46:34.276: pipe_manager: Filter pe_sie_limiter, id = 106, was added
(easyeffects:2): easyeffects-DEBUG: 12:46:34.278: sie: limiter successfully connected to PipeWire graph
(easyeffects:2): easyeffects-DEBUG: 12:46:34.282: pipe_manager: Filter pe_sie_multiband_gate, id = 76, was added
(easyeffects:2): easyeffects-DEBUG: 12:46:34.283: sie: multiband_gate successfully connected to PipeWire graph
(easyeffects:2): easyeffects-DEBUG: 12:46:34.288: pipe_manager: Filter pe_sie_compressor, id = 66, was added
(easyeffects:2): easyeffects-DEBUG: 12:46:34.290: sie: compressor successfully connected to PipeWire graph
(easyeffects:2): easyeffects-DEBUG: 12:46:34.294: pipe_manager: Filter pe_sie_multiband_compressor, id = 87, was added
(easyeffects:2): easyeffects-DEBUG: 12:46:34.296: sie: multiband_compressor successfully connected to PipeWire graph
(easyeffects:2): easyeffects-DEBUG: 12:46:34.302: pipe_manager: Filter pe_sie_filter, id = 240, was added
(easyeffects:2): easyeffects-DEBUG: 12:46:34.303: sie: filter successfully connected to PipeWire graph
(easyeffects:2): easyeffects-DEBUG: 12:46:34.306: pipe_manager: Filter pe_sie_reverb, id = 166, was added
(easyeffects:2): easyeffects-DEBUG: 12:46:34.308: sie: reverb successfully connected to PipeWire graph
(easyeffects:2): easyeffects-DEBUG: 12:46:34.311: pipe_manager: Filter pe_sie_pitch, id = 104, was added
(easyeffects:2): easyeffects-DEBUG: 12:46:34.313: sie: pitch successfully connected to PipeWire graph
(easyeffects:2): easyeffects-DEBUG: 12:46:34.316: pipe_manager: Filter pe_sie_stereo_tools, id = 127, was added
(easyeffects:2): easyeffects-DEBUG: 12:46:34.318: sie: stereo_tools successfully connected to PipeWire graph
(easyeffects:2): easyeffects-DEBUG: 12:46:34.323: pipe_manager: Filter pe_sie_maximizer, id = 147, was added
(easyeffects:2): easyeffects-DEBUG: 12:46:34.325: sie: maximizer successfully connected to PipeWire graph
easyeffects-INFO: 12:46:34.365: application: disabling global bypass
(easyeffects:2): easyeffects-DEBUG: 12:46:34.365: application: Running in Background
(easyeffects:2): easyeffects-DEBUG: 12:46:34.369: new default input device: alsa_input.usb-046d_0825_29B33DC0-02.pro-input-0
(easyeffects:2): easyeffects-DEBUG: 12:46:34.371: pipe_manager: new metadata property: 254, target.node, Spa:Id, 123
(easyeffects:2): easyeffects-DEBUG: 12:46:34.371: pipe_manager: Firefox port 186 is connected to easyeffects_sink port 132
(easyeffects:2): easyeffects-DEBUG: 12:46:34.371: pipe_manager: Firefox port 175 is connected to easyeffects_sink port 187
(easyeffects:2): easyeffects-DEBUG: 12:46:34.374: presets_manager: autoloading preset c270mic for device alsa_input.usb-046d_0825_29B33DC0-02.pro-input-0
(easyeffects:2): easyeffects-DEBUG: 12:46:34.375: sie: pipeline latency: 0.000000 ms

(easyeffects:2): easyeffects-WARNING **: 12:46:34.399: presets_manager: [json.exception.type_error.302] type must be array, but is string

(easyeffects:2): easyeffects-WARNING **: 12:46:34.402: [json.exception.type_error.302] type must be string, but is number

(easyeffects:2): GLib-GIO-WARNING **: 12:46:34.403: g_settings_set_value: value for key 'release-threshold' in schema 'com.github.wwmm.easyeffects.compressor' is outside of valid range

(easyeffects:2): easyeffects-WARNING **: 12:46:34.404: [json.exception.out_of_range.403] key 'band0' not found
(easyeffects:2): easyeffects-DEBUG: 12:46:34.405: presets_manager: loaded preset: /home/netherquark/.var/app/com.github.wwmm.easyeffects/config/easyeffects/input/c270mic.json
(easyeffects:2): easyeffects-DEBUG: 12:46:34.427: new default output device: alsa_output.pci-0000_08_00.6.analog-stereo
(easyeffects:2): easyeffects-DEBUG: 12:46:34.429: presets_manager: autoloading preset oratory1990 for device alsa_output.pci-0000_08_00.6.analog-stereo
(easyeffects:2): easyeffects-DEBUG: 12:46:34.430: soe: pipeline latency: 0.000000 ms
(easyeffects:2): easyeffects-DEBUG: 12:46:34.451: presets_manager: loaded preset: /home/netherquark/.var/app/com.github.wwmm.easyeffects/config/easyeffects/output/oratory1990.json
(easyeffects:2): easyeffects-DEBUG: 12:46:34.473: application: device alsa_card.pci-0000_08_00.1 has changed its output route to: hdmi-output-0
(easyeffects:2): easyeffects-DEBUG: 12:46:34.473: application: output autoloading: the target node name does not match the output device name
(easyeffects:2): easyeffects-DEBUG: 12:46:34.473: application: device alsa_card.pci-0000_08_00.6 has changed its output route to: analog-output-lineout
(easyeffects:2): easyeffects-DEBUG: 12:46:34.473: presets_manager: autoloading preset oratory1990 for device alsa_output.pci-0000_08_00.6.analog-stereo
(easyeffects:2): easyeffects-DEBUG: 12:46:34.474: soe: pipeline latency: 0.000000 ms
(easyeffects:2): easyeffects-DEBUG: 12:46:34.497: presets_manager: loaded preset: /home/netherquark/.var/app/com.github.wwmm.easyeffects/config/easyeffects/output/oratory1990.json
(easyeffects:2): easyeffects-DEBUG: 12:46:59.672: application_ui: Icon Theme Yaru-Teal-edited detected
(easyeffects:2): easyeffects-DEBUG: 12:47:00.691: rnnoise_ui: model directory already exists: /home/netherquark/.var/app/com.github.wwmm.easyeffects/config/easyeffects/rnnoise
(easyeffects:2): easyeffects-DEBUG: 12:47:00.985: presets_manager: autoloading preset c270mic for device alsa_input.usb-046d_0825_29B33DC0-02.pro-input-0
(easyeffects:2): easyeffects-DEBUG: 12:47:00.986: sie: pipeline latency: 0.000000 ms

(easyeffects:2): easyeffects-WARNING **: 12:47:01.028: presets_manager: [json.exception.type_error.302] type must be array, but is string

(easyeffects:2): easyeffects-WARNING **: 12:47:01.032: [json.exception.type_error.302] type must be string, but is number

(easyeffects:2): GLib-GIO-WARNING **: 12:47:01.033: g_settings_set_value: value for key 'release-threshold' in schema 'com.github.wwmm.easyeffects.compressor' is outside of valid range

(easyeffects:2): easyeffects-WARNING **: 12:47:01.034: [json.exception.out_of_range.403] key 'band0' not found
(easyeffects:2): easyeffects-DEBUG: 12:47:01.035: presets_manager: loaded preset: /home/netherquark/.var/app/com.github.wwmm.easyeffects/config/easyeffects/input/c270mic.json
(easyeffects:2): easyeffects-DEBUG: 12:47:01.065: presets_manager: autoloading preset oratory1990 for device alsa_output.pci-0000_08_00.6.analog-stereo
(easyeffects:2): easyeffects-DEBUG: 12:47:01.067: soe: pipeline latency: 0.000000 ms
(easyeffects:2): easyeffects-DEBUG: 12:47:01.081: presets_manager: loaded preset: /home/netherquark/.var/app/com.github.wwmm.easyeffects/config/easyeffects/output/oratory1990.json
(easyeffects:2): easyeffects-DEBUG: 12:47:01.103: presets_manager: autoloading preset c270mic for device alsa_input.usb-046d_0825_29B33DC0-02.pro-input-0
(easyeffects:2): easyeffects-DEBUG: 12:47:01.104: sie: pipeline latency: 0.000000 ms

(easyeffects:2): easyeffects-WARNING **: 12:47:01.140: presets_manager: [json.exception.type_error.302] type must be array, but is string

(easyeffects:2): easyeffects-WARNING **: 12:47:01.142: [json.exception.type_error.302] type must be string, but is number

(easyeffects:2): GLib-GIO-WARNING **: 12:47:01.142: g_settings_set_value: value for key 'release-threshold' in schema 'com.github.wwmm.easyeffects.compressor' is outside of valid range

(easyeffects:2): easyeffects-WARNING **: 12:47:01.143: [json.exception.out_of_range.403] key 'band0' not found
(easyeffects:2): easyeffects-DEBUG: 12:47:01.143: presets_manager: loaded preset: /home/netherquark/.var/app/com.github.wwmm.easyeffects/config/easyeffects/input/c270mic.json
(easyeffects:2): easyeffects-DEBUG: 12:47:01.176: presets_manager: autoloading preset oratory1990 for device alsa_output.pci-0000_08_00.6.analog-stereo
(easyeffects:2): easyeffects-DEBUG: 12:47:01.176: soe: pipeline latency: 0.000000 ms
(easyeffects:2): easyeffects-DEBUG: 12:47:01.200: presets_manager: loaded preset: /home/netherquark/.var/app/com.github.wwmm.easyeffects/config/easyeffects/output/oratory1990.json
(easyeffects:2): easyeffects-DEBUG: 12:47:01.972: portal: background request successfully completed
(easyeffects:2): easyeffects-DEBUG: 12:47:08.854: soe: pipeline latency: 0.000000 ms
(easyeffects:2): easyeffects-DEBUG: 12:47:08.869: pipe_manager: Filter pe_soe_bass_enhancer, id = 184, was added
(easyeffects:2): easyeffects-DEBUG: 12:47:08.871: soe: bass_enhancer successfully connected to PipeWire graph

(easyeffects:2): easyeffects-WARNING **: 12:47:09.010: [json.exception.type_error.302] type must be number, but is string
(easyeffects:2): easyeffects-DEBUG: 12:47:09.025: presets_manager: loaded preset: /home/netherquark/.var/app/com.github.wwmm.easyeffects/config/easyeffects/output/bassy-k361.json
(easyeffects:2): easyeffects-DEBUG: 12:47:17.204: application_ui: destroyed
(easyeffects:2): easyeffects-DEBUG: 12:47:21.420: application_ui: Icon Theme Yaru-Teal-edited detected
(easyeffects:2): easyeffects-DEBUG: 12:47:22.188: rnnoise_ui: model directory already exists: /home/netherquark/.var/app/com.github.wwmm.easyeffects/config/easyeffects/rnnoise
(easyeffects:2): easyeffects-DEBUG: 12:47:22.457: presets_manager: autoloading preset c270mic for device alsa_input.usb-046d_0825_29B33DC0-02.pro-input-0
(easyeffects:2): easyeffects-DEBUG: 12:47:22.458: sie: pipeline latency: 0.000000 ms

(easyeffects:2): easyeffects-WARNING **: 12:47:22.489: presets_manager: [json.exception.type_error.302] type must be array, but is string

(easyeffects:2): easyeffects-WARNING **: 12:47:22.493: [json.exception.type_error.302] type must be string, but is number

(easyeffects:2): GLib-GIO-WARNING **: 12:47:22.493: g_settings_set_value: value for key 'release-threshold' in schema 'com.github.wwmm.easyeffects.compressor' is outside of valid range

(easyeffects:2): easyeffects-WARNING **: 12:47:22.495: [json.exception.out_of_range.403] key 'band0' not found
(easyeffects:2): easyeffects-DEBUG: 12:47:22.496: presets_manager: loaded preset: /home/netherquark/.var/app/com.github.wwmm.easyeffects/config/easyeffects/input/c270mic.json
(easyeffects:2): easyeffects-DEBUG: 12:47:22.525: presets_manager: autoloading preset oratory1990 for device alsa_output.pci-0000_08_00.6.analog-stereo
(easyeffects:2): easyeffects-DEBUG: 12:47:22.526: soe: pipeline latency: 0.000000 ms
(easyeffects:2): easyeffects-DEBUG: 12:47:22.544: bass_enhancer ui destroyed
(easyeffects:2): easyeffects-DEBUG: 12:47:22.546: bass_enhancer ui destroyed
(easyeffects:2): easyeffects-DEBUG: 12:47:22.552: presets_manager: loaded preset: /home/netherquark/.var/app/com.github.wwmm.easyeffects/config/easyeffects/output/oratory1990.json
(easyeffects:2): easyeffects-DEBUG: 12:47:22.570: presets_manager: autoloading preset c270mic for device alsa_input.usb-046d_0825_29B33DC0-02.pro-input-0
(easyeffects:2): easyeffects-DEBUG: 12:47:22.570: sie: pipeline latency: 0.000000 ms

(easyeffects:2): easyeffects-WARNING **: 12:47:22.611: presets_manager: [json.exception.type_error.302] type must be array, but is string

(easyeffects:2): easyeffects-WARNING **: 12:47:22.613: [json.exception.type_error.302] type must be string, but is number

(easyeffects:2): GLib-GIO-WARNING **: 12:47:22.614: g_settings_set_value: value for key 'release-threshold' in schema 'com.github.wwmm.easyeffects.compressor' is outside of valid range

(easyeffects:2): easyeffects-WARNING **: 12:47:22.614: [json.exception.out_of_range.403] key 'band0' not found
(easyeffects:2): easyeffects-DEBUG: 12:47:22.615: presets_manager: loaded preset: /home/netherquark/.var/app/com.github.wwmm.easyeffects/config/easyeffects/input/c270mic.json
(easyeffects:2): easyeffects-DEBUG: 12:47:22.663: presets_manager: autoloading preset oratory1990 for device alsa_output.pci-0000_08_00.6.analog-stereo
(easyeffects:2): easyeffects-DEBUG: 12:47:22.663: soe: pipeline latency: 0.000000 ms
(easyeffects:2): easyeffects-DEBUG: 12:47:22.685: presets_manager: loaded preset: /home/netherquark/.var/app/com.github.wwmm.easyeffects/config/easyeffects/output/oratory1990.json
(easyeffects:2): easyeffects-DEBUG: 12:47:22.873: portal: background request successfully completed
(easyeffects:2): easyeffects-DEBUG: 12:47:31.503: application_ui: destroyed
(easyeffects:2): easyeffects-DEBUG: 12:47:31.550: spectrum_ui: destroyed
(easyeffects:2): easyeffects-DEBUG: 12:47:31.550: plot: destroyed
(easyeffects:2): easyeffects-DEBUG: 12:47:31.585: equalizer ui destroyed
(easyeffects:2): easyeffects-DEBUG: 12:47:31.586: soe_ui: destroyed
(easyeffects:2): easyeffects-DEBUG: 12:47:31.586: effects_base_ui: destroyed
(easyeffects:2): easyeffects-DEBUG: 12:47:31.587: spectrum_ui: destroyed
(easyeffects:2): easyeffects-DEBUG: 12:47:31.587: plot: destroyed
(easyeffects:2): easyeffects-DEBUG: 12:47:31.611: equalizer ui destroyed
(easyeffects:2): easyeffects-DEBUG: 12:47:31.612: rnnoise ui destroyed
(easyeffects:2): easyeffects-DEBUG: 12:47:31.615: gate ui destroyed
(easyeffects:2): easyeffects-DEBUG: 12:47:31.618: deesser ui destroyed
(easyeffects:2): easyeffects-DEBUG: 12:47:31.623: limiter ui destroyed
(easyeffects:2): easyeffects-DEBUG: 12:47:31.630: multiband_gate ui destroyed
(easyeffects:2): easyeffects-DEBUG: 12:47:31.636: compressor ui destroyed
(easyeffects:2): easyeffects-DEBUG: 12:47:31.653: multiband_compressor ui destroyed
(easyeffects:2): easyeffects-DEBUG: 12:47:31.656: filter ui destroyed
(easyeffects:2): easyeffects-DEBUG: 12:47:31.659: reverb ui destroyed
(easyeffects:2): easyeffects-DEBUG: 12:47:31.660: pitch ui destroyed
(easyeffects:2): easyeffects-DEBUG: 12:47:31.663: stereo_tools ui destroyed
(easyeffects:2): easyeffects-DEBUG: 12:47:31.664: maximizer ui destroyed
(easyeffects:2): easyeffects-DEBUG: 12:47:31.665: sie_ui: destroyed
(easyeffects:2): easyeffects-DEBUG: 12:47:31.665: effects_base_ui: destroyed
(easyeffects:2): easyeffects-DEBUG: 12:47:31.670: pipe_info: destroyed
(easyeffects:2): easyeffects-DEBUG: 12:47:31.670: test signals:  destroyed
(easyeffects:2): easyeffects-DEBUG: 12:47:31.679: presets_menu_ui: destroyed
(easyeffects:2): easyeffects-DEBUG: 12:47:31.680: general_settings_ui: destroyed
(easyeffects:2): easyeffects-DEBUG: 12:47:31.682: spectrum_settings_ui: destroyed
^Z
[1]  + 162333 suspended  G_MESSAGES_DEBUG=easyeffects flatpak run com.github.wwmm.easyeffects 
Netherquark commented 2 years ago

As for the Flatseal background permissions thing, I think I granted the permission via FlatSeal.

Netherquark commented 2 years ago

Any updates on this?

vchernin commented 2 years ago

The way the portal works is a lot smarter now as of today's 6.2.0 release (on Flathub). It will only let you enable "start service at login" and disable "shutdown on window close" explictly when there is functional portal support.

However I'm not sure if that will help here, since you had given background portal access anyhow.

Has this behaviour in this bug (default EQ being set) changed for you? Is shutdown on window close disabled? (it probably would make sense to if you want to keep the service running).

vchernin commented 2 years ago

Looking at the logs I am concerned with these:

(easyeffects:2): easyeffects-WARNING **: 12:46:34.399: presets_manager: [json.exception.type_error.302] type must be array, but is string

(easyeffects:2): easyeffects-WARNING **: 12:46:34.402: [json.exception.type_error.302] type must be string, but is number

(easyeffects:2): GLib-GIO-WARNING **: 12:46:34.403: g_settings_set_value: value for key 'release-threshold' in schema 'com.github.wwmm.easyeffects.compressor' is outside of valid range

Could you link where you got this preset from? Perhaps the preset is buggy/is only for PulseEffects. Or maybe there's poor handling on EasyEffects' end.

Netherquark commented 2 years ago

@vchernin ill update and check it out. I have start service on login enabled and shutdown on window close disabled fyi. I will also send my presets once I boot my computer so you can check them out. I created them on PulseEffects and used the "official" preset updater which was linked in a pinned issue on this repo to make them compatible with easyeffects

Netherquark commented 2 years ago

Here are all the presets I use:

presets.zip

Netherquark commented 2 years ago

"oratory1990.json" is the one that ive set to autoload with lineout

Netherquark commented 2 years ago

Also the issue seems to persist with version 6.2.0? Or is it still 6.1.5? I'm not sure here are screenshots: image image image

Netherquark commented 2 years ago

Okay sorry I restarted my computer, EasyEffects got updated and the issue is gone. The new UI looks beautiful too! Keep up the good work :)

also, I would like to thank any and all contributors on this project for being so helpful and receptive, it sets a good precedent

vchernin commented 2 years ago

Glad to hear it worked!

On the update needing a reboot, it's likely because you had shutdown on window closed disabled. Every time you tried to close to window it would have just "hidden" the window and kept the app running in the background.

What might help in these situations is to ask to actually restart EasyEffects if there is an update. There is a portal that helps, I know it at least works in Flatpak.

@wwmm does this make sense? Are there other situations where we should ask the user to restart EE?

wwmm commented 2 years ago

does this make sense? Are there other situations where we should ask the user to restart EE?

In most cases the reason to reboot is an update to the audio server(PipeWire). In the past many users solved their problems by rebooting after upgrading Pulseaudio. I imagine the same still applies to PipeWire. I do not remember now cases where an upgrade to EasyEffects required it to be killed and restarted. It may be something really particular to this issue situation.

vchernin commented 2 years ago

I do not remember now cases where an upgrade to EasyEffects required it to be killed and restarted. It may be something really particular to this issue situation.

I can easily reproduce their issue when shutdown on window close is disabled. EasyEffects will not actually shut down because it is not being told to, so users will be on the older version until something quits the app. Of course ctrl + q would work but that's a bit easy to forget about.

I don't really see a way to notify EasyEffects if PipeWire updates, other than checking the version reported every so often or something hacky... I do see a way to at least get the user to restart the Flatpak app if EE updates.

At least for PipeWire maybe that could be a feature request. I assume other audio apps also might want to be restarted if PipeWire is restarted?

wwmm commented 2 years ago

At least for PipeWire maybe that could be a feature request. I assume other audio apps also might want to be restarted if PipeWire is restarted?

It is more about the user restarting its computer after updating the server than restarting the audio application. I am not sure about what happens exactly. But in Pulseaudio it was quite common having to reboot the computer after upgrading the server.

Netherquark commented 2 years ago

My opinion here is probably pointless, but here I go: As the user, I think expecting the user to reboot for an EasyEffects update isn't THAT unexpected. For the amount of times I've heard Linuxers say "Oh you never have to reboot unless you want to on Linux", I have to reboot once a week or so, or weird issues start cropping up, like running out of memory or whatever. I'm not here to complain, its fine, but all I'm saying is, if you can't figure out how to track PipeWire updates, how to automatically initiate PipeWire/EasyEffects reboots, etc. just a popup from EasyEffects saying "You will need to reboot your computer in order for EE to be updated" wouldn't be that irritating, atleast IMO. I'm sure there is a way to get it working without reboots, but if you people can't figure it out, rebooting is fine too

vchernin commented 2 years ago

It is more about the user restarting its computer after updating the server than restarting the audio application

I see, yeah that's out of scope here.

I will investigate using the update monitor portal when I have time.

vchernin commented 2 years ago

My opinion here is probably pointless

I don't think so :)

"Oh you never have to reboot unless you want to on Linux"

This one annoys me... at least Fedora encourages reboots for system package update (non Flatpak). I've found it to be necessary too.

"You will need to reboot your computer in order for EE to be updated"

This is what the proposed prompt would be, except you will only be asked to restart EasyEffects. It should be safe to update a Flatpak without rebooting, the confusion here is shutdown on window close, but I think it's necessary to keep that.

PipeWire as mentioned above is best handled by the system, so that should be encouraging reboots. But with EasyEffects we should be able to get away without rebooting.

Netherquark commented 2 years ago

makes sense :) I'm afraid this is as far as my knowledge goes. I'll read yalls conversation and hopefully learn a thing or two. carry on

vchernin commented 2 years ago

Luckily, it turns out we don't need any portal. Flatpak is supposed to create the marker file /app/.updated (in the sandbox) which means the app has been updated. So that can be used to prompt the user to restart EE to apply the update that they already did. Blogs: part 1 and part 2

Found the author's commit, and later they cleaned it up. @wwmm would you accept a PR to implement more or less that here? Is there a particular file that such an implementation should go in?

Note there is no libportal dependency. It is just checking if a file exists. Now, that signal should never be sent on non-flatpak builds, but even if so as far as I can tell it won't cause any harm. Worst case if that file incorrectly exists in non flatpak builds, they get a strange restart prompt.

I think the only case where we should ask to restart EE is when shutdown on window close is disabled. Since when shutdown on window close is enabled, you can just use the close button, and I think most users understand closing an app is necessary to update.

wwmm commented 2 years ago

Including the flag G_APPLICATION_ALLOW_REPLACEMENT is fine. No problems. But it is weird to have the rest in non Flatpak builds. File monitoring isn't heavy on resources. But it will still be something running in the background without offering any benefit outside of Flatpak.

With G_APPLICATION_ALLOW_REPLACEMENT in place I imagine a script could just call --gapplication-replace after an update. Or not?

vchernin commented 2 years ago

To make it easier to understand their implementation I squashed their (3?) relevant commits https://github.com/vchernin/portal-test/commit/d99c0904f65778ee358a98b4d6bde224b041d270

But it will still be something running in the background without offering any benefit outside of Flatpak.

It should be possible to only run the file monitor if /.flatpak-info is present (i.e. it is in a Flatpak sandbox). I think /.flatpak-info only really needs to be checked once at launch time, still that might be overly complex.

In theory a similar thing could be done for other packages, but I couldn't find an equivalent for non-Flatpak.

With G_APPLICATION_ALLOW_REPLACEMENT in place I imagine a script could just call --gapplication-replace after an update. Or not?

As far as I understand this is essentially what is already happening in the example. The "script" is actually the app using flatpak spawn to run --gapplication-replace outside of the sandbox when it detects an update.

The difficulty is that apparently the only way for a Flatpak to detect an update is /app/.updated. By design, the running instance of the Flatpak is not mutated when a user runs flatpak update (with /app/.updated being the one exception). This avoids weird crashes where files, fonts and other things are changed from underneath the app while it's running.

Netherquark commented 2 years ago

seems like the issue is still there :/

vchernin commented 2 years ago

If I set an EQ apart from the default loading Oratory1990, say bassy-k361, and then close EE, returning back to my work, it works as intended. But whenever I reopen EE to do whatever, it reverts to the Oratory1990 EQ again.

I can reproduce following this. I can also do it just with simple presets I created myself.

I think the problem is pretty clear. The problematic behaviour is preset autoloading is happening when opening the app from running in the background.

The expectation is that preset autoloading only happens when actually fresh starting the app.

@wwmm what do you think, should preset autoloading happen when opening the app from the background?

wwmm commented 2 years ago

Let's summarize what is supposed to happen in some situations. First when an autoloading profile is supposed to trigger

Now to the cases where the profile is not loaded

wwmm commented 2 years ago

The expectation is that preset autoloading only happens when actually fresh starting the app.

Or like I said above if the device is plugged when EE is already running. On my computer I can open and close EE window many times when it is running as a service without this triggering an autoloading. Something unusual is happening in the Flatpak container. Maybe the way gtk tries to ensure single instance execution is being messed up by the Flatpak sandbox.

wwmm commented 2 years ago

Maybe the way gtk tries to ensure single instance execution is being messed up by the Flatpak sandbox.

But in that case many other problems would also happen. It has to be something more subtle.

vchernin commented 2 years ago

After starting EE as a gapplication service, I reproduced the issue as above. By opening the app after it was running in the background, and beforehand I had changed the preset from the one being autoloaded.

(easyeffects:2): easyeffects-DEBUG: 11:20:46.952: application_ui: Icon Theme Adwaita detected
(easyeffects:2): easyeffects-DEBUG: 11:20:47.108: presets_manager: autoloading preset vchernin-pre1 for device alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp__sink
(easyeffects:2): easyeffects-DEBUG: 11:20:47.108: soe: pipeline latency: 0.020833 ms
(easyeffects:2): easyeffects-DEBUG: 11:20:47.108: soe: disconnecting the pitch filter from PipeWire
(easyeffects:2): easyeffects-DEBUG: 11:20:47.114: pipe_manager: Filter ee_soe_crystalizer, id = 131, was added
(easyeffects:2): easyeffects-DEBUG: 11:20:47.115: soe: crystalizer successfully connected to PipeWire graph
(easyeffects:2): easyeffects-DEBUG: 11:20:47.121: pitch_box: disposed
(easyeffects:2): easyeffects-DEBUG: 11:20:47.124: pitch_box: data struct destroyed
(easyeffects:2): easyeffects-DEBUG: 11:20:47.124: pitch_box: finalized
(easyeffects:2): easyeffects-DEBUG: 11:20:47.164: app_info: Firefox disposed
(easyeffects:2): easyeffects-DEBUG: 11:20:47.165: app_info: Firefox finalized
(easyeffects:2): easyeffects-DEBUG: 11:20:47.165: app_info: data struct destroyed
(easyeffects:2): easyeffects-DEBUG: 11:20:47.171: presets_manager: loaded preset: /var/home/v/.var/app/com.github.wwmm.easyeffects/config/easyeffects/output/vchernin-pre1.json
wwmm commented 2 years ago

Was the log above printed in the terminal where easyeffects --gapplication-service was executed or in the one where easyeffects was called to open the window?

wwmm commented 2 years ago

It would probably be good to see the logs from both sides. When an instance is already running the log printed by a new execution attempt should be very short.

vchernin commented 2 years ago

Was the log above printed in the terminal where easyeffects --gapplication-service was executed or in the one where easyeffects was called to open the window?

The first. This next log is in the one where easyeffects was run to open the window.

You have PipeWire 0.3.40 installed
This is newer or the same as PipeWire 0.3.31 required to run EasyEffects
(process:2): easyeffects-DEBUG: 13:18:39.040: easyeffects version: 6.2.1
(process:2): easyeffects-DEBUG: 13:18:39.043: main: locale directory: /app/share/locale
(easyeffects:2): easyeffects-DEBUG: 13:18:39.080: presets_manager: system input presets directory: "/app/etc/xdg/easyeffects/input"; 
(easyeffects:2): easyeffects-DEBUG: 13:18:39.080: presets_manager: system input presets directory: "/etc/easyeffects/input"; 
(easyeffects:2): easyeffects-DEBUG: 13:18:39.080: presets_manager: system input presets directory: "/etc/xdg/easyeffects/input"; 
(easyeffects:2): easyeffects-DEBUG: 13:18:39.080: presets_manager: system output presets directory: "/app/etc/xdg/easyeffects/output"; 
(easyeffects:2): easyeffects-DEBUG: 13:18:39.080: presets_manager: system output presets directory: "/etc/easyeffects/output"; 
(easyeffects:2): easyeffects-DEBUG: 13:18:39.080: presets_manager: system output presets directory: "/etc/xdg/easyeffects/output"; 
(easyeffects:2): easyeffects-DEBUG: 13:18:39.080: presets_manager: user presets directory already exists: /var/home/v/.var/app/com.github.wwmm.easyeffects/config/easyeffects/
(easyeffects:2): easyeffects-DEBUG: 13:18:39.080: presets_manager: user presets directory already exists: /var/home/v/.var/app/com.github.wwmm.easyeffects/config/easyeffects/input
(easyeffects:2): easyeffects-DEBUG: 13:18:39.080: presets_manager: user presets directory already exists: /var/home/v/.var/app/com.github.wwmm.easyeffects/config/easyeffects/output
(easyeffects:2): easyeffects-DEBUG: 13:18:39.080: presets_manager: user presets directory already exists: /var/home/v/.var/app/com.github.wwmm.easyeffects/config/easyeffects/autoload/input
(easyeffects:2): easyeffects-DEBUG: 13:18:39.080: presets_manager: user presets directory already exists: /var/home/v/.var/app/com.github.wwmm.easyeffects/config/easyeffects/autoload/output
(easyeffects:2): easyeffects-DEBUG: 13:18:39.488: Exitting the main function with status: 1

I wonder if the Flatpak-specific pipewire checker script is interfering here. I will try that later.

wwmm commented 2 years ago

This next log is in the one where easyeffects was run to open the window.

Nothing unusual on it. I was wondering if gtk was aborting the execution after the point it is supposed to but that does not seem to be the case. At this moment I have no idea about what could be going wrong in the Flatpak container :-(