Yabridge-UI-Yad

All your LV2 and LADSPA goodness and more.

Moderators: MattKingUSA, khz

Post Reply
User avatar
GMaq
Established Member
Posts: 2774
Joined: Fri Sep 25, 2009 1:42 pm
Has thanked: 520 times
Been thanked: 555 times

Yabridge-UI-Yad

Post by GMaq »

Hi,

First of all we already have some great work going on in the GeekosDAW community on a graphical frontend for the great @robbert-vdh VST bridge yabridge project called 'yabridget' and that project can be found here: https://gitlab.com/fpesari/yabridget

I have been working on rewriting the AVL-MXE Assistant to use 'yad' and wanted to integrate something for setting up yabridge within the Assistant (like I had previously for LinVST) so here is an infantile start to that and I've made it a standalone modular type of thing so I'm posting it here. It is tiny and only requires yad and xterm (and yabridge of course). It assumes you have yabridge installed to ~/.local/share/yabridge as is recommended on the yabridge github page. It allows you to add or remove VST folders, sync with or without 'pruning' and status yabridgectl and also directly open (and edit if needed) the yabridge config.toml file.

For now it is only packaged for Debian-based systems and although it seems to do everything I need this is extremely alpha and I am no scripting wizard so I welcome feedback on if it works outside my system..lol. This utility will be in the next AVL-MXE release with the new Assistant once Debian Bullseye and MX Linux 21 are released.

There is a Deb for all architectures here:
http://bandshed.net/packages/AVL-MXE/al ... -1_all.deb

Image
Last edited by GMaq on Wed Jul 21, 2021 2:26 pm, edited 2 times in total.
User avatar
sysrqer
Established Member
Posts: 2519
Joined: Thu Nov 14, 2013 11:47 pm
Has thanked: 319 times
Been thanked: 148 times
Contact:

Re: Yabridge-UI-Yad

Post by sysrqer »

Just gave it a try and it works well on KDE Neon. I ran into a problem with my existing prefix being 32 bit but creating a new one fixed that.
User avatar
GMaq
Established Member
Posts: 2774
Joined: Fri Sep 25, 2009 1:42 pm
Has thanked: 520 times
Been thanked: 555 times

Re: Yabridge-UI-Yad

Post by GMaq »

sysrqer wrote: Thu Jul 08, 2021 7:27 pm Just gave it a try and it works well on KDE Neon. I ran into a problem with my existing prefix being 32 bit but creating a new one fixed that.
Thanks for trying it and passing that along. :)
Jaaxx
Established Member
Posts: 47
Joined: Tue Aug 24, 2010 4:20 pm
Has thanked: 1 time

Re: Yabridge-UI-Yad

Post by Jaaxx »

Gmaq, This looks great!

Is there a way to only add specific VSTs rather than entire folders? I currently have a mixed setup with LinVST using LinVSTManager with only a few select VSTs I am testing with Yabridge. LinVSTManager allows explicitly picking and excluding individual VSTs, so I just exclude the ones I want to use with Yabridge. However, at the moment I'm managing Yabridge manually and it's a little cumbersome.
robbert-vdh
Established Member
Posts: 219
Joined: Mon Mar 01, 2021 10:56 pm
Has thanked: 51 times
Been thanked: 92 times
Contact:

Re: Yabridge-UI-Yad

Post by robbert-vdh »

Jaaxx wrote: Sat Jul 10, 2021 7:10 pm Gmaq, This looks great!

Is there a way to only add specific VSTs rather than entire folders? I currently have a mixed setup with LinVST using LinVSTManager with only a few select VSTs I am testing with Yabridge. LinVSTManager allows explicitly picking and excluding individual VSTs, so I just exclude the ones I want to use with Yabridge. However, at the moment I'm managing Yabridge manually and it's a little cumbersome.
(I guess I'll answer for @GMaq, since this is more of a yabridgectl question)

I designed yabridgectl with the main goals being resilience and simplicity. The idea is that yabridgectl takes ownership of your plugins directories and manages them for you. So whenever you install a new plugin or update yabridge, you only have to run `yabridgectl sync` once (optionally with `--prune` when uninstalling plugins) and yabridgectl will do its thing while taking care of any potential issues for you. While you technically can add individual plugin files to yabridgectl, doing so goes against the whole idea of yabridgectl and it's also not supported (so yabridgectl may not always behave like you'd expect it to). I'd advise giving the workflow described in the readme a shot: just install your plugins like usual, add the Windows plugin directories to yabridgectl, and let yabridgectl do the rest.
Last edited by robbert-vdh on Sun Jul 11, 2021 11:35 pm, edited 1 time in total.
User avatar
GMaq
Established Member
Posts: 2774
Joined: Fri Sep 25, 2009 1:42 pm
Has thanked: 520 times
Been thanked: 555 times

Re: Yabridge-UI-Yad

Post by GMaq »

robbert-vdh wrote: Sat Jul 10, 2021 10:10 pm
Jaaxx wrote: Sat Jul 10, 2021 7:10 pm Gmaq, This looks great!

Is there a way to only add specific VSTs rather than entire folders? I currently have a mixed setup with LinVST using LinVSTManager with only a few select VSTs I am testing with Yabridge. LinVSTManager allows explicitly picking and excluding individual VSTs, so I just exclude the ones I want to use with Yabridge. However, at the moment I'm managing Yabridge manually and it's a little cumbersome.
(I guess I'll answer for @GMaq, since this is more of a yabridgectl question)

I designed yabridgectl with the main goals being resilience and simplicity. The idea is that yabridgectl takes ownership of your plugins directories and manages them for you. So whenever you install a new plugin or update yabridge, you only have to run `yabridgectl sync` once (optionally with `--prune` when uninstall plugins) and yabridgectl will do its thing while taking care of any potential issues for you. While you technically can add individual plugin files to yabridgectl, doing so goes against the whole idea of yabridgectl and it's also not supported (so yabridgectl may not always behave like you'd expect it to). I'd advise giving the workflow described in the readme a shot: just install your plugins like usual, add the Windows plugin directories to yabridgectl, and let yabridgectl do the rest.
Thanks for answering that, actually I wasn't 100% clear on how 'prune' worked so I had left that for now but your post gives me a hint, I think that will be an easy feature to add actually.

Is it essentially find the VST dll you want to prune and then run:

yabridgectl --prune /path/to/dll? What about VST3? Do you simply select the '.vst3' bundle folder to prune?
Last edited by GMaq on Sun Jul 11, 2021 11:38 pm, edited 1 time in total.
robbert-vdh
Established Member
Posts: 219
Joined: Mon Mar 01, 2021 10:56 pm
Has thanked: 51 times
Been thanked: 92 times
Contact:

Re: Yabridge-UI-Yad

Post by robbert-vdh »

GMaq wrote: Sun Jul 11, 2021 11:33 pm Thanks for answering that, actually I wasn't 100% clear on how 'prune' worked so I had left that for now but your post gives me a hint, I think that will be an easy feature to add actually.

Is it essentially find the VST dll you want to prune and then run:

yabridgectl --prune /path/to/dll? What about VST3? Dou you simply select the '.vst3' bundle folder to prune?
No, yabridgectl will show you a list of files it thinks were left over and safe to remove, and you can then rerun the yabridgectl sync command with the prune option to remove those files at the end of the synchronization process. The master branch version of yabridgectl is also smart enough to prune inside of VST3 bundles and to avoid leaving empty directories behind, which is useful if you somehow want to switch between the 32-bit and 64-bit versions of yabridge or if you want to uninstall a 64-bit version of a VST3 plugin but leave the 32-bit version installed (don't know why you would ever do that, but now you can).
User avatar
GMaq
Established Member
Posts: 2774
Joined: Fri Sep 25, 2009 1:42 pm
Has thanked: 520 times
Been thanked: 555 times

Re: Yabridge-UI-Yad

Post by GMaq »

Ok, so what command is run to discover the potential unneeded files to potentially prune??
robbert-vdh
Established Member
Posts: 219
Joined: Mon Mar 01, 2021 10:56 pm
Has thanked: 51 times
Been thanked: 92 times
Contact:

Re: Yabridge-UI-Yad

Post by robbert-vdh »

GMaq wrote: Sun Jul 11, 2021 11:43 pm Ok, so what command is run to discover the potential unneeded files to potentially prune??
`yabridgectl sync`. Try creating some files that shouldn't be there. Something like `mkdir -p ~/.vst3/yabridge/begone.vst3`, you'll see what I mean.
User avatar
GMaq
Established Member
Posts: 2774
Joined: Fri Sep 25, 2009 1:42 pm
Has thanked: 520 times
Been thanked: 555 times

Re: Yabridge-UI-Yad

Post by GMaq »

robbert-vdh wrote: Sun Jul 11, 2021 11:53 pm
GMaq wrote: Sun Jul 11, 2021 11:43 pm Ok, so what command is run to discover the potential unneeded files to potentially prune??
`yabridgectl sync`. Try creating some files that shouldn't be there. Something like `mkdir -p ~/.vst3/yabridge/begone.vst3`, you'll see what I mean.
So --prune is essentially garbage collecting for plugins that have been improperly removed or not removed completely?
robbert-vdh
Established Member
Posts: 219
Joined: Mon Mar 01, 2021 10:56 pm
Has thanked: 51 times
Been thanked: 92 times
Contact:

Re: Yabridge-UI-Yad

Post by robbert-vdh »

GMaq wrote: Mon Jul 12, 2021 2:31 pm So --prune is essentially garbage collecting for plugins that have been improperly removed or not removed completely?
After you uninstall a plugin (say, through `wine uninstaller`), the .so files yabridgectl created for VST2 plugins and the VST3 bundles created in ~/.vst3/yabridge will still exist, but they now obviously won't load anymore because the Windows plugins they're trying to load have been removed. So yabridgectl detects these leftover/orphan files during the scanning process, and the prune option allows you to get rid of them so you don't end up with a directory full of defunct plugins (and a DAW screaming at you because it cannot load them).

So in other words, it doesn't remove any arbitrary files. It only gets rid of orphaned Linux VST2 and VST3 plugins yabridgectl detects in its managed plugin directories, and in the case of VST3 plugins it also prunes unmanaged directories within the merged VST3 bundles in ~/.vst3/yabridge.
User avatar
GMaq
Established Member
Posts: 2774
Joined: Fri Sep 25, 2009 1:42 pm
Has thanked: 520 times
Been thanked: 555 times

Re: Yabridge-UI-Yad

Post by GMaq »

robbert-vdh wrote: Mon Jul 12, 2021 2:35 pm
GMaq wrote: Mon Jul 12, 2021 2:31 pm So --prune is essentially garbage collecting for plugins that have been improperly removed or not removed completely?
After you uninstall a plugin (say, through `wine uninstaller`), the .so files yabridgectl created for VST2 plugins and the VST3 bundles created in ~/.vst3/yabridge will still exist, but they now obviously won't load anymore because the Windows plugins they're trying to load have been removed. So yabridgectl detects these leftover/orphan files during the scanning process, and the prune option allows you to get rid of them so you don't end up with a directory full of defunct plugins (and a DAW screaming at you because it cannot load them).

So in other words, it doesn't remove any arbitrary files. It only gets rid of orphaned Linux VST2 and VST3 plugins yabridgectl detects in its managed plugin directories, and in the case of VST3 plugins it also prunes unmanaged directories within the merged VST3 bundles in ~/.vst3/yabridge.
OK got it! So then for the terminally lazy and inattentive (like say for example...me) should/could yabridgectl sync just be run with the --prune switch engaged all the time?
robbert-vdh
Established Member
Posts: 219
Joined: Mon Mar 01, 2021 10:56 pm
Has thanked: 51 times
Been thanked: 92 times
Contact:

Re: Yabridge-UI-Yad

Post by robbert-vdh »

GMaq wrote: Mon Jul 12, 2021 2:58 pm
robbert-vdh wrote: Mon Jul 12, 2021 2:35 pm
GMaq wrote: Mon Jul 12, 2021 2:31 pm So --prune is essentially garbage collecting for plugins that have been improperly removed or not removed completely?
After you uninstall a plugin (say, through `wine uninstaller`), the .so files yabridgectl created for VST2 plugins and the VST3 bundles created in ~/.vst3/yabridge will still exist, but they now obviously won't load anymore because the Windows plugins they're trying to load have been removed. So yabridgectl detects these leftover/orphan files during the scanning process, and the prune option allows you to get rid of them so you don't end up with a directory full of defunct plugins (and a DAW screaming at you because it cannot load them).

So in other words, it doesn't remove any arbitrary files. It only gets rid of orphaned Linux VST2 and VST3 plugins yabridgectl detects in its managed plugin directories, and in the case of VST3 plugins it also prunes unmanaged directories within the merged VST3 bundles in ~/.vst3/yabridge.
OK got it! So then for the terminally lazy and inattentive (like say for example...me) should/could yabridgectl sync just be run with the --prune switch engaged all the time?
I use --prune all the time, but since it removes files it's not a safe as a default. If you for instance accidentally (or on purpose? Don't do that :D) add your entire home directory or ~/.vst or something to yabridge, then running `yabridgectl sync --prune` will end up deleting all .so files in those directories. That's why `yabridgectl sync` by default only reports the list of files that are candidate for removal, and then you can just rerun the same command with the --prune option to actually remove those files.
User avatar
GMaq
Established Member
Posts: 2774
Joined: Fri Sep 25, 2009 1:42 pm
Has thanked: 520 times
Been thanked: 555 times

Re: Yabridge-UI-Yad

Post by GMaq »

OK,

Got it, this is all kindergarten scripting at my level anyway. I'll just add another option that runs with --prune and if folks get a report from yabridgectl sync telling them about cruft they can run it then.
User avatar
GMaq
Established Member
Posts: 2774
Joined: Fri Sep 25, 2009 1:42 pm
Has thanked: 520 times
Been thanked: 555 times

Re: Yabridge-UI-Yad

Post by GMaq »

A tiny update..

Added a prune option and made it install the app folder assets in a saner location in /usr/local/share. Unless/until yabridge adds some more features requiring a UI or the install locations of the binaries change this is probably done for the time being..

New file in first post.
Post Reply