antanasbruzas / abNinjam

NINJAM client
MIT License
12 stars 2 forks source link

VST under linux #6

Open patricksebastien opened 4 years ago

patricksebastien commented 4 years ago

What do you use on linux (ubuntu) to load a VST? I see Airwave or LinVST but also Carla dssi-vst? Thanks

antanasbruzas commented 4 years ago

I use Bitwig Studio and REAPER. Aiware or LinVST are for loading Windows VST versions on Linux. abNinjam is built as a native Linux VST. Which DAW do you use?

antanasbruzas commented 4 years ago

What do you use on linux (ubuntu) to load a VST? I see Airwave or LinVST but also Carla dssi-vst? Thanks

Qtractor introduced experimental VST3 support with version 0.9.13 but I have not tested it.

patricksebastien commented 4 years ago

Didn't know it was possible to build native VST on linux. Will try! I want to load it in pure data, there's a vstplugin~ external. Will report back. Jamtaba was a bit too CPU hungry on my setup. I am also using Bitwig, will test that too.

patricksebastien commented 4 years ago

Missing deps in the documentation on my Ubuntu 19.04: libcairo-dev libfreetype6-dev lv2-dev

In bitwig it works! But there's no sync option (both BPM and start). bitwig

In PD it doesn't work, I think because vstplugin~ try to use wine or linvst, not sure... pd

Will try to find a way to load the LV2 inside pd.

antanasbruzas commented 4 years ago

In bitwig it works! But there's no sync option (both BPM and start).

Added auto bpm sync with https://github.com/antanasbruzas/abNinjam/commit/ea02fa6594de64fb092d440a4dc0e36a1683f4b2 I'm not sure what do you mean by start sync. What are you trying to achieve? abNinjam will automatically sync with Bitwig playhead in beats, it does not need to be started from the beginning.

patricksebastien commented 4 years ago

Not sure about this one, but let me try to explain it: if Bitwig is already running (the playhead, let's say at beat 2:2:1) and your plugin receive a BPM change, will bitwig wait to apply this new BPM on the first beat or something similar?

Also your implementation of sync relies on OSC, do we need to install: https://www.bitwig.com/en/community/control_scripts/osc/osc/osc_1.html

Thanks

antanasbruzas commented 4 years ago

Not sure about this one, but let me try to explain it: if Bitwig is already running (the playhead, let's say at beat 2:2:1) and your plugin receive a BPM change, will bitwig wait to apply this new BPM on the first beat or something similar?

Also your implementation of sync relies on OSC, do we need to install: https://www.bitwig.com/en/community/control_scripts/osc/osc/osc_1.html

Thanks

Yes you are correct bitwig should wait for the next beat to apply the bpm change and yes it requires the extension for changing the bpm. Vst plugin cannot directly change bpm of the DAW as far as I know.

antanasbruzas commented 4 years ago

Hi, it seems that Qtractor has the same bug that it does not load UI correctly and it does not work even with examples from Steinberg. Same goes for vstplugin~ for puredata: pdagain What you can do to get abNinjam to work with puredata is to load it without editor on vstplugin~ as it supports this feature: pdabninjam Alternatively you can build abNinjam with -DWITHOUT_GUI=ON option.

patricksebastien commented 4 years ago

:+1:

Thanks for investigating this!

cbix commented 4 years ago

@antanasbruzas I built and installed abNinjam LV2 and VST3 as of fc50af9 on Arch using Cmake (to ~/.lv2 and ~/.vst3) and the LV2 version works great with the configuration file and without UI, but neither Ardour nor Carla finds the VST3 when scanning for plugins even though I triple-checked the scanning paths.

trebmuh commented 4 years ago

AFAIK, Ardour doesn't support VST3, and for Carla, you need a git version for that support. Qtractor 0.9.15 does support VST3 if compiled with the correct option/dependency.

cbix commented 4 years ago

Ah, good to know!! Will test that later, thanks :)

30 Jun 2020 13:51:58 Olivier Humbert notifications@github.com:

AFAIK, Ardour doesn't support VST3, and for Carla, you need a git version for that support. Qtractor 0.9.15 does support VST3 if compiled with the correct option/dependency.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub[https://github.com/antanasbruzas/abNinjam/issues/6#issuecomment-651743939], or unsubscribe[https://github.com/notifications/unsubscribe-auth/AAJ4MSPGNYVC3UYWISLV7DLRZHGV5ANCNFSM4NBUSYHA]. [https://github.com/notifications/beacon/AAJ4MSMM5JK5KLGRL63ONE3RZHGV5A5CNFSM4NBUSYHKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOE3MNFQY.gif]

cbix commented 4 years ago

Tried again today with Carla 2.2.0 and the VST3 GUI worked. I don't know if that's intended, but the abNinjam VST3 plugin has 64 inputs and outputs while the LV2 is stereo in/out: Screenshot from 2020-11-08 10-55-10

cbix commented 4 years ago

Also getting this segfault when right-clicking on the GUI:

Thread 1 "carla" received signal SIGSEGV, Segmentation fault.
0x00007fffbdad4608 in VSTGUI::VST3Editor::onMouseDown(VSTGUI::CFrame*, VSTGUI::CPoint const&, VSTGUI::CButtonState const&) ()
   from /home/florian/.vst3/abNinjam.vst3/Contents/x86_64-linux/abNinjam.so
(gdb) thread apply all bt
...
Thread 1 (Thread 0x7ffff78b8740 (LWP 81543) "carla"):
#0  0x00007fffbdad4608 in VSTGUI::VST3Editor::onMouseDown(VSTGUI::CFrame*, VSTGUI::CPoint const&, VSTGUI::CButtonState const&) () at /home/florian/.vst3/abNinjam.vst3/Contents/x86_64-linux/abNinjam.so
#1  0x00007fffbda3e0b5 in VSTGUI::CFrame::callMouseObserverMouseDown(VSTGUI::CPoint const&, VSTGUI::CButtonState const&) () at /home/florian/.vst3/abNinjam.vst3/Contents/x86_64-linux/abNinjam.so
#2  0x00007fffbda3e2f5 in VSTGUI::CFrame::onMouseDown(VSTGUI::CPoint&, VSTGUI::CButtonState const&) () at /home/florian/.vst3/abNinjam.vst3/Contents/x86_64-linux/abNinjam.so
#3  0x00007fffbda3e65f in non-virtual thunk to VSTGUI::CFrame::platformOnMouseDown(VSTGUI::CPoint&, VSTGUI::CButtonState const&) () at /home/florian/.vst3/abNinjam.vst3/Contents/x86_64-linux/abNinjam.so
#4  0x00007fffbdac6595 in VSTGUI::X11::Frame::Impl::onEvent(xcb_button_press_event_t&) () at /home/florian/.vst3/abNinjam.vst3/Contents/x86_64-linux/abNinjam.so
#5  0x00007fffbdac9418 in VSTGUI::X11::RunLoop::Impl::onEvent() () at /home/florian/.vst3/abNinjam.vst3/Contents/x86_64-linux/abNinjam.so
#6  0x00007fffe918bbb3 in  () at /usr/lib/carla/libcarla_standalone2.so
...
antanasbruzas commented 4 years ago

Also getting this segfault when right-clicking on the GUI:

Thread 1 "carla" received signal SIGSEGV, Segmentation fault.
0x00007fffbdad4608 in VSTGUI::VST3Editor::onMouseDown(VSTGUI::CFrame*, VSTGUI::CPoint const&, VSTGUI::CButtonState const&) ()
   from /home/florian/.vst3/abNinjam.vst3/Contents/x86_64-linux/abNinjam.so
(gdb) thread apply all bt
...
Thread 1 (Thread 0x7ffff78b8740 (LWP 81543) "carla"):
#0  0x00007fffbdad4608 in VSTGUI::VST3Editor::onMouseDown(VSTGUI::CFrame*, VSTGUI::CPoint const&, VSTGUI::CButtonState const&) () at /home/florian/.vst3/abNinjam.vst3/Contents/x86_64-linux/abNinjam.so
#1  0x00007fffbda3e0b5 in VSTGUI::CFrame::callMouseObserverMouseDown(VSTGUI::CPoint const&, VSTGUI::CButtonState const&) () at /home/florian/.vst3/abNinjam.vst3/Contents/x86_64-linux/abNinjam.so
#2  0x00007fffbda3e2f5 in VSTGUI::CFrame::onMouseDown(VSTGUI::CPoint&, VSTGUI::CButtonState const&) () at /home/florian/.vst3/abNinjam.vst3/Contents/x86_64-linux/abNinjam.so
#3  0x00007fffbda3e65f in non-virtual thunk to VSTGUI::CFrame::platformOnMouseDown(VSTGUI::CPoint&, VSTGUI::CButtonState const&) () at /home/florian/.vst3/abNinjam.vst3/Contents/x86_64-linux/abNinjam.so
#4  0x00007fffbdac6595 in VSTGUI::X11::Frame::Impl::onEvent(xcb_button_press_event_t&) () at /home/florian/.vst3/abNinjam.vst3/Contents/x86_64-linux/abNinjam.so
#5  0x00007fffbdac9418 in VSTGUI::X11::RunLoop::Impl::onEvent() () at /home/florian/.vst3/abNinjam.vst3/Contents/x86_64-linux/abNinjam.so
#6  0x00007fffe918bbb3 in  () at /usr/lib/carla/libcarla_standalone2.so
...

Thanks for reporting. I was able to reproduce this right click Segmentation fault in Carla. Same thing happens with Steinberg's SDK example reference plugins so it's either a bug in Carla or in SDK I guess.

cbix commented 4 years ago

@antanasbruzas I opened an issue for Carla now, see the reference above. You might want to add some useful information there as you could reproduce it with the SDK example plugins ;)

cbix commented 3 years ago

@antanasbruzas to pick up from the discussion in #15 – I only saw now you added that commit and it solves the port number issue. Now I have stereo in/out in Carla, but Input still doesn't work. To reproduce this:

  1. connect instrument to abNinjam VST3 inputs
  2. connect abNinjam outputs to system output
  3. bypass/monitoring works when disconnected
  4. as soon as you connect monitoring doesn't work anymore + the input doesn't get send to other connected users.