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

Feature request: VST3 support on Linux #10

Open
mzuther opened this issue May 23, 2020 · 15 comments
Open

Feature request: VST3 support on Linux #10

mzuther opened this issue May 23, 2020 · 15 comments

Comments

@mzuther
Copy link
Owner

mzuther commented May 23, 2020

Is your feature request related to a problem? If so, please describe.

A Linux VST3 plug-in seems both feasible and a good solution to the VST2 channel problem in issue #9. Bitwig appears to support this scenario on Linux and @metasequence is willing to help me.

Describe the solution you'd like

A VST3 plug-in that works on at least one DAW.

Describe alternatives you've considered

There is none - side-chains on VST2 are and always will be a hack.

Additional context

Envisioned target: Bitwig 3.1.3 on Ubuntu 20.04 x64

@mzuther
Copy link
Owner Author

mzuther commented May 23, 2020

This should be relatively simple. As a preliminary, d231c88 causes new releases of Squeezer to conform to the new VST3 package format.

@mzuther
Copy link
Owner Author

mzuther commented May 24, 2020

My first attempt is done!

Please download and extract this archive. It contains a folder squeezer.vst3 which has to be copied to your plug-in folder completely the way it is. Yes, I know, a folder looks a bit weird, but that's the new VST3 "package format"...

I'd try $HOME/.vst3/ first. If this doesn't work, please read this document for alternative locations.

Good luck!

@metasequence
Copy link

Wow that was fast! 😃

I've given this a try but so far I am unsuccessful in getting it working. The plugin does not show up in either Bitwig or Reaper for me.

I use Linux VST3 plugins from U-he so I have a basic understanding of the format. I have placed the "squeezer.vst3" directory from the archive inside my /home/user/.vst3 where my other plugins are. The directory hierarchy looks good to me and is consistent with other VST3 plugins that are working. Here is the tree:

squeezer.vst3/
└── Contents
├── Resources
│   ├── Documentation
│   │   ├── CC-BY-SA-4.0
│   │   ├── CONTRIBUTORS
│   │   ├── HISTORY
│   │   ├── LICENSE
│   │   └── squeezer.pdf
│   └── Skins
│   ├── Default
│   │   ├── backgrounds
│   │   │   └── background.png
│   │   ├── buttons
│   │   │   ├── button_about_off.png
│   │   │   ├── button_about_on.png
│   │   │   ├── button_about_over.png
│   │   │   ├── button_auto_makeup_gain_off.png
│   │   │   ├── button_auto_makeup_gain_on.png
│   │   │   ├── button_auto_makeup_gain_over.png
│   │   │   ├── button_bypass_off.png
│   │   │   ├── button_bypass_on.png
│   │   │   ├── button_bypass_over.png
│   │   │   ├── button_curve_linear_off.png
│   │   │   ├── button_curve_linear_on.png
│   │   │   ├── button_curve_linear_over.png
│   │   │   ├── button_curve_smooth_branching_off.png
│   │   │   ├── button_curve_smooth_branching_on.png
│   │   │   ├── button_curve_smooth_branching_over.png
│   │   │   ├── button_curve_smooth_decoupled_off.png
│   │   │   ├── button_curve_smooth_decoupled_on.png
│   │   │   ├── button_curve_smooth_decoupled_over.png
│   │   │   ├── button_design_feedback_off.png
│   │   │   ├── button_design_feedback_on.png
│   │   │   ├── button_design_feedback_over.png
│   │   │   ├── button_gainstage_optical_off.png
│   │   │   ├── button_gainstage_optical_on.png
│   │   │   ├── button_gainstage_optical_over.png
│   │   │   ├── button_knee_hard_off.png
│   │   │   ├── button_knee_hard_on.png
│   │   │   ├── button_knee_hard_over.png
│   │   │   ├── button_knee_medium_off.png
│   │   │   ├── button_knee_medium_on.png
│   │   │   ├── button_knee_medium_over.png
│   │   │   ├── button_knee_soft_off.png
│   │   │   ├── button_knee_soft_on.png
│   │   │   ├── button_knee_soft_over.png
│   │   │   ├── button_reset_off.png
│   │   │   ├── button_reset_on.png
│   │   │   ├── button_reset_over.png
│   │   │   ├── button_rms_window_off.png
│   │   │   ├── button_rms_window_on.png
│   │   │   ├── button_rms_window_over.png
│   │   │   ├── button_settings_off.png
│   │   │   ├── button_settings_on.png
│   │   │   ├── button_settings_over.png
│   │   │   ├── button_sidechain_external_off.png
│   │   │   ├── button_sidechain_external_on.png
│   │   │   ├── button_sidechain_external_over.png
│   │   │   ├── button_sidechain_listen_off.png
│   │   │   ├── button_sidechain_listen_on.png
│   │   │   ├── button_sidechain_listen_over.png
│   │   │   ├── button_skin_off.png
│   │   │   ├── button_skin_on.png
│   │   │   └── button_skin_over.png
│   │   ├── Default.svg
│   │   ├── green_lemon.svg
│   │   ├── labels
│   │   │   └── label_debug.png
│   │   ├── LICENSE
│   │   ├── meters
│   │   │   ├── meter_gain_reduction.png
│   │   │   ├── meter_input.png
│   │   │   └── meters_vertical.png
│   │   └── sliders
│   │   ├── slider_attack.png
│   │   ├── slider_hpf.png
│   │   ├── slider_output.png
│   │   └── slider_threshold.png
│   └── Default.skin
└── x86_64-linux
├── squeezer_mono_vst3_x64.so
└── squeezer_stereo_vst3_x64.so

11 directories, 71 files

Bitwig has a log for plugins with errors, but it doesn't show anything at all for Squeezer so it looks like it may not even be trying to initialize it. I need to do some research to see what kind of debug options are available here.

It does not show in Reaper for Linux either. Again, I need to do some research here to see what debug options are available.

I'm going to continue working on this and see if I can provide anything useful.

@metasequence
Copy link

Here's what I get from Bitwig debug. It looks like there is a reference to a file from the i686 version that is not included.

[2020-05-24 14:39:03 indexer error] Could not read metadata for squeezer.vst3:
java.io.IOException: com.bitwig.flt.library.metadata.reader.exception.CouldNotReadMetadataException: could not read metadata: /home/user/.vst3/squeezer.vst3/Contents/i686-linux/squeezer.so
at fd.vnk(SourceFile:45)
at fd.Zmw(SourceFile:21)
at znp.ogB(SourceFile:840)
at znp.HXU(SourceFile:771)
at wxu.HXU(SourceFile:591)
at xcI.HXU(SourceFile:44)
at xcI.preVisitDirectory(SourceFile:16)
at java.base/java.nio.file.Files.walkFileTree(Unknown Source)
at tZy.ogB(SourceFile:622)
at tZy.HXU(SourceFile:604)
at mCP.HXU(SourceFile:276)
at Iju.HXU(SourceFile:881)
at znp.HXU(SourceFile:565)
at znp.ogB(SourceFile:189)
at znp.HXU(SourceFile:139)
at FoR.HXU(SourceFile:573)
at DvM.HXU(SourceFile:1025)
at DvM.ogB(SourceFile:897)
at pBu.ogB(SourceFile:110)
at pBu.run(SourceFile:91)
at gnb.run(SourceFile:20)
Caused by: com.bitwig.flt.library.metadata.reader.exception.CouldNotReadMetadataException: could not read metadata: /home/user/.vst3/squeezer.vst3/Contents/i686-linux/squeezer.so
at AC.HXU(SourceFile:163)
at AC.Zmw(SourceFile:30)
at v2e.Zmw(SourceFile:14)
at fd.vnk(SourceFile:41)
... 20 more
Caused by: java.nio.file.NoSuchFileException: /home/user/.vst3/squeezer.vst3/Contents/i686-linux/squeezer.so
at java.base/sun.nio.fs.UnixException.translateToIOException(Unknown Source)
at java.base/sun.nio.fs.UnixException.rethrowAsIOException(Unknown Source)
at java.base/sun.nio.fs.UnixException.rethrowAsIOException(Unknown Source)
at java.base/sun.nio.fs.UnixFileAttributeViews$Basic.readAttributes(Unknown Source)
at java.base/sun.nio.fs.UnixFileSystemProvider.readAttributes(Unknown Source)
at java.base/sun.nio.fs.LinuxFileSystemProvider.readAttributes(Unknown Source)
at java.base/java.nio.file.Files.readAttributes(Unknown Source)
at tZy.ogB(SourceFile:214)
at eFJ.HXU(SourceFile:231)
at eFJ.HXU(SourceFile:209)
at Iju.HXU(SourceFile:369)
at com.bitwig.base.io.SaB.HXU(SourceFile:20)
at qeL.JDw(SourceFile:117)
at qeL.b_(SourceFile:87)
at JrW.Zmw(SourceFile:470)
at ZxV.ogB(SourceFile:34)
at kvd.HXU(SourceFile:106)
at kvd.JDw(SourceFile:101)
at PGP.HXU(SourceFile:284)
at AC.HXU(SourceFile:159)
... 23 more

[2020-05-24 14:39:03 base-util info] Updating index /home/user/.vst3 for phase vst3_plugins_64: time=4.433068
[2020-05-24 14:39:03 base-util info] Updating index /home/user/.winvst for phase vst3_plugins_64: time=8.646515
[2020-05-24 14:39:03 base-util info] Updating index /home/user/.vst for phase vst3_plugins_32: time=0.848963
[2020-05-24 14:39:03 indexer error] Could not read metadata for squeezer.vst3:
java.io.IOException: com.bitwig.flt.library.metadata.reader.exception.CouldNotReadMetadataException: could not read metadata: /home/user/.vst3/squeezer.vst3/Contents/i686-linux/squeezer.so
at fd.vnk(SourceFile:45)
at fd.Zmw(SourceFile:21)
at znp.ogB(SourceFile:840)
at znp.HXU(SourceFile:771)
at wxu.HXU(SourceFile:591)
at xcI.HXU(SourceFile:44)
at xcI.preVisitDirectory(SourceFile:16)
at java.base/java.nio.file.Files.walkFileTree(Unknown Source)
at tZy.ogB(SourceFile:622)
at tZy.HXU(SourceFile:604)
at mCP.HXU(SourceFile:276)
at Iju.HXU(SourceFile:881)
at znp.HXU(SourceFile:565)
at znp.ogB(SourceFile:189)
at znp.HXU(SourceFile:139)
at FoR.HXU(SourceFile:573)
at DvM.HXU(SourceFile:1025)
at DvM.ogB(SourceFile:897)
at pBu.ogB(SourceFile:110)
at pBu.run(SourceFile:91)
at gnb.run(SourceFile:20)
Caused by: com.bitwig.flt.library.metadata.reader.exception.CouldNotReadMetadataException: could not read metadata: /home/user/.vst3/squeezer.vst3/Contents/i686-linux/squeezer.so
at AC.HXU(SourceFile:163)
at AC.Zmw(SourceFile:30)
at v2e.Zmw(SourceFile:14)
at fd.vnk(SourceFile:41)
... 20 more
Caused by: java.nio.file.NoSuchFileException: /home/user/.vst3/squeezer.vst3/Contents/i686-linux/squeezer.so
at java.base/sun.nio.fs.UnixException.translateToIOException(Unknown Source)
at java.base/sun.nio.fs.UnixException.rethrowAsIOException(Unknown Source)
at java.base/sun.nio.fs.UnixException.rethrowAsIOException(Unknown Source)
at java.base/sun.nio.fs.UnixFileAttributeViews$Basic.readAttributes(Unknown Source)
at java.base/sun.nio.fs.UnixFileSystemProvider.readAttributes(Unknown Source)
at java.base/sun.nio.fs.LinuxFileSystemProvider.readAttributes(Unknown Source)
at java.base/java.nio.file.Files.readAttributes(Unknown Source)
at tZy.ogB(SourceFile:214)
at eFJ.HXU(SourceFile:231)
at eFJ.HXU(SourceFile:209)
at Iju.HXU(SourceFile:369)
at com.bitwig.base.io.SaB.HXU(SourceFile:20)
at qeL.JDw(SourceFile:117)
at qeL.b_(SourceFile:87)
at JrW.Zmw(SourceFile:470)
at ZxV.ogB(SourceFile:34)
at kvd.HXU(SourceFile:106)
at kvd.JDw(SourceFile:101)
at PGP.HXU(SourceFile:284)
at AC.HXU(SourceFile:159)
... 23 more

[2020-05-24 14:39:03 base-util info] Updating index /home/user/.vst3 for phase vst3_plugins_32: time=0.799604

--

In Reaper I can see that the plugin is detected and scanned by Reaper with ID 0038FA15E531D601, but it is not initialized.

Hope this helps!

@mzuther
Copy link
Owner Author

mzuther commented May 24, 2020

Thanks for your efforts!

In contrast to what I believed, my C++ framework does not support VST3 on Linux yet. Full support has been announced for the next release which should arrive in June.

So I think we should stop here and not waste efforts. I will look into this when I upgrade, but this will probably not be until the end of this year. I have been an early upgrader, but have now learned to wait until most of the new bugs have been fixed...

@metasequence
Copy link

Sounds good and makes sense. I'll look forward to testing a new version when you have updated.

@magnetophon
Copy link

Any news on this?
A VST3 is much easier to package for distros.

@mzuther
Copy link
Owner Author

mzuther commented Jul 25, 2020

No, sorry. As I wrote above, I won't touch this until the end of the year. Otherwise, chances are too high that I'll include some nasty bugs.

@magnetophon
Copy link

OK, thanks.

@mzuther
Copy link
Owner Author

mzuther commented Dec 23, 2020

Christmas is here (almost), so how about a little present? https://public.mzuther.de/?dbb193b9276655d4a6c9df6718077d09d6f12e30

This VST3 plug-in works on my Linux Mint 20 with Reaper 6.18. 😄 Mono and stereo processing is supported and I have added UI scaling ("Skin" button), so it would be nice if you checked this functionality.

@magnetophon
Copy link

I thought I'd ask again. :)

@mzuther
Copy link
Owner Author

mzuther commented Sep 19, 2021

It basically works, but there is an issue of the VST3 plugin regarding saving and restoring settings in FL Studio (and possibly other hosts). I will only release a new version when this is fixed, but I have almost no spare time for developing Squeezer.

@38github
Copy link

Let's bump :)

@sjuswede
Copy link

This is a very nice compressor, but would love proper sideband support for Linux. Any news on releasing a vst3 (or clap, while I'm dreaming)?

@RustoMCSpit
Copy link

clap can be done with https://github.com/free-audio/clap-juce-extensions

Repository owner locked as off-topic and limited conversation to collaborators May 29, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants