osxmidi / LinVst

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

Bitwig 2.5 won't detect Native Instruments Plugins #80

Closed ghost closed 5 years ago

ghost commented 5 years ago

Bitwig 2.5 will not scan any plugins by Native Instruments. Bitwig 2.4.3 scanned them just fine, though. When I upgraded it to 2.5, it will try to scan for a while before aborting. This is the output of Bitwig's log:

/home/billm/.wine/drive_c/Program Files/VstPlugins/Kontakt 5.so

com.bitwig.flt.library.metadata.reader.exception.CouldNotReadMetadataException: could not read metadata: 64-bit plugin host error: Plugin host did not respond for 20.0 seconds stdout: PluginHost: Reading VST 2.4 plugin metadata for /home/billm/.wine/drive_c/Program Files/VstPlugins/Kontakt 5.so DSSI VST plugin server v0.986 Copyright (c) 2012-2013 Filipe Coelho Copyright (c) 2010-2011 Kristian Amlie Copyright (c) 2004-2006 Chris Cannam LinVst version 2.43 Loading /home/billm/.wine/drive_c/Program Files/VstPlugins/Kontakt 5.dll

stderr: Failed to set realtime priority: Operation not permitted 000b:fixme:winediag:start_process Wine Staging 4.6 is a testing version containing experimental patches. 000b:fixme:winediag:start_process Please mention your exact version when filing bug reports on winehq.org. 002e:fixme:win:RegisterDeviceNotificationW (hwnd=0x10060, filter=0x23e258,flags=0x00000004) returns a fake device notification handle! 002e:fixme:ntdll:NtLockFile I/O completion on lock not implemented yet Plugin host metadata command reader error:

32-bit plugin host error: PluginHost: Could not list devices in /home/billm/.wine/drive_c/Program Files/VstPlugins/Kontakt 5.so: Failed to load VST plug-in /home/billm/.wine/drive_c/Program Files/VstPlugins/Kontakt 5.so: /home/billm/.wine/drive_c/Program Files/VstPlugins/Kontakt 5.so: wrong ELF class: ELFCLASS64

/home/billm/.wine/drive_c/Program Files/VstPlugins/Kontakt.so

com.bitwig.flt.library.metadata.reader.exception.CouldNotReadMetadataException: could not read metadata: Plugin host did not respond for 20.0 seconds exit code:1 stdout: PluginHost: Reading VST 2.4 plugin metadata for /home/billm/.wine/drive_c/Program Files/VstPlugins/Kontakt.so DSSI VST plugin server v0.986 Copyright (c) 2012-2013 Filipe Coelho Copyright (c) 2010-2011 Kristian Amlie Copyright (c) 2004-2006 Chris Cannam LinVst version 2.43 Loading /home/billm/.wine/drive_c/Program Files/VstPlugins/Kontakt.dll

stderr: thm 0204:fixme:bcrypt:BCryptGenRandom ignoring selected algorithm 0204:fixme:bcrypt:BCryptGenRandom ignoring selected algorithm 0204:fixme:bcrypt:BCryptGenRandom ignoring selected algorithm 0204:fixme:bcrypt:BCryptGenRandom ignoring selected algorithm 0204:fixme:bcrypt:BCryptGenRandom ignoring selected algorithm 0204:fixme:bcrypt:BCryptGenRandom ignoring selected algorithm 0204:fixme:bcrypt:BCryptGenRandom ignoring selected algorithm 0204:fixme:bcrypt:BCryptGenRandom ignoring selected algorithm 0204:fixme:bcrypt:BCryptGenRandom ignoring selected algorithm 0204:fixme:bcrypt:BCryptGenRandom ignoring selected algorithm 0204:fixme:bcrypt:BCryptGenRandom ignoring selected algorithm 0204:fixme:bcrypt:BCryptGenRandom ignoring selected algorithm 0204:fixme:bcrypt:BCryptGenRandom ignoring selected algorithm 0204:fixme:bcrypt:BCryptGenRandom ignoring selected algorithm 0204:fixme:bcrypt:BCryptGenRandom ignoring selected algorithm 0204:fixme:bcrypt:BCryptGenRandom ignoring selected algorithm 0204:fixme:heap:GetPhysicallyInstalledSystemMemory stub: 0x8cef40 0204:fixme:heap:GetPhysicallyInstalledSystemMemory stub: 0x8cef40 0202:fixme:heap:RtlSetHeapInformation 0xde0000 0 0x23d490 4 stub 0202:fixme:ntdll:NtPowerInformation semi-stub: SystemPowerCapabilities 0202:fixme:heap:GetPhysicallyInstalledSystemMemory stub: 0x23e050 0202:fixme:d3d:wined3d_adapter_init_gl_caps A set of 4 devices is not supported. 0207:fixme:winhttp:get_system_proxy_autoconfig_url no support on this platform 0207:fixme:winhttp:WinHttpDetectAutoProxyConfigUrl discovery via DHCP not supported 000d:fixme:bcrypt:BCryptGenRandom ignoring selected algorithm 0014:err:winediag:SECUR32_initNTLMSP ntlm_auth was not found or is outdated. Make sure that ntlm_auth >= 3.0.25 is in your path. Usually, you can find it in the winbind package of your distribution. 0014:fixme:secur32:schannel_get_cipher_algid unknown algorithm 23 0014:fixme:secur32:schannel_get_mac_algid unknown algorithm 200, cipher 23 dssi-vst-server[1]: exiting Plugin host metadata command reader error:


/home/billm/.wine/drive_c/Program Files/VstPlugins/Reaktor 6.so

com.bitwig.flt.library.metadata.reader.exception.CouldNotReadMetadataException: could not read metadata: Plugin host did not respond for 20.0 seconds stdout: PluginHost: Reading VST 2.4 plugin metadata for /home/billm/.wine/drive_c/Program Files/VstPlugins/Reaktor 6.so DSSI VST plugin server v0.986 Copyright (c) 2012-2013 Filipe Coelho Copyright (c) 2010-2011 Kristian Amlie Copyright (c) 2004-2006 Chris Cannam LinVst version 2.43 Loading /home/billm/.wine/drive_c/Program Files/VstPlugins/Reaktor 6.dll

stderr: er_ioctl_sock Unsupported ioctl 98000010 (device=9800 access=0 func=4 method=0) 00b1:fixme:winsock:WSAIoctl unsupported WS_IOCTL cmd (_WSAIOW(IOC_VENDOR, 16)) 00b1:fixme:ntdll:server_ioctl_file Unsupported ioctl 98000010 (device=9800 access=0 func=4 method=0) 00b1:fixme:winsock:server_ioctl_sock Unsupported ioctl 98000010 (device=9800 access=0 func=4 method=0) 00b1:fixme:winsock:WSAIoctl unsupported WS_IOCTL cmd (_WSAIOW(IOC_VENDOR, 16)) 00b1:fixme:ntdll:server_ioctl_file Unsupported ioctl 98000010 (device=9800 access=0 func=4 method=0) 00b1:fixme:winsock:server_ioctl_sock Unsupported ioctl 98000010 (device=9800 access=0 func=4 method=0) 00b1:fixme:winsock:WSAIoctl unsupported WS_IOCTL cmd (_WSAIOW(IOC_VENDOR, 16)) 00b1:fixme:ntdll:server_ioctl_file Unsupported ioctl 98000010 (device=9800 access=0 func=4 method=0) 00b1:fixme:winsock:server_ioctl_sock Unsupported ioctl 98000010 (device=9800 access=0 func=4 method=0) 00b1:fixme:winsock:WSAIoctl unsupported WS_IOCTL cmd (_WSAIOW(IOC_VENDOR, 16)) 00b1:fixme:ntdll:server_ioctl_file Unsupported ioctl 98000010 (device=9800 access=0 func=4 method=0) 00b1:fixme:winsock:server_ioctl_sock Unsupported ioctl 98000010 (device=9800 access=0 func=4 method=0) 00b1:fixme:winsock:WSAIoctl unsupported WS_IOCTL cmd (_WSAIOW(IOC_VENDOR, 16)) 00b1:fixme:ntdll:server_ioctl_file Unsupported ioctl 98000010 (device=9800 access=0 func=4 method=0) 00b1:fixme:winsock:server_ioctl_sock Unsupported ioctl 98000010 (device=9800 access=0 func=4 method=0) 00b1:fixme:winsock:WSAIoctl unsupported WS_IOCTL cmd (_WSAIOW(IOC_VENDOR, 16)) 00f6:fixme:bcrypt:BCryptGenRandom ignoring selected algorithm 017b:err:winediag:SECUR32_initNTLMSP ntlm_auth was not found or is outdated. Make sure that ntlm_auth >= 3.0.25 is in your path. Usually, you can find it in the winbind package of your distribution. 017b:fixme:secur32:schannel_get_cipher_algid unknown algorithm 23 017b:fixme:secur32:schannel_get_mac_algid unknown algorithm 200, cipher 23 dssi-vst-server[1]: exiting Plugin host metadata command reader error:


/home/billm/Downloads/LinVst-2.4.3-Debian-Stretch/embedded-version/linvst.so

com.bitwig.flt.library.metadata.reader.exception.CouldNotReadMetadataException: could not read metadata: 64-bit plugin host error: Communications error with plugin host process exit code:1 stdout: PluginHost: Reading VST 2.4 plugin metadata for /home/billm/Downloads/LinVst-2.4.3-Debian-Stretch/embedded-version/linvst.so

stderr: XIO: fatal IO error 11 (Resource temporarily unavailable) on X server ":0" after 14 requests (14 known processed) with 0 events remaining.

32-bit plugin host error: PluginHost: Could not list devices in /home/billm/Downloads/LinVst-2.4.3-Debian-Stretch/embedded-version/linvst.so: Failed to load VST plug-in /home/billm/Downloads/LinVst-2.4.3-Debian-Stretch/embedded-version/linvst.so: /home/billm/Downloads/LinVst-2.4.3-Debian-Stretch/embedded-version/linvst.so: wrong ELF class: ELFCLASS64

/home/billm/Downloads/LinVst-2.4.3-Debian-Stretch/standalone-window-version/linvst.so

com.bitwig.flt.library.metadata.reader.exception.CouldNotReadMetadataException: could not read metadata: 64-bit plugin host error: PluginHost: Could not list devices in /home/billm/Downloads/LinVst-2.4.3-Debian-Stretch/standalone-window-version/linvst.so: Failed to load VST plug-in /home/billm/Downloads/LinVst-2.4.3-Debian-Stretch/standalone-window-version/linvst.so: /home/billm/Downloads/LinVst-2.4.3-Debian-Stretch/standalone-window-version/linvst.so: undefined symbol: XStoreName 32-bit plugin host error: PluginHost: Could not list devices in /home/billm/Downloads/LinVst-2.4.3-Debian-Stretch/standalone-window-version/linvst.so: Failed to load VST plug-in /home/billm/Downloads/LinVst-2.4.3-Debian-Stretch/standalone-window-version/linvst.so: /home/billm/Downloads/LinVst-2.4.3-Debian-Stretch/standalone-window-version/linvst.so: wrong ELF class: ELFCLASS64

osxmidi commented 5 years ago

Seems like something might be corrupted.

/home/billm/Downloads/LinVst-2.4.3-Debian-Stretch/standalone-window-version/linvst.so: undefined symbol: XStoreName

should not happen.

Try to download the latest code and make it again, the current version of LinVst is 2.5 and has a few updates.

Also for Bitwig

For Bitwig 2.5, In Settings->Plug-ins choose "Individually" plugin setting and check all of the LinVst plugins. For Bitwig 2.4.3, In Settings->Plug-ins choose Independent plug-in host process for "Each plug-in" setting and check all of the LinVst plugins.

ghost commented 5 years ago

I have Settings->Plug-ins set to "Individually" in Bitwig 2.5. I built LinVst 2.5 and replaced the .so file, but it still did the same thing. I got rid of some of the errors by removing the LinVst 2.4 release files from the download folders, and adding myself to the audio group got rid of the "realtime" error. However, Kontakt 5 and other Native Instrument Plugins still give this error. Again, these plugins worked just fine in Bitwig 2.4.3, but not Bitwig 2.5.

/home/billm/.wine/drive_c/Program Files/VstPlugins/Kontakt 5.so

com.bitwig.flt.library.metadata.reader.exception.CouldNotReadMetadataException: could not read metadata: 64-bit plugin host error: Plugin host did not respond for 20.0 seconds exit code:137 stdout: PluginHost: Reading VST 2.4 plugin metadata for /home/billm/.wine/drive_c/Program Files/VstPlugins/Kontakt 5.so DSSI VST plugin server v0.986 Copyright (c) 2012-2013 Filipe Coelho Copyright (c) 2010-2011 Kristian Amlie Copyright (c) 2004-2006 Chris Cannam LinVst version 2.5 Loading /home/billm/.wine/drive_c/Program Files/VstPlugins/Kontakt 5.dll

stderr: mi-stub 00d5:fixme:msvcp:_LocinfoLocinfo_ctor_cat_cstr (000000000023D840 1 C) semi-stub 00d5:fixme:msvcp:_LocinfoLocinfo_ctor_cat_cstr (000000000023D2F0 1 C) semi-stub 00d5:fixme:msvcp:_LocinfoLocinfo_ctor_cat_cstr (000000000023D470 1 C) semi-stub 00d5:fixme:msvcp:_LocinfoLocinfo_ctor_cat_cstr (000000000023CD10 1 C) semi-stub 00d5:fixme:msvcp:_LocinfoLocinfo_ctor_cat_cstr (000000000023D940 1 C) semi-stub 00d5:fixme:win:RegisterDeviceNotificationW (hwnd=0x300ce, filter=0x23e258,flags=0x00000004) returns a fake device notification handle! 00d5:fixme:ntdll:NtLockFile I/O completion on lock not implemented yet 00d5:fixme:msvcp:_LocinfoLocinfo_ctor_cat_cstr (000000000023DA00 1 C) semi-stub 00d7:fixme:msvcp:_LocinfoLocinfo_ctor_cat_cstr (00000000008BEC40 1 C) semi-stub 00d7:fixme:heap:GetPhysicallyInstalledSystemMemory stub: 0x8bf040 00d7:fixme:heap:GetPhysicallyInstalledSystemMemory stub: 0x8bf040 00d7:fixme:heap:GetPhysicallyInstalledSystemMemory stub: 0x8bf040 00d7:fixme:heap:GetPhysicallyInstalledSystemMemory stub: 0x8bf040 00d5:fixme:heap:RtlSetHeapInformation 0xdd0000 0 0x23d6c0 4 stub 00d5:fixme:ntdll:NtPowerInformation semi-stub: SystemPowerCapabilities 00d5:fixme:heap:GetPhysicallyInstalledSystemMemory stub: 0x23e030 00d9:fixme:msvcp:_LocinfoLocinfo_ctor_cat_cstr (000000000126F140 1 C) semi-stub 00d9:fixme:msvcp:_LocinfoLocinfo_ctor_cat_cstr (000000000126F260 1 C) semi-stub 00d5:fixme:d3d:wined3d_adapter_init_gl_caps A set of 4 devices is not supported. 00da:fixme:winhttp:get_system_proxy_autoconfig_url no support on this platform 00da:fixme:winhttp:WinHttpDetectAutoProxyConfigUrl discovery via DHCP not supported 00d5:fixme:heap:RtlSetHeapInformation 0x4940000 0 0x23d890 4 stub 00db:fixme:msvcp:_Task_impl_baseIsNonBlockingThread () stub 00df:fixme:msvcp:_Task_impl_baseIsNonBlockingThread () stub 00df:fixme:msvcp:_Task_impl_base__IsNonBlockingThread () stub 00e0:fixme:msvcp:_Task_impl_baseIsNonBlockingThread () stub dssi-vst-server[1]: exiting Plugin host metadata command reader error:

32-bit plugin host error: PluginHost: Could not list devices in /home/billm/.wine/drive_c/Program Files/VstPlugins/Kontakt 5.so: Failed to load VST plug-in /home/billm/.wine/drive_c/Program Files/VstPlugins/Kontakt 5.so: /home/billm/.wine/drive_c/Program Files/VstPlugins/Kontakt 5.so: wrong ELF class: ELFCLASS64

ghost commented 5 years ago

Also, if I use Airwave instead of LinVst, Bitwig 2.5 will scan it. However, it crashes whenever I click on the keyboard inside the Kontakt window.

osxmidi commented 5 years ago

The ELF errors and the undefined symbol: XStoreName error point to linking problems on your system which can make the linvst.so file corrupt.

I've tested this version with Bitwig 2.5 and Ubuntu 18.04, so try this version if you can.

LinVst-2.5-Ubuntu.zip

ghost commented 5 years ago

I have tried those files you linked and it still didn't work for me. Right now I'm using Linux Mint 19.1, but I wouldn't think that would be a problem. I could try it in Ubuntu 18.04 and see if that works.

ghost commented 5 years ago

What wine version and overrides are you using?

osxmidi commented 5 years ago

No overrides.

For Bitwig 2.5 testing I'm using Ubuntu 18.04 and Wine Staging 4.15, Wine Staging just got updated so I'm not sure about the exact version .

It's hard to know what your exact problem is.

If the linvst.so files aren't corrupt, Bitwig on your system still thinks they are, so that could be some deeper problem with Wine or Bitwig itself or libraries on your system.

For Bitwig to not being able to read a Linux .so file without throwing up ELF errors probably means the problem is with Wine and/or something on your system.

osxmidi commented 5 years ago

I might have worked out what's happening.

On my system Bitwig seems to know about llinvst.so files in the Downloads folder (probably some other folders as well) somehow (probably due to the way it searches for vst's).

Bitwig seems to search some folders that are not in the vst search paths and that can create problems if Bitwig hits an unnamed linvst.so file somewhere.

If Bitwig hits a (unnamed) linvst.so file that doesn't have a linvst.dll file associated with it, then Bitwig throws a vst load error when it tries to load it.

The error below means that Bitwig is trying to load the linvst.so file in the "/home/billm/Downloads/LinVst-2.4.3-Debian-Stretch/standalone-window-version" folder.

That linvst.so file would have no linvst.dll file with it and so a load error occurs.

The answer probably is to delete the /home/billm/Downloads/LinVst-2.4.3-Debian-Stretch folder and don't unzip or have any unnamed linvst.so files anywhere in the Downloads folder.


Failed to load VST plug-in /home/billm/Downloads/LinVst-2.4.3-Debian-Stretch/standalone-window-version/linvst.so: /home/billm/Downloads/LinVst-2.4.3-Debian-Stretch/standalone-window-version/linvst.so: undefined symbol: XStoreName

osxmidi commented 5 years ago

Also some plugins (Kontakt etc) require winbind to be installed (it's in your error log).


0014:err:winediag:SECUR32_initNTLMSP ntlm_auth was not found or is outdated. Make sure that ntlm_auth >= 3.0.25 is in your path. Usually, you can find it in the winbind package of your distribution.


Also it's probably a good idea to temporarily unzip the LinVst install files and then do the install for the vst dll plugins and then delete the LinVst install files folder containing linvst.so so that Bitwig doesn'y try to load an unnamed linvst.so file and then throw errors.

And then repeat if additional LinVst vst installs need to be done.

Just don't let Bitwig try to load a linvst.so file that hasn't been renamed to a vst dll name.

Also if making from source, don't leave any unnamed linvst.so files hanging around (that Bitwig might try to load) by doing a sudo make clean.

ghost commented 5 years ago

I've tried installing winbind and removing the linvst.so files and it still isn't working for me. Other VST plugins are working but not the Native Instrument ones.

osxmidi commented 5 years ago

I've put a fix into the latest code so that linvst.so doesn't get loaded.

I can't find any errors testing the latest Kontakt player btw, maybe try installing Kontakt again.

osxmidi commented 5 years ago

You seem to have Kontakt.so and Kontakt 5.so in /home/billm/.wine/drive_c/Program Files/VstPlugins, with Kontakt 5.so causing a no load error.

It should be just one Kontakt.so, that's what I have for the Kontakt player.

Check your /home/billm/.wine/drive_c/Program Files/VstPlugins folder.

/home/billm/.wine/drive_c/Program Files/VstPlugins/Kontakt.so

32-bit plugin host error: PluginHost: Could not list devices in /home/billm/.wine/drive_c/Program Files/VstPlugins/Kontakt 5.so: Failed to load VST plug-in /home/billm/.wine/drive_c/Program Files/VstPlugins/Kontakt 5.so

ghost commented 5 years ago

I have the full version of Kontakt 5 (which installs as "Kontakt 5.dll"). When that didn't scan I tried installing Kontakt 6 Player (which installs as "Kontakt.dll"). Native Instruments treats them as separate plugins. I've tried doing a fresh install of Linux Mint and only installing Kontakt 6 Player, but it still wouldn't scan. I've also tried it with the new build.

Have you updated Kontakt Player or tried reinstalling it on your system? Maybe the latest version breaks something.

osxmidi commented 5 years ago

I'm using the latest version of Kontakt player. Maybe you could try installing Linux Reaper and see if Kontakt loads with Reaper and if it does then it's a Bitwig problem of some sort but if it doesn't load with Reaper then it might have something to do with Wine etc.

ghost commented 5 years ago

Yes it does work in Linux Reaper. It also works in Bitwig version 2.4.3. I'm saying that something in Bitwig version 2.5 breaks it. It's strange that it doesn't break on your system.

osxmidi commented 5 years ago

Bitwig 2.5 seems to be causing a Wine crash when scanning Kontakt.

A temporary way around it is to change this in the linvst.cpp file

line 1095

change

wait(NULL);

to look like

// wait(NULL);


and also change this in the remotevstclient.cpp file

line 404

change

// signal(SIGCHLD, SIG_IGN);

to look like

signal(SIGCHLD, SIG_IGN);

osxmidi commented 5 years ago

After Kontakt has scanned

In Settings->Plug-ins choose "Individually" plugin setting and check all of the LinVst plugins.

then reboot.

ghost commented 5 years ago

That workaround worked. Thank you!

BTW, those lines of code were actually on lines 1059 and 484 for me, not lines 1095 and 404.