Closed ghost closed 1 year ago
Follow the step number 3 in this link https://github.com/wwmm/easyeffects/wiki/Reporting-Bugs so we can see some logs besides the warnings about missing plugins you already have. As far as I can see besides lsp-plugins
you also do not have calf
plugins. So the vast majority of EasyEffects plugins are not going to work.
If I use the -r flag, I also get a segfault just for added mirth.
That is strange indeed. Does EasyEffects crash if you try to reset using its Reset Settings
function in the preferences menu?
My distribution doesn't readily supply lsp-plugins, but I've tried every other method of getting them that is valid (building from source, getting the package from the void-packages repo, etc). There was never any change in behavior with any method I tried.
Where did you install lsp-plugins
? The lilv
library used to find LV2 plugins isn't very smart when it comes to the libraries location. If Void is putting things in a custom path lilv may not be able to find it without setting a custom LV2 path environmental variable.
$ G_MESSAGES_DEBUG=easyeffects easyeffects &> run.log
Output: run.log
While the GUI was open, I clicked Reset Settings
. No crash or log message was generated as near as I can tell.
I've run these commands to get calf
and lsp-plugins
:
$ sudo xbps-install calf
$ ./xbps-src pkg lsp-plugins && xi lsp-plugins
The ./xbps-src
and xi
bit is only valid after adding this. Both install without errors or warnings, same behavior in easyeffects.
The ./xbps-src and xi bit is only valid after adding this.
The script seems to be installing under /usr/lib/lv2
. What is done by almost all distributions. So things should be working. Unless on Void /usr/lib/lv2
is inside some kind of sandbox. Does the command lv2ls
see the plugins?
Here's the command output with a bad environment variable LV2_PATH=/home
to see that it can fail:
$ LV2_PATH=/home lv2ls
error: failed to open file /home/adam/manifest.ttl (No such file or directory)
lilv_world_load_file(): error: Error loading file `file:///home/adam/manifest.ttl'
lilv_world_load_bundle(): error: Error reading file:///home/adam/manifest.ttl
error: failed to open file /home/lost+found/manifest.ttl (Permission denied)
lilv_world_load_file(): error: Error loading file `file:///home/lost+found/manifest.ttl'
lilv_world_load_bundle(): error: Error reading file:///home/lost+found/manifest.ttl
Here's the command output with LV2_PATH=/usr/lib/lv2
:
$ LV2_PATH=/usr/lib/lv2 lv2ls
http://calf.sourceforge.net/plugins/Analyzer
http://calf.sourceforge.net/plugins/BassEnhancer
http://calf.sourceforge.net/plugins/CompensationDelay
http://calf.sourceforge.net/plugins/Compressor
http://calf.sourceforge.net/plugins/Crusher
http://calf.sourceforge.net/plugins/Deesser
http://calf.sourceforge.net/plugins/Emphasis
http://calf.sourceforge.net/plugins/EnvelopeFilter
http://calf.sourceforge.net/plugins/Equalizer12Band
http://calf.sourceforge.net/plugins/Equalizer30Band
http://calf.sourceforge.net/plugins/Equalizer5Band
http://calf.sourceforge.net/plugins/Equalizer8Band
http://calf.sourceforge.net/plugins/Exciter
http://calf.sourceforge.net/plugins/Filter
http://calf.sourceforge.net/plugins/Filterclavier
http://calf.sourceforge.net/plugins/Flanger
http://calf.sourceforge.net/plugins/Fluidsynth
http://calf.sourceforge.net/plugins/Gate
http://calf.sourceforge.net/plugins/HaasEnhancer
http://calf.sourceforge.net/plugins/Limiter
http://calf.sourceforge.net/plugins/MonoCompressor
http://calf.sourceforge.net/plugins/MonoInput
http://calf.sourceforge.net/plugins/Monosynth
http://calf.sourceforge.net/plugins/MultiChorus
http://calf.sourceforge.net/plugins/MultiSpread
http://calf.sourceforge.net/plugins/MultibandCompressor
http://calf.sourceforge.net/plugins/MultibandEnhancer
http://calf.sourceforge.net/plugins/MultibandGate
http://calf.sourceforge.net/plugins/MultibandLimiter
http://calf.sourceforge.net/plugins/Organ
http://calf.sourceforge.net/plugins/Phaser
http://calf.sourceforge.net/plugins/Pitch
http://calf.sourceforge.net/plugins/Pulsator
http://calf.sourceforge.net/plugins/Reverb
http://calf.sourceforge.net/plugins/ReverseDelay
http://calf.sourceforge.net/plugins/RingModulator
http://calf.sourceforge.net/plugins/RotarySpeaker
http://calf.sourceforge.net/plugins/Saturator
http://calf.sourceforge.net/plugins/SidechainCompressor
http://calf.sourceforge.net/plugins/SidechainGate
http://calf.sourceforge.net/plugins/SidechainLimiter
http://calf.sourceforge.net/plugins/StereoTools
http://calf.sourceforge.net/plugins/TapeSimulator
http://calf.sourceforge.net/plugins/TransientDesigner
http://calf.sourceforge.net/plugins/VintageDelay
http://calf.sourceforge.net/plugins/Vinyl
http://calf.sourceforge.net/plugins/Vocoder
http://calf.sourceforge.net/plugins/Wavetable
http://calf.sourceforge.net/plugins/XOver2Band
http://calf.sourceforge.net/plugins/XOver3Band
http://calf.sourceforge.net/plugins/XOver4Band
http://lv2plug.in/plugins/eg-amp
http://lv2plug.in/plugins/eg-fifths
http://lv2plug.in/plugins/eg-metro
http://lv2plug.in/plugins/eg-midigate
http://lv2plug.in/plugins/eg-params
http://lv2plug.in/plugins/eg-sampler
http://lv2plug.in/plugins/eg-scope#Mono
http://lv2plug.in/plugins/eg-scope#Stereo
Running the command without touching the environment works the same as if I specify the correct one.
Also, here's the filesystem tree of /usr/lib/lv2
:
$ tree /usr/lib/lv2
/usr/lib/lv2
├── atom.lv2
│ ├── atom-test-utils.c
│ ├── atom-test.c
│ ├── atom.h
│ ├── atom.meta.ttl
│ ├── atom.ttl
│ ├── forge-overflow-test.c
│ ├── forge.h
│ ├── manifest.ttl
│ └── util.h
├── buf-size.lv2
│ ├── buf-size.h
│ ├── buf-size.meta.ttl
│ ├── buf-size.ttl
│ └── manifest.ttl
├── calf.lv2
│ ├── Analyzer.ttl
│ ├── BassEnhancer.ttl
│ ├── CompensationDelay.ttl
│ ├── Compressor.ttl
│ ├── Crusher.ttl
│ ├── Deesser.ttl
│ ├── Emphasis.ttl
│ ├── EnvelopeFilter.ttl
│ ├── Equalizer12Band.ttl
│ ├── Equalizer30Band.ttl
│ ├── Equalizer5Band.ttl
│ ├── Equalizer8Band.ttl
│ ├── Exciter.ttl
│ ├── Filter.ttl
│ ├── Filterclavier.ttl
│ ├── Flanger.ttl
│ ├── Fluidsynth.ttl
│ ├── Gate.ttl
│ ├── HaasEnhancer.ttl
│ ├── Limiter.ttl
│ ├── MonoCompressor.ttl
│ ├── MonoInput.ttl
│ ├── Monosynth.ttl
│ ├── MultiChorus.ttl
│ ├── MultiSpread.ttl
│ ├── MultibandCompressor.ttl
│ ├── MultibandEnhancer.ttl
│ ├── MultibandGate.ttl
│ ├── MultibandLimiter.ttl
│ ├── Organ.ttl
│ ├── Phaser.ttl
│ ├── Pitch.ttl
│ ├── Pulsator.ttl
│ ├── Reverb.ttl
│ ├── ReverseDelay.ttl
│ ├── RingModulator.ttl
│ ├── RotarySpeaker.ttl
│ ├── Saturator.ttl
│ ├── SidechainCompressor.ttl
│ ├── SidechainGate.ttl
│ ├── SidechainLimiter.ttl
│ ├── StereoTools.ttl
│ ├── TapeSimulator.ttl
│ ├── TransientDesigner.ttl
│ ├── VintageDelay.ttl
│ ├── Vinyl.ttl
│ ├── Vocoder.ttl
│ ├── Wavetable.ttl
│ ├── XOver2Band.ttl
│ ├── XOver3Band.ttl
│ ├── XOver4Band.ttl
│ ├── calf.so -> /usr/lib64/calf/calf.so
│ ├── calflv2gui.so
│ ├── manifest.ttl
│ ├── presets-Filter.ttl
│ ├── presets-Flanger.ttl
│ ├── presets-MonoCompressor.ttl
│ ├── presets-Monosynth.ttl
│ ├── presets-Organ.ttl
│ ├── presets-Reverb.ttl
│ └── presets-Wavetable.ttl
├── core.lv2
│ ├── attributes.h
│ ├── lv2.h
│ ├── lv2_util.h
│ ├── lv2core.meta.ttl
│ ├── lv2core.ttl
│ ├── manifest.ttl
│ ├── meta.ttl
│ └── people.ttl
├── data-access.lv2
│ ├── data-access.h
│ ├── data-access.meta.ttl
│ ├── data-access.ttl
│ └── manifest.ttl
├── dynmanifest.lv2
│ ├── dynmanifest.h
│ ├── dynmanifest.meta.ttl
│ ├── dynmanifest.ttl
│ └── manifest.ttl
├── eg-amp.lv2
│ ├── amp.so
│ ├── amp.ttl
│ └── manifest.ttl
├── eg-fifths.lv2
│ ├── fifths.so
│ ├── fifths.ttl
│ └── manifest.ttl
├── eg-metro.lv2
│ ├── manifest.ttl
│ ├── metro.so
│ └── metro.ttl
├── eg-midigate.lv2
│ ├── manifest.ttl
│ ├── midigate.so
│ └── midigate.ttl
├── eg-params.lv2
│ ├── manifest.ttl
│ ├── params.so
│ └── params.ttl
├── eg-sampler.lv2
│ ├── click.wav
│ ├── manifest.ttl
│ ├── sampler.so
│ ├── sampler.ttl
│ └── sampler_ui.so
├── eg-scope.lv2
│ ├── examploscope.so
│ ├── examploscope.ttl
│ ├── examploscope_ui.so
│ └── manifest.ttl
├── event.lv2
│ ├── event-helpers.h
│ ├── event.h
│ ├── event.meta.ttl
│ ├── event.ttl
│ └── manifest.ttl
├── instance-access.lv2
│ ├── instance-access.h
│ ├── instance-access.meta.ttl
│ ├── instance-access.ttl
│ └── manifest.ttl
├── log.lv2
│ ├── log.h
│ ├── log.meta.ttl
│ ├── log.ttl
│ ├── logger.h
│ └── manifest.ttl
├── midi.lv2
│ ├── manifest.ttl
│ ├── midi.h
│ ├── midi.meta.ttl
│ └── midi.ttl
├── morph.lv2
│ ├── manifest.ttl
│ ├── morph.h
│ ├── morph.meta.ttl
│ └── morph.ttl
├── options.lv2
│ ├── manifest.ttl
│ ├── options.h
│ ├── options.meta.ttl
│ └── options.ttl
├── parameters.lv2
│ ├── manifest.ttl
│ ├── parameters.h
│ ├── parameters.meta.ttl
│ └── parameters.ttl
├── patch.lv2
│ ├── manifest.ttl
│ ├── patch.h
│ ├── patch.meta.ttl
│ └── patch.ttl
├── port-groups.lv2
│ ├── manifest.ttl
│ ├── port-groups.h
│ ├── port-groups.meta.ttl
│ └── port-groups.ttl
├── port-props.lv2
│ ├── manifest.ttl
│ ├── port-props.h
│ ├── port-props.meta.ttl
│ └── port-props.ttl
├── presets.lv2
│ ├── manifest.ttl
│ ├── presets.h
│ ├── presets.meta.ttl
│ └── presets.ttl
├── resize-port.lv2
│ ├── manifest.ttl
│ ├── resize-port.h
│ ├── resize-port.meta.ttl
│ └── resize-port.ttl
├── schemas.lv2
│ ├── dcs.ttl
│ ├── dct.ttl
│ ├── doap.ttl
│ ├── foaf.ttl
│ ├── manifest.ttl
│ ├── owl.ttl
│ ├── rdf.ttl
│ ├── rdfs.ttl
│ └── xsd.ttl
├── state.lv2
│ ├── manifest.ttl
│ ├── state.h
│ ├── state.meta.ttl
│ └── state.ttl
├── time.lv2
│ ├── manifest.ttl
│ ├── time.h
│ ├── time.meta.ttl
│ └── time.ttl
├── ui.lv2
│ ├── manifest.ttl
│ ├── ui.h
│ ├── ui.meta.ttl
│ └── ui.ttl
├── units.lv2
│ ├── manifest.ttl
│ ├── units.h
│ ├── units.meta.ttl
│ └── units.ttl
├── uri-map.lv2
│ ├── manifest.ttl
│ ├── uri-map.h
│ ├── uri-map.meta.ttl
│ └── uri-map.ttl
├── urid.lv2
│ ├── manifest.ttl
│ ├── urid.h
│ ├── urid.meta.ttl
│ └── urid.ttl
└── worker.lv2
├── manifest.ttl
├── worker.h
├── worker.meta.ttl
└── worker.ttl
33 directories, 201 files
Running the command without touching the environment works the same as if I specify the correct one.
If lv2ls
sees the plugins there is no reason for EasyEffects not being able to. Both are using the lilv library. Could it be that easyeffects is the one inside a sandbox? or installed in a unusual way? But I am almost sure there are people out there using easyeffects on Void Linux. Strange...
As a test, I tried running LV2_PATH=/usr/lib/lv2 easyeffects
and got the same behavior.
EasyEffects is actually in the official void repos, so I'm not sure why this would be broken if it's officially supported.
Edit: That wasn't a commentary on the quality of this project, more of a "why does my distro ship something to me that doesn't work?" comment. Is there a way to turn on logging for EasyEffects itself?
That wasn't a commentary on the quality of this project, more of a "why does my distro ship something to me that doesn't work?" comment.
No problems :-). Until today the only case I was aware of plugins not being found was #1685. But there what is happening is that the distribution is installing the plugins outside of /usr/lib/lv2
that is the path lilv searches by default. I do not understand what exactly is different in your installation.
Is there a way to turn on logging for EasyEffects itself?
Besides the step number 3 in our wiki that you already followed there is no other easyeffects debugging mode. Maybe if you take a look at the output of sudo journactl -fb
while trying to run easyeffects something interesting will be shown. But I do not have my much hope there will actually be something.
Could you try to build easyeffects and running it from a local folder as explained at https://github.com/wwmm/easyeffects/wiki/Installation-from-Source#build-and-run-without-installing ? This way we will know if moving to the latest version makes any difference.
Could you try to build easyeffects and running it from a local folder as explained at https://github.com/wwmm/easyeffects/wiki/Installation-from-Source#build-and-run-without-installing ? This way we will know if moving to the latest version makes any difference.
Those command have to be done inside easyeffects source code folder
I did run ltrace -e fopen easyeffects
to see what file paths were actually being requested, attached the log. A quick spot check showed that they do exist.. but on my system /usr/lib
is a symlink to /usr/lib64
, would that cause any issues?
but on my system /usr/lib is a symlink to /usr/lib64, would that cause any issues?
Here on Arch Linux it is the other way around. /usr/lib64
that is a symbolic link to /usr/lib
. So you may have the same case as #1685 after all. Try to set LV2_PATH
again but this time using /usr/lib64
instead of /usr/lib
.
Got it working, turned out that the xbps-src
script generated 5 different packages (lsp-plugins{,-jack,-ladspa,-lv2,-vst2}
), and you have to explicitly install the lsp-plugins-lv2
package.
For anyone else that might have this issue and find this thread from google, here are the steps to get EasyEffects on Void at the time of writing:
$ sudo xbps-install calf easyeffects
this
into void-packages/srcpkgs/lsp-plugins
, make the directory as it won't exist.
ln -sf ./srcpkgs/lsp-plugins ./srcpkgs/lsp-plugins-jack
.ln -sf ./srcpkgs/lsp-plugins ./srcpkgs/lsp-plugins-ladspa
.ln -sf ./srcpkgs/lsp-plugins ./srcpkgs/lsp-plugins-lv2
.ln -sf ./srcpkgs/lsp-plugins ./srcpkgs/lsp-plugins-vst2
../xbps-src pkg lsp-plugins-lv2
xi lsp-plugins-lv2
Though I have this working, I'm still not able to apply effects to my audio. But I'll troubleshoot that separately from this issue. Thanks @wwmm!
EasyEffects Version
6.2.4
What package are you using?
Other
Distribution
Void Linux
Describe the bug
Running
easyeffects
oreasyeffects -r
from the command line causes a few thousands warnings to be dumped. Also nothing works afterwards. I can add a plugin, but it has no effect whatsoever. If I use the-r
flag, I also get a segfault just for added mirth.My distribution doesn't readily supply
lsp-plugins
, but I've tried every other method of getting them that is valid (building from source, getting the package from thevoid-packages
repo, etc). There was never any change in behavior with any method I tried.Expected Behavior
No response
Debug Log
Debug Log
[run.log](https://github.com/wwmm/easyeffects/files/10203260/run.log)
Additional Information
No response