juce-framework / JUCE

JUCE is an open-source cross-platform C++ application framework for desktop and mobile applications, including VST, VST3, AU, AUv3, LV2 and AAX audio plug-ins.
https://juce.com
Other
6.68k stars 1.75k forks source link

[Bug]: Honor LV2_PATH/VST3_PATH #1189

Open tobiasBora opened 1 year ago

tobiasBora commented 1 year ago

Detailed steps on how to reproduce the bug

Start a JUCE program, e.g. BespokeSynth: plugins listed in VST3_PATH are not taken into account.

What is the expected behaviour?

The PATH to search for LV2/VST3 should honor the LV2_PATH/VST3_PATH environment path (colon separated list of folders to search for the VST plugins). This is already done for the LADSPA format here and VST here so it should not be to hard to modify (actually any reasons why on MacOS you don't read this variable as well?):

Motivation

Plugins can be located in various places on the system. While LV2 proposes LV2_PATH to search for the paths, the spec for VST3 only mentions fixed paths: unfortunately, sometimes these paths can be impossible to use, either because the OS does not provide such path for security or purity reasons (e.g. Flatpack or NixOs) or because the programs are run without installing them (e.g. nix provides nix run that can run a program without installing it, and I know some people trying to build around it a whole linux music portable installation this way, like https://codeberg.org/PowerUser/universal-studio that actually bundles BespokeSynth… except that it can't detect the plugins for the reasons explained here).

Multiple people reported this as an issue here, and some of them started to use VST3_PATH including Ardour and Carla. It would be great to see BespokeSynth here as well!

Related: https://github.com/BespokeSynth/BespokeSynth/issues/1063

Operating systems

macOS, Linux

What versions of the operating systems?

All of them (tested on NixOs, but the code is explicit)

Architectures

x86_64, ARM, Other, 64-bit, 32-bit

Stacktrace

No response

Plug-in formats (if applicable)

VST3, LV2

Plug-in host applications (DAWs) (if applicable)

All (tested in Bespokesynth)

Testing on the develop branch

The bug is present on the develop branch

Code of Conduct

pjhenning commented 1 year ago

This would be great to have added.