osxmidi / LinVst

Linux Windows vst wrapper/bridge
GNU General Public License v3.0
674 stars 41 forks source link

Why can't we use symlinks? #225

Closed lucmp closed 11 months ago

lucmp commented 11 months ago

Please tell me again why we can't use symlinks to linvst.so (the plugins don't work, I tried) instead of copying it over many many times. You must have said it before but I really don't remember that and I couldn't find it in the closed issues.

Thank you.

osxmidi commented 11 months ago

Please tell me again why we can't use symlinks to linvst.so (the plugins don't work, I tried) instead of copying it over many many times. You must have said it before but I really don't remember that and I couldn't find it in the closed issues.

Thank you.

Hi.

If you mean using linvstconvert to convert a symbolic link that points to a folder of vst files then this one works (I've updated the linvstconvert code as well).

linvstconvert.zip

lucmp commented 11 months ago

No. I mean, instead of copying linvst.so over and renaming it with the same name as the target dll, make a symlink to the master linvst.so and rename the symlink with the same name as the target dll.

In my mind, the DAW should see the symlink, open its target which is the master linvst.so and have it do the same magic it does as a fully copied file.

I suppose the target of a symlink can't capture the "environment" (I assume its path) of the symlink, but the DAW knows the path. Can't they talk for a second when loading and exchange that information? Don't they already shake hands and talk to some extent?

osxmidi commented 11 months ago

No. I mean, instead of copying linvst.so over and renaming it with the same name as the target dll, make a symlink to the master linvst.so and rename the symlink with the same name as the target dll.

In my mind, the DAW should see the symlink, open its target which is the master linvst.so and have it do the same magic it does as a fully copied file.

I suppose the target of a symlink can't capture the "environment" (I assume its path) of the symlink, but the DAW knows the path. Can't they talk for a second when loading and exchange that information? Don't they already shake hands and talk to some extent?

The Daws are looking for Linux dll files with the .so extension (or the .vst3 extension for vst3) and they try to load those files and test whether they are vst2 Linux dll files.

if a windows vst2 dll file is called Delay.dll then having a Linux Delay.so dll file associated with it allows a vst2 (windows to linux) bridge to get the main part of the name of the windows vst plugin (ie Delay) and then be able to load the wndows dll (Delay.dll) via wine while the Daw is loading the linux Delay.so file.

So the Delay.so file needs to present itself to the Daw during a Daw scan/load as a Linux vst dll file and at the same time load the windows vst dll file Delay.dll via wine and then bridge between them.