Ardour & vcv2 vst2 plugin

looks like vcv2 got out , and I am wondering if the (paid version with the) vst2 plugin would work inside of ardour

https://vcvrack.com/Rack

anyone tried?

Website says Mixbus 6 :

Supported DAWs: Ableton Live 10–11, Cubase 11, FL Studio 20, Reason 10-12, Bitwig 4, Reaper 6, Mixbus 6, Studio One 5, Cakewalk

Shame theres no demo . I am curious about this as well .

ok i thought i wanna use it anyways and bought the pro version :wink:

it seems it is not working out of the box in ardour, i did a quick test and it shows up in bitwig,… will investigate further…

Is there any more info in the log at the bottom after “Instantiating Rack Effect”?

There are 2 or 3 users on #ardour IRC for whom it works.

I’m on ubuntu 20.4.3, I can load the vcv vst ok
but Ardour blocks and hangs after a few actions, like for example adding vcv modules.
btw: I don’t see these issues in Bitwig

I’ll try to produce some more useful feedback …

PS. if you do not use commercial, proprietary 3rd party modules, you are be better off with GitHub - DISTRHO/Cardinal: VCV as plugin experiment (VST3 or LV2).

1 Like

gdb output ( most of lv2 loading is omitted ):

https://justpaste.it/5m5cv

scenario:

  • start Ardour
  • add vcv vst to audio or midi track
  • remove all modules from vcv
  • add audio module to vcv
  • add vco module to vcv

outcome: Ardour hangs

( playing around with the default vcv patch also goes into trouble )

Note: true, Cardinal works well

type or paste [Info]: Scanning: /home/kalimerox/.vst/VCV Rack 2.so
VCV Rack: Instantiating RackEffect
VCV Rack: hostVendor: 
VCV Rack: hostProduct: 
VCV Rack: Initializing Rack
VCV Rack: Checking systemDir: /home/kalimerox/.local/share/VCV/Rack2Pro
VCV Rack: systemDir: /home/kalimerox/.local/share/VCV/Rack2Pro
VCV Rack: Loading library: /home/kalimerox/.local/share/VCV/Rack2Pro/libRack.so
VCV Rack: Could not load library: /lib/x86_64-linux-gnu/libatk-bridge-2.0.so.0: undefined symbol: atk_component_scroll_to_point
VCV Rack: Creating context
Error: signal 11
 ---8<---
  /lib/x86_64-linux-gnu/libc.so.6(+0x46210) [0x7fc68401c210]
 --->8---
Scan Failed.
code here

A backtrace of where it hangs would be useful. ctrl+c in gdb, then bt and thread apply all bt.

1 Like

^C–Type for more, q to quit, c to continue without paging–bt

Thread 1 “ArdourGUI” received signal SIGINT, Interrupt.
0x00007ffff51d5aff in __GI___poll (fds=0x555556ca9ea0, nfds=4, timeout=23) at …/sysdeps/unix/sysv/linux/poll.c:29
29 …/sysdeps/unix/sysv/linux/poll.c: No such file or directory.
(gdb) thread apply all bt

Thread 65 (Thread 0x7fff9a185700 (LWP 99969)):
#0 0x00007ffff51a03bf in __GI___clock_nanosleep (clock_id=clock_id@entry=0, flags=flags@entry=0, req=0x7fff9a184930, rem=0x7fff9a184940) at …/sysdeps/unix/sysv/linux/clock_nanosleep.c:78
#1 0x00007ffff51a6047 in __GI___nanosleep (requested_time=, remaining=) at nanosleep.c:27
#2 0x00007ffff6aa4547 in g_usleep () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3 0x00007ffff761c748 in ARDOUR::AutomationWatch::thread() () at /home/isn/git/ardour/build/libs/ardour/libardour.so.3
#4 0x00007ffff6c08da2 in () at /usr/lib/x86_64-linux-gnu/libglibmm-2.4.so.1
#5 0x00007ffff6aa2ad1 in () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#6 0x00007ffff5b50609 in start_thread (arg=) at pthread_create.c:477
#7 0x00007ffff51e2293 in clone () at …/sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 64 (Thread 0x7fffd53c8700 (LWP 99968)):
#0 futex_wait_cancelable (private=, expected=0, futex_word=0x55555d110324) at …/sysdeps/nptl/futex-internal.h:183
#1 __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x55555d1102d0, cond=0x55555d1102f8) at pthread_cond_wait.c:508
#2 __pthread_cond_wait (cond=0x55555d1102f8, mutex=0x55555d1102d0) at pthread_cond_wait.c:647
#3 0x00007ffff7aca331 in ARDOUR::Session::auto_connect_thread_run() () at /home/isn/git/ardour/build/libs/ardour/libardour.so.3
#4 0x00007ffff7aca3dc in ARDOUR::Session::auto_connect_thread(void*) () at /home/isn/git/ardour/build/libs/ardour/libardour.so.3
#5 0x00007ffff5b50609 in start_thread (arg=) at pthread_create.c:477
#6 0x00007ffff51e2293 in clone () at …/sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 63 (Thread 0x7fffc0ff9700 (LWP 99967)):
#0 futex_wait_cancelable (private=, expected=0, futex_word=0x55555d1102b0) at …/sysdeps/nptl/futex-internal.h:183
#1 __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x55555d110260, cond=0x55555d110288) at pthread_cond_wait.c:508
#2 __pthread_cond_wait (cond=0x55555d110288, mutex=0x55555d110260) at pthread_cond_wait.c:647
#3 0x00007ffff7b39033 in ARDOUR::Session::emit_thread_run() () at /home/isn/git/ardour/build/libs/ardour/libardour.so.3
#4 0x00007ffff7b3906c in ARDOUR::Session::emit_thread(void*) () at /home/isn/git/ardour/build/libs/ardour/libardour.so.3
#5 0x00007ffff5b50609 in start_thread (arg=) at pthread_create.c:477
#6 0x00007ffff51e2293 in clone () at …/sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 62 (Thread 0x7fffc3fff700 (LWP 99966)):
#0 0x00007ffff51d5aff in __GI___poll (fds=0x7fff8c004aa0, nfds=3, timeout=9) at …/sysdeps/unix/sysv/linux/poll.c:29
#1 0x00007ffff6a7936e in () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2 0x00007ffff6a796f3 in g_main_loop_run () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3 0x00007ffff6d0c8e6 in BaseUI::main_thread() () at /home/isn/git/ardour/build/libs/pbd/libpbd.so.4
#4 0x00007ffff6c08da2 in () at /usr/lib/x86_64-linux-gnu/libglibmm-2.4.so.1
#5 0x00007ffff6aa2ad1 in () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
–Type for more, q to quit, c to continue without paging–

press ‘c’ – there should be a lot more…

https://justpaste.it/6a6vj

Thanks.

and oh dear. It hangs in

 rack::engine::Engine::addModule(rack::engine::Module*) () at /home/isn/.local/share/VCV/Rack2Pro/libRack.so

…and Rack started its own GUI event-loop, rather than integrating with the host’s.

That explains to some extent why it works in Bitwig (which process-separates plugins from the host), and also explains why Cardinal doesn’t have this issue.

Nothing we can do on our side, really. Best wait until Rack is available as VST3, which enforces integration.

PS. It is possible for a VST2 plugin to have its own GUI event-loop on Linux with X or wayland, but it is complicated and due to the async nature of X, very easy to get wrong.

1 Like

Thank you for your time and analysis,
regards.

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.