Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Linux VST3 only works with system FluidSynth library #17

Closed
mrbumpy409 opened this issue Aug 8, 2024 · 4 comments
Closed

Linux VST3 only works with system FluidSynth library #17

mrbumpy409 opened this issue Aug 8, 2024 · 4 comments
Assignees

Comments

@mrbumpy409
Copy link

FluidSynth Plugin won't run or scan successfully without the system FluidSynth library installed (libfluidsynth3 in Ubuntu, fluidsynth-libs in Fedora). The plugin doesn't seem to be able to load its bundled FluidSynth library. I can reproduce this issue using both the latest Kubuntu and Fedora KDE live ISO images in VirtualBox. Other Ubuntu and Fedora variants should behave similarly.

Steps to reproduce the bug using the Kubuntu 24.04 live ISO:

  1. Boot into the Kubuntu 24.04 ISO image either natively or using virtualization software.
  2. Download and extract the current release of FluidSynth Plugin and place the FluidSynthPlugin.vst3 folder in ~/.vst3.
  3. Download and extract the Linux version of REAPER.
  4. Run the reaper executable in the REAPER folder and set the audio device to Pulseaudio.
  5. Right-click in the leftmost section of the track area and choose "Insert virtual instrument on new track...". Note that FluidSynthPlugin does not appear in the list of instruments.
  6. Go to "Options" → "Preferences...", then the "Plug-ins" → "VST" page (select on the left). Click "Re-scan..." → "Plugins that failed to scan", and you will see "path/to/FluidSynthPlugin.vst3" on the list, indicating that REAPER failed to scan the plugin.
  7. Exit REAPER.
  8. Open a terminal and run the following commands:
    sudo apt update
    sudo apt install libfluidsynth3
    
  9. Start REAPER, then go to "Options" → "Preferences...", then the "Plug-ins" → "VST" page. Click "Re-scan..." → "Plugins that failed to scan", and select "path/to/FluidSynthPlugin.vst3". It should re-scan and no longer appear on the list.
  10. Click "OK".
  11. Right-click in the leftmost section of the track area and choose "Insert virtual instrument on new track...". You should now see "VST3i: FluidSynthPlugin (DrTT)" in the instrument list.
  12. Add FluidSynth Plugin to the track.
  13. Within the FluidSynth Plugin GUI, right-click and choose "About..."

Result: The FluidSynth version reported will show the system's FluidSynth library version, regardless of which library is bundled with the VST3. This shows that the system's FluidSynth library is being loaded and the plugin's bundled version is being ignored. Manually placing different versions of the FluidSynth library in the VST folder has no effect, as far as I can tell.

@prof-spock
Copy link
Owner

Hello mrbumpy409,

sorry for the long delay, but I spent some time to do some investigation on how to handle the problem professionally.

Unfortunately there are two issues involved:

  • It is not well-discussed in the VST3 standard how to place dynamic libraries in Linux such that they are recognized.

  • For me it is not clear what the baseline installation of some Linux distribution is. This means that I then have to provide a lot of other dynamic link libraries referenced (just in case) and then have the nightmare of keeping them up-to-date (even though they are not direct part of my package).

On the other hand I am not sure that people using the FluidSynthPlugin in Reaper are willing or knowledgeable to install "a package called libfluidsynth" via some Linux package manager. But I do not know the typical Linux musicians; maybe those are more technically inclined than the typical Windows or Mac users.

But since I do not have a better concept for now, I am going to go the route you had proposed: using the FluidSynthPlugin in Linux requires a libfluidsynth installation.

What do you think about that?

Best regards,
Prof. Spock

@mrbumpy409
Copy link
Author

On the other hand I am not sure that people using the FluidSynthPlugin in Reaper are willing or knowledgeable to install "a package called libfluidsynth" via some Linux package manager. But I do not know the typical Linux musicians; maybe those are more technically inclined than the typical Windows or Mac users.

I'm pretty sure every Linux user at some point learns how to install software from the system package manager. You can even contain distro-specific commands for this in your documentation that will cover all of the major Linux distributions, and the users of more esoteric distros will surely be able to figure out how to do it on their systems.

But since I do not have a better concept for now, I am going to go the route you had proposed: using the FluidSynthPlugin in Linux requires a libfluidsynth installation.

I think this is entirely reasonable. I will take some time this week to test your plugin on various distros to ensure compatibility and get you the required commands for installing the FluidSynth libraries. For example, on Debian or Ubuntu-based distros, the command is sudo apt install libfluidsynth3. Issuing that command in the terminal will pull in the FluidSynth library and all of its dependencies.

Regarding compatibility, I had noted that your Linux release of FluidSynth Plugin doesn't work on Ubuntu versions earlier than 23.10, whereas my compiled version does. I'm guessing this is due to software versions used in your Linux setup being too new to work in older Ubuntu versions. I have no idea how this affects non-Ubuntu/Debian distros, but perhaps you may wish to include my compiled version for compatibility with older distros. This is pertinent since Ubuntu offers LTS (long term support) versions of their OS that only do major upgrades every two years. Some popular distros such as Linux Mint (which is based on Ubuntu) are based on these LTS versions, so many people are still using an Ubuntu 22.04 base from two years ago, though most of them will probably be upgraded to 24.04 by the end of the year.

When I do my distro testing this week, I will test to see how both of our plugin versions work in various popular distros, testing both contemporary and LTS OS versions as available. I will report back, and then you will have better intel on how to proceed with the updated release.

Peace,
-~Chris

@prof-spock
Copy link
Owner

Hello mrbumpy409,

first of all thank you very much for your efforts and your support!

I have updated the documentation accordingly: enclosed you'll find the two pages affected. The first describes the installation process in detail, the second is the appendix with package installation instructions for several Linux distributions.

Please have a look and possibly verify those instructions with your ongoing tests.

Best regards,
Prof. Spock

@prof-spock
Copy link
Owner

Hello mrbumpy409,

the new release v0.7.5 removes any fluidsynth library for Linux from the distribution and instead requires a fluidsynth package installation; this is also described in the appendix of the documentation.

Hence the issue should be fixed now.

Please let me know, whether this is correct or not.

Best regards,
Prof. Spock

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants