osxmidi / LinVst

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

Loading VSTs was working before, but it doesn't work anymore #208

Closed ShawkMusic closed 2 years ago

ShawkMusic commented 3 years ago

(This issue is a copy of the issue I made at https://github.com/Goli4thus/linvstmanager/issues/25, where I was told I should post here instead. I've also tried downgrading wine from 6.16 to 6,15 and it still doesn't work)

I keep getting this error when trying to load VSTs on Reaper. It was working before, I don't know what changed.

"The program lin-vst-servertrack32.exe has encountered a serious problem and needs to close. We are sorry for the inconvenience" image

This is what "Show details" says:

Unhandled exception: page fault on read access to 0x00000000 in 32-bit code (0x10004159).
Register dump:
 CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b
 EIP:10004159 ESP:0032e9a0 EBP:7d6644e0 EFLAGS:00010246(  R- --  I  Z- -P- )
 EAX:00000000 EBX:00000000 ECX:00a50c38 EDX:00a50c38
 ESI:00a52710 EDI:433d4154
Stack dump:
0x0032e9a0:  0032ea60 00000001 7d6644e0 00000000
0x0032e9b0:  00000000 00a50c38 00000000 7e8f0470
0x0032e9c0:  00000000 00000000 00000000 7d69ff90
0x0032e9d0:  00000000 7e8f0470 7d69ff90 7e8f0470
0x0032e9e0:  05800001 7e8f0470 0032e9f8 7d615f70
0x0032e9f0:  00000000 7e8f0470 7d615f70 7e7dc15a
Backtrace:
=>0 0x10004159 VSTPluginMain+0xc49() in csr plate (0x7d6644e0)
  1 0xf77ef000 in winex11 (+0x8efff) (0x7e9fcb90)
  2 0x7e9ecae0 _ZN15RemoteVSTServerD2Ev+0xef() in lin-vst-servertrack32 (0x7e9ec9f0)
  3 0x81ffffde (0x59e85356)
0x10004159 VSTPluginMain+0xc49 in csr plate: movl   0x0(%eax),%ecx
Modules:
Module  Address         Debug info  Name (61 modules)
PE  10000000-1001f000   Export          csr plate
PE  61740000-61782000   Deferred        advapi32
PE  62fc0000-6304f000   Deferred        rpcrt4
PE  63480000-6348c000   Deferred        version
PE  63bc0000-63bd9000   Deferred        shcore
PE  64a40000-64a95000   Deferred        shlwapi
PE  68500000-6855b000   Deferred        combase
PE  68700000-6872f000   Deferred        uxtheme
PE  6a280000-6a32a000   Deferred        msvcrt
PE  6a400000-6a531000   Deferred        ole32
PE  6bc00000-6bc2a000   Deferred        sechost
PE  6bcc0000-6bd40000   Deferred        setupapi
PE  6c9c0000-6cc57000   Deferred        gdi32
PE  6ed00000-6ef24000   Deferred        user32
PE  70b40000-70c16000   Deferred        ucrtbase
PE  71200000-7121b000   Deferred        imm32
PE  7b000000-7b0e8000   Deferred        kernelbase
PE  7b600000-7b81b000   Deferred        kernel32
PE  7bc00000-7bc9c000   Deferred        ntdll
ELF 7d000000-7d005000   Deferred        <wine-loader>
ELF 7d711000-7d741000   Deferred        libexpat.so.1
ELF 7d741000-7d794000   Deferred        libfontconfig.so.1
ELF 7d794000-7d80b000   Deferred        libpcre.so.1
ELF 7d80b000-7d82e000   Deferred        libbrotlicommon.so.1
ELF 7d82e000-7d97b000   Deferred        libglib-2.0.so.0
ELF 7d97b000-7da59000   Deferred        libharfbuzz.so.0
ELF 7da59000-7da96000   Deferred        libpng16.so.16
ELF 7da96000-7daa8000   Deferred        libbz2.so.1.0
ELF 7daa8000-7db71000   Deferred        libfreetype.so.6
ELF 7dba6000-7e594000   Deferred        shell32<elf>
  \-PE  7dbd0000-7e594000   \               shell32
ELF 7e7a5000-7e8f4000   Deferred        libx11.so.6
ELF 7e918000-7e926000   Deferred        libbrotlidec.so.1
ELF 7e926000-7e940000   Deferred        libz.so.1
ELF 7e940000-7e956000   Deferred        user32.so
ELF 7e956000-7e982000   Deferred        libxcb.so.1
ELF 7e982000-7e9a0000   Deferred        libgcc_s.so.1
ELF 7e9ab000-7e9d5000   Deferred        gdi32.so
ELF 7e9d5000-7e9fe000   Dwarf           lin-vst-servertrack32<elf>
  \-PE  7e9e0000-7e9fe000   \               lin-vst-servertrack32
ELF 7e9fe000-7eb86000   Dwarf           libwine.so.1
ELF f76be000-f76c6000   Deferred        libxfixes.so.3
ELF f76c6000-f76d3000   Deferred        libxcursor.so.1
ELF f76d3000-f76e7000   Deferred        libxi.so.6
ELF f76e7000-f76f6000   Deferred        libxrandr.so.2
ELF f76f6000-f7704000   Deferred        libxrender.so.1
ELF f7704000-f770b000   Deferred        libxxf86vm.so.1
ELF f7740000-f77ef000   Dwarf           winex11<elf>
  \-PE  f7760000-f77ef000   \               winex11
ELF f7b55000-f7b5d000   Deferred        libxdmcp.so.6
ELF f7b5d000-f7c2a000   Deferred        libm.so.6
ELF f7c2a000-f7ce1000   Deferred        ntdll.so
ELF f7ce1000-f7eda000   Deferred        libc.so.6
ELF f7eda000-f7ee0000   Deferred        libdl.so.2
ELF f7ee0000-f7f02000   Deferred        libpthread.so.0
ELF f7f05000-f7f10000   Deferred        librt.so.1
ELF f7f10000-f7f15000   Deferred        libxcomposite.so.1
ELF f7f15000-f7f1a000   Deferred        libxinerama.so.1
ELF f7f1a000-f7f30000   Deferred        libxext.so.6
ELF f7f34000-f7f39000   Deferred        libxau.so.6
ELF f7f39000-f7f6a000   Deferred        ld-linux.so.2
Threads:
process  tid      prio (all id:s are in hex)
00000020 (D) Z:\usr\bin\lin-vst-servertrack32.exe
    00000024    0 <==
    00000100    0
    00000104    0
    00000108    0
    00000114    0
00000038 services.exe
    0000003c    0
    00000040    0
    0000004c    0
    00000068    0
    000000a4    0
    000000b8    0
    000000d0    0
    000000e4    0
00000044 winedevice.exe
    00000048    0
    00000054    0
    00000058    0
    0000005c    0
00000060 winedevice.exe
    00000064    0
    0000006c    0
    00000070    0
    00000074    0
    00000080    0
    00000084    0
    00000088    0
    000000b4    0
00000078 explorer.exe
    0000007c    0
    00000094    0
    00000098    0
000000ac plugplay.exe
    000000b0    0
    000000bc    0
    000000c0    0
    000000c4    0
000000c8 svchost.exe
    000000cc    0
    000000d4    0
    000000d8    0
000000dc rpcss.exe
    000000e0    0
    000000e8    0
    000000ec    0
    000000f0    0
    000000f4    0
    000000f8    0
System information:
    Wine build: wine-6.16
    Platform: i386 (WOW64)
    Version: Windows 10
    Host system: Linux
    Host version: 5.10.61-1-MANJARO
ShawkMusic commented 3 years ago

Also, sometimes instead of saying the above, it just stays scanning and Reaper says this:

Screenshot_2021_10_24_(20:20:01)

it stays there for like a minute and then Reaper just gives up and stops scanning

osxmidi commented 3 years ago

Seems like it might be a Wine problem or a LinVst installation problem.

The first thing to try is to install LinVst again (to /usr/bin) and then reconvert all of the vst folders.

ShawkMusic commented 3 years ago

I did that and it still doesn't work. Although now instead of stalling for a minute it just instantly doesn't work (and shows up on Reaper's "plug-ins that failed to scan", like it did before)

weirdal3333 commented 3 years ago

Does it work any better if you cd to the wine vst plugin folder before running the program? Also try running it after you cd to /usr/bin It could be a known wine bug

ShawkMusic commented 2 years ago

Does it work any better if you cd to the wine vst plugin folder before running the program? Also try running it after you cd to /usr/bin It could be a known wine bug

cding into ~/.wine and then running it made it better, it was able to scan and I can load the VSTs now, but now every time I open up Reaper it's like a coin toss over weather it's just gonna work smoothly or if it's gonna get stuck on loading the VST plugins and never open the project, which I seem to only be able to solve by rebooting my computer

osxmidi commented 2 years ago

A few things.

When things suddenly go wrong it's usually because of something has changed, so the first thing to suspect is something in the wineprefix has gone wrong, maybe a config file or a corrupted file or whatever.

Sometimes some new app install might actually interfere with older app installs because of dll's etc.

The first thing to do would be to reinstall the vst and update Wine to 6.2x (I think it's up to 6.23 at the moment, the Wine versions around 6.14 had a bug from what I remember that affected loading.

Then if that doesn't work, there is also the option of deleting the wineprefix ~/.wine and reinstalling everything from the beginning.

ShawkMusic commented 2 years ago

The first thing to do would be to reinstall the vst

What do you mean by "reinstall the vst"? Does that mean re-convert it, or re download it, or something else?

and update Wine to 6.2x (I think it's up to 6.23 at the moment, the Wine versions around 6.14 had a bug from what I remember that affected loading.

I'm on Manjaro which is rolling release so I'm on Wine 7.0rc2-1. Is that okay?

Then if that doesn't work, there is also the option of deleting the wineprefix ~/.wine and reinstalling everything from the beginning.

I've tried renaming my ~/.wine folder to ~/.wine_b so I can go back to it in case I need to and ran Wine so that it created a new ./wine folder, and it's still not working.

osxmidi commented 2 years ago

The first thing to do would be to reinstall the vst

What do you mean by "reinstall the vst"? Does that mean re-convert it, or re download it, or something else?

and update Wine to 6.2x (I think it's up to 6.23 at the moment, the Wine versions around 6.14 had a bug from what I remember that affected loading.

I'm on Manjaro which is rolling release so I'm on Wine 7.0rc2-1. Is that okay?

Then if that doesn't work, there is also the option of deleting the wineprefix ~/.wine and reinstalling everything from the beginning.

I've tried renaming my ~/.wine folder to ~/.wine_b so I can go back to it in case I need to and ran Wine so that it created a new ./wine folder, and it's still not working.

The wine version is ok, I'm running wine-7.0-rc5 (Staging) on EndeavourOS (Endeavour and Manjaro are both arch based).

I say reinstall the vst (or vst's) because of possible file corruption.

Like, if you reinstall Kontakt or CSR Reverb and then it loads ok but the other vst's still have problems then that would mean the problem had something to do with corrupted files in the wineprefix ~/.wine

The corrupted files might be in the wineprefix and/or the linvst files including all of the linvst converted vst .so files and the lin-vst-server files in /usr/bin.

Usually when something was working and then doesn't, corrupted files might be involved somehow.

I have a similar problem to yours, when someone upgraded their Ubuntu system and LinVst/Wine stopped working as it did.

Usually I'd suspect corrupted files when something was working and then suddenly doesn't, and the easiest way to deal with it is to reinstall the components ie LinVst and the vst related files in the wineprefix where the vst installation files will be.

osxmidi commented 2 years ago

The first thing to do would be to reinstall the vst

What do you mean by "reinstall the vst"? Does that mean re-convert it, or re download it, or something else?

and update Wine to 6.2x (I think it's up to 6.23 at the moment, the Wine versions around 6.14 had a bug from what I remember that affected loading.

I'm on Manjaro which is rolling release so I'm on Wine 7.0rc2-1. Is that okay?

Then if that doesn't work, there is also the option of deleting the wineprefix ~/.wine and reinstalling everything from the beginning.

I've tried renaming my ~/.wine folder to ~/.wine_b so I can go back to it in case I need to and ran Wine so that it created a new ./wine folder, and it's still not working.

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.

ShawkMusic commented 2 years ago

Thanks for all your help I wiped my Manjaro install and switched to Arch for a couple of different reasons, and now this seems to be working for me.