Carla icon indicating copy to clipboard operation
Carla copied to clipboard

plugins via wine-bridges do not load with pipewire

Open dschmidt opened this issue 2 years ago • 6 comments

Hey,

I apologize in advance if this bug report is invalid, but currently I'm completely lost where the correct place to file my issue would be or if it's just a misconfiguration on my end.

I'm trying to use Windows VST plugins via wine-bridges. Interestingly enough during the library scan, I get a popup that some software license management tool is not running (I never got this to work with jack either, but ...) that at least tells me that the wine bridge is in theory working. Also plugins are recognized and show up with metadata in the library.

When I try to load any Windows VST though, I get a popup "Failed to load plugin". On the console I don't see any useful output, just this:

$ carla
Carla 2.4.1 started, status:
  Python version: 3.8.12
  Qt version:     5.15.2
  PyQt version:   5.15.6
  Binary dir:     /usr/lib64/carla
  Resources dir:  /usr/share/carla/resources
Frontend pixel ratio is 1.0
libjack.so.0 loaded successfully!
'o != NULL' failed at ../pipewire-jack/src/pipewire-jack.c:4174 jack_port_get_buffer()
'o != NULL' failed at ../pipewire-jack/src/pipewire-jack.c:4174 jack_port_get_buffer()
'o != NULL' failed at ../pipewire-jack/src/pipewire-jack.c:4174 jack_port_get_buffer()
'o != NULL' failed at ../pipewire-jack/src/pipewire-jack.c:4174 jack_port_get_buffer()
Carla assertion failure: "audioIn1 != nullptr" in file CarlaEngineJack.cpp, line 2969

but those errors/warnings are already visible before I try to load plugins. When running any Windows VST in carla-single I get output like this:

carla-single win32 vst3 ~/.wine/drive_c/Program\ Files\ \(x86\)/Common\ Files/VST3/Emissary.vst3 
['wine', '/usr/lib64/carla/carla-bridge-win32.exe', 'vst3', '/home/domme/.wine/drive_c/Program Files (x86)/Common Files/VST3/Emissary.vst3', '(none)', '0']
002c:fixme:winediag:LdrInitializeThunk wine-staging 6.20 is a testing version containing experimental patches.
002c:fixme:winediag:LdrInitializeThunk Please mention your exact version when filing bug reports on winehq.org.
0048:fixme:heap:RtlSetHeapInformation 0000000000000000 1 0000000000000000 0 stub
0060:fixme:advapi:RegisterEventSourceW ((null),L"Bonjour Service"): stub
0060:fixme:advapi:ReportEventA (00000000CAFE4242,0x0004,0x0000,0x00000064,0000000000000000,0x0001,0x00000000,000000000199F900,0000000000000000): stub
0060:fixme:advapi:ReportEventW (00000000CAFE4242,0x0004,0x0000,0x00000064,0000000000000000,0x0001,0x00000000,000000000014AA80,0000000000000000): stub
0060:fixme:winsock:WSAIoctl SIO_UDP_CONNRESET stub
0060:fixme:winsock:WSAIoctl SIO_UDP_CONNRESET stub
0060:fixme:advapi:ReportEventA (00000000CAFE4242,0x0004,0x0000,0x00000064,0000000000000000,0x0001,0x00000000,000000000199F900,0000000000000000): stub
0060:fixme:advapi:ReportEventW (00000000CAFE4242,0x0004,0x0000,0x00000064,0000000000000000,0x0001,0x00000000,000000000014AA80,0000000000000000): stub
0058:fixme:service:svcctl_EnumServicesStatusExW resume handle not supported
0058:fixme:service:svcctl_EnumServicesStatusExW resume handle not supported
0058:fixme:service:svcctl_EnumServicesStatusExW resume handle not supported
0058:fixme:service:svcctl_EnumServicesStatusExW resume handle not supported
0060:fixme:advapi:ReportEventA (00000000CAFE4242,0x0004,0x0000,0x00000064,0000000000000000,0x0001,0x00000000,000000000199F900,0000000000000000): stub
0060:fixme:advapi:ReportEventW (00000000CAFE4242,0x0004,0x0000,0x00000064,0000000000000000,0x0001,0x00000000,000000000014AA80,0000000000000000): stub
0060:fixme:netapi32:NetGetJoinInformation Semi-stub (null) 000000000199F978 000000000199F970
00d0:fixme:ntoskrnl:IoRegisterShutdownNotification stub: 000000000002ABF0
0050:err:ole:start_rpcss Failed to start RpcSs service
00dc:fixme:msvcp:_Locinfo__Locinfo_ctor_cat_cstr (027AFE24 1 C) semi-stub
00e8:fixme:msvcp:_Locinfo__Locinfo_ctor_cat_cstr (04B2D7FC 1 C) semi-stub
00e8:fixme:msvcp:_Locinfo__Locinfo_ctor_cat_cstr (04B2D74C 1 C) semi-stub
00e8:fixme:msvcp:_Locinfo__Locinfo_ctor_cat_cstr (04B2D504 1 C) semi-stub
00e8:fixme:msvcp:_Locinfo__Locinfo_ctor_cat_cstr (04B2E74C 1 C) semi-stub
00e8:fixme:msvcrt:type_info_name_internal_method type_info_node parameter ignored
00e8:fixme:msvcp:_Locinfo__Locinfo_ctor_cat_cstr (04B2A4D4 1 C) semi-stub
00e8:fixme:msvcp:_Locinfo__Locinfo_ctor_cat_cstr (04B2A54C 1 C) semi-stub
00e8:fixme:file:NtLockFile I/O completion on lock not implemented yet
00e8:fixme:msvcp:_Locinfo__Locinfo_ctor_cat_cstr (04B28DEC 1 C) semi-stub
00e8:fixme:msvcp:locale_operator_not_equal (04B28C48 6FF43884) stub
00e8:fixme:msvcp:locale_operator_not_equal (04B28BF0 6FF43884) stub
00e8:fixme:msvcp:locale_operator_not_equal (04B28C68 6FF43884) stub
00e8:fixme:msvcp:locale_operator_not_equal (04B28CA0 6FF43884) stub
00e8:fixme:msvcp:locale_operator_not_equal (04B28CA0 6FF43884) stub
00e8:fixme:msvcp:locale_operator_not_equal (04B28CA0 6FF43884) stub
00e8:fixme:msvcp:locale_operator_not_equal (04B28C78 6FF43884) stub
00e8:fixme:msvcp:_Locinfo__Locinfo_ctor_cat_cstr (04B2E77C 1 C) semi-stub
libjack.so.0 loaded successfully!
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
Failed to init engine, error was:
Failed to init temporary jack client
0060:fixme:advapi:ReportEventA (00000000CAFE4242,0x0004,0x0000,0x00000064,0000000000000000,0x0001,0x00000000,000000000199F900,0000000000000000): stub                                                                                                                                                                                                                                                                                                       
0060:fixme:advapi:ReportEventW (00000000CAFE4242,0x0004,0x0000,0x00000064,0000000000000000,0x0001,0x00000000,000000000014AC50,0000000000000000): stub
0060:fixme:advapi:DeregisterEventSource (00000000CAFE4242) stub

Not sure if this is of any use. As I said I'm completely lost here and would appreciate any hint on what's going on, if this is just a misconfiguration, a bug or a missing feature in which project.

Thanks in advance!

dschmidt avatar Nov 06 '21 01:11 dschmidt

You have to go in steps to see where the issue is.

  1. can you load non bridged plugins?
  2. on bridged plugins, can you load ones matching your architecture (try loading win64 plugins first, skip 32bit binaries)
  3. can you load 32bit linux plugin binaries in carla (grab a 32bit vst linux binary from somewhere and drag&drop it into carla)

When you say:

'o != NULL' failed at ../pipewire-jack/src/pipewire-jack.c:4174 jack_port_get_buffer()
'o != NULL' failed at ../pipewire-jack/src/pipewire-jack.c:4174 jack_port_get_buffer()
'o != NULL' failed at ../pipewire-jack/src/pipewire-jack.c:4174 jack_port_get_buffer()
'o != NULL' failed at ../pipewire-jack/src/pipewire-jack.c:4174 jack_port_get_buffer()
Carla assertion failure: "audioIn1 != nullptr" in file CarlaEngineJack.cpp, line 2969

but those errors/warnings are already visible before I try to load plugins.

solving this first sounds critical.

falkTX avatar Nov 06 '21 10:11 falkTX

Hey @falkTX,

thanks for coming back to me.

  1. Yep, I can load native Linux ToneLib-GFX.vst3

  2. Nope, both 64bit and 32bit bridged Windows plugins give me the "Failed to load file" popup. I now have an additional message in the error popup: "Invalid or unsupported plugin type". I'm pretty sure this line was not present at some point in my testing on friday, but I cannot prove that as I have no way to reproduce

  3. Any hint for a 32bit linux plugin? Have none available and a quick google search didn't give me any obvious result

  4. I cannot reproduce these errors anymore right now, but the plugin loading issues persist, so they seem to be unrelated to me.

The wine integration does seem to work tho, no? Otherwise I would not see the popup that some license management tool is not running, right?

dschmidt avatar Nov 07 '21 17:11 dschmidt

Any way to progress here?

dschmidt avatar Jan 23 '22 22:01 dschmidt

well the typical thing would be to try first without pipewire, using real jack (even if in dummy mode).

and making sure pipewire is up to date, it keeps changing.

I dont use pipewire myself, so dont know about this in particular.

falkTX avatar Jan 23 '22 23:01 falkTX

I am having a similar problem, though I don't know if the reason is Pipewire.

Whenever I try to load a Windows VST a Failed to load plugin message appears and the log shows the following:

Carla assertion failure: "lib != nullptr" in file JackBridgeExport.cpp, line 35

Carla assertion failure: "bridge.func != nullptr" in file JackBridgeExport.cpp, line 60

A JACK or Wine library is missing, cannot continue

Using Kubuntu 21.10. I have all possible Carla packages installed. It used to work before. Is there something missing?

DeeJayLSP avatar Feb 14 '22 17:02 DeeJayLSP

I built Carla from source from the latest commit and this problem gone. Of course with pipewire-jack installed.

MaciejMalczyk avatar Mar 29 '23 19:03 MaciejMalczyk