osxmidi / LinVst

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

Ubuntu: after autoupdate to Wine 7, VSTs no longer respond to mouseclicks #214

Closed acebone closed 2 years ago

acebone commented 2 years ago

During the routine systemupgrade, wine was upgraded to 7.0 on my system.

Since then VST-plugins (in Reaper) has not been responding to mouseclicks.

The plugins do respond to mouse-over, and will bring themselves to the front as per usual.

LinVST 4.7 Ubuntu 20.04.3 LTS Reaper 6.43 (native linux)

osxmidi commented 2 years ago

During the routine systemupgrade, wine was upgraded to 7.0 on my system.

Since then VST-plugins (in Reaper) has not been responding to mouseclicks.

The plugins do respond to mouse-over, and will bring themselves to the front as per usual.

LinVST 4.7 Ubuntu 20.04.3 LTS Reaper 6.43 (native linux)

I've updated LinVst 4.7 (code and release), let me know how it goes.

You only need to copy the lin-vst-server files to usr/bin or make it and then sudo make install.

No need to update the linvst.so files.

acebone commented 2 years ago

I've just downloaded and installed the latest 4.7 from the binaries-page. No fix unfortunately.

When trying to compile the latest source I get this error:

In file included from lin-vst-server.cpp:44:
remotepluginserver.h:18:10: fatal error: windows.h: No such file or directory
   18 | #include <windows.h>
      |          ^~~~~~~~~~~
compilation terminated.
winegcc: /usr/bin/g++ failed
make: *** [Makefile:66: lin-vst-server.wine.o] Error 2

UPDATE

Installed the wine development packages and now compilation fails with this:

/usr/bin/ld: relocatable linking with relocations from format elf64-x86-64 (/usr/lib/x86_64-linux-gnu/wine-development/libwinecrt0.a(exe_entry.o)) to format elf32-i386 (lin-vst-servertrack32.L0oYp1.o) is not supported
winebuild: /usr/bin/ld failed with status 1
winegcc: /usr/lib/wine-development/winebuild failed
make: *** [Makefile:43: lin-vst-servertrack32.exe] Error 
osxmidi commented 2 years ago

I've just downloaded and installed the latest 4.7 from the binaries-page. No fix unfortunately.

When trying to compile the latest source I get this error:

In file included from lin-vst-server.cpp:44:
remotepluginserver.h:18:10: fatal error: windows.h: No such file or directory
   18 | #include <windows.h>
      |          ^~~~~~~~~~~
compilation terminated.
winegcc: /usr/bin/g++ failed
make: *** [Makefile:66: lin-vst-server.wine.o] Error 2

UPDATE

Installed the wine development packages and now compilation fails with this:

/usr/bin/ld: relocatable linking with relocations from format elf64-x86-64 (/usr/lib/x86_64-linux-gnu/wine-development/libwinecrt0.a(exe_entry.o)) to format elf32-i386 (lin-vst-servertrack32.L0oYp1.o) is not supported
winebuild: /usr/bin/ld failed with status 1
winegcc: /usr/lib/wine-development/winebuild failed
make: *** [Makefile:43: lin-vst-servertrack32.exe] Error 

That error is due to the 32 bit development libraries missing.

The 64 bit part probably got made and the lin-vst-server files are probably in the code folder but only for 64 bit and there is probably linvst.so in the vst code folder.

I don't know why it would be different after a wine/system upgrade.

I have tested it with wine 7 and reaper and I didn't get any errors.

But different setups/systems might be different.

It might be that something got corrupted in the upgrade, maybe the wine prefix folder ~./wine or maybe some of the LinVst .so files or some other thing.

A few things to try are

run winecfg and see what happens.

Reinstall LinVst 4.7 and reconvert the vst's using linvstconvert.

The LinVst 4.7 binary on the releases page should work with Ubuntu ok, so no need to make LinVst.

acebone commented 2 years ago

It's very strange. Now Reaper hangs forever trying to load VSTs and ends up timing out.

I did not do anything but test various versions of LinVst (linvst4.7, linvst4.7 with fix)

Do you use any important *.dll overrides? I apparantly have a lot of them, and seem to remember a much shorter list, but now there is a tonne of them

image

image

osxmidi commented 2 years ago

It's very strange. Now Reaper hangs forever trying to load VSTs and ends up timing out.

I did not do anything but test various versions of LinVst (linvst4.7, linvst4.7 with fix)

Do you use any important *.dll overrides? I apparantly have a lot of them, and seem to remember a much shorter list, but now there is a tonne of them

image

image

A stray linvst.so file that's been renamed to a vst dll name can cause a hang if the vst dll doesn't exist anymore or the vst dll has been moved from the folder where the linvst.so file that's been renamed to a vst dll name is.

If you can start Reaper from the terminal there is output from LinVst that might help with the problem.

Open a Terminal and enter and cd into the REAPER folder,

something like cd /home/yourusername/Desktop/reaper_linux_x86_64/REAPER/

depending on your path to the REAPER folder.

Then enter

./reaper

and watch for the output text.

osxmidi commented 2 years ago

It's very strange. Now Reaper hangs forever trying to load VSTs and ends up timing out.

I did not do anything but test various versions of LinVst (linvst4.7, linvst4.7 with fix)

Do you use any important *.dll overrides? I apparantly have a lot of them, and seem to remember a much shorter list, but now there is a tonne of them

image

image

There is also the possibility that your wineprefix is corrupt, caused by the upgrade, I've heard of that happening.

If plugins were working then suddenly don't, try testing if it's the wineprefix that is causing the problems

Basically to test a plugin using a temporary new wineprefix, open a Terminal and then set it up to use the new wineprefix (only valid for the Terminal that was opened and setup, not other Terminals).

To test if it's the wineprefix that's causing the problem (possible file corruption, installation problems etc),

open a Terminal

cd into your home directory

then enter into the Terminal

mkdir .my-new-prefix

export WINEPREFIX=/home/yourusername/.my-new-prefix (this sets the wineprefix to use for this Terminal only, system files need to be setup to make it permanent)

winecfg

and that will create a new wineprefix named .my-new-prefix

and then in the same Terminal window install a simple vst "wine delay.exe" or whatever vst

Reinstall LinVst so that possible LinVst file corruption in not an issue, download LinVst from the releases page and copy all of the lin-vst-server files to /usr/bin

sudo cp /home/yourusername/Downloads//LinVst-4.7/lin-vst* /usr/bin

start linvstconvert and select the linvst.so file from the downloaded LinVst 4.7 folder

find the vst dll in the /home/yourusername/.my-new-prefix folder and hit the start button.

Start your daw up (from the same terminal window) and set the search path to the vst folder(s) in /home/yourusername/.my-new-prefix

restart the daw

See if the daw loads and scans the vst ok.

If the plugin runs ok in this new wineprefix (/home/yourusername/.my-new-prefix) and the same plugin doesn't run ok in the old wineprefix ~/.wine (default wineprefix) then there is a high probablity that the ~/.wine (default wineprefix) is causing some problems.

To test the same plugin using the default wineprefix (~/.wine), delete the temporary wineprefix rm -R .my-new-prefix and then exit the Terminal used for testing and then install the plugin into the default wineprefix and set it up using linvstconvert.

acebone commented 2 years ago

I am terribly sorry to have just disappeared like that. I am doing some heavy-duty research these days, and haven't had time to investigate further. When I do get time, I'll try your suggestions and hopefully get back with some sort of knowledge. Thanks a lot so far!

acebone commented 2 years ago

Ok, I tried creating a new wineprefix. I set the prefix and ran winecfg, then reaper from the same terminal. Then set out to cp the linvst.so to random windows VST plugins folders, so that I could check them one by one.

All the VSTs would cause a timeout when trying to scan them with reaper.

I also tried installing the airwave app of similar functionality to LinVST, and the problems were exactly the same.

The old wineprefix has a bunch of native dll-overrides which I suspect have been configured by game-installations. The new wineprefix hasn't got a single override.

I am running wine 5.5-3ubuntu

I don't think that this is a LinVST issue, and I can't figure out what should be wrong with wine on my box specifically

Thanks for all the help!

UPDATE: I am not the only one with this problem. Found this thread at WineHQ as a starting point for exploration for anyone facing the same problems as me: https://forum.winehq.org/viewtopic.php?f=8&t=34998