Squeezer icon indicating copy to clipboard operation
Squeezer copied to clipboard

Feature request: VST3 support on Linux

Open mzuther opened this issue 4 years ago • 15 comments

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 avatar May 23 '20 22:05 mzuther

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

mzuther avatar May 23 '20 22:05 mzuther

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!

mzuther avatar May 24 '20 16:05 mzuther

Wow that was fast! :smiley:

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 avatar May 24 '20 19:05 metasequence

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!

metasequence avatar May 24 '20 19:05 metasequence

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...

mzuther avatar May 24 '20 21:05 mzuther

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

metasequence avatar May 25 '20 18:05 metasequence

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

magnetophon avatar Jul 25 '20 14:07 magnetophon

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.

mzuther avatar Jul 25 '20 15:07 mzuther

OK, thanks.

magnetophon avatar Jul 26 '20 04:07 magnetophon

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. :smile: Mono and stereo processing is supported and I have added UI scaling ("Skin" button), so it would be nice if you checked this functionality.

mzuther avatar Dec 23 '20 17:12 mzuther

I thought I'd ask again. :)

magnetophon avatar Sep 04 '21 15:09 magnetophon

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.

mzuther avatar Sep 19 '21 17:09 mzuther

Let's bump :)

38github avatar Dec 13 '22 23:12 38github

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)?

sjuswede avatar Jan 19 '23 01:01 sjuswede

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

RustoMCSpit avatar Apr 25 '24 17:04 RustoMCSpit