dropsnorz / owlplug Goto Github PK
View Code? Open in Web Editor NEWAudio plugin manager. Small tool to manage VST / AU / LV2 plugins on Windows, MacOS and Linux.
Home Page: https://owlplug.com
License: GNU General Public License v3.0
Audio plugin manager. Small tool to manage VST / AU / LV2 plugins on Windows, MacOS and Linux.
Home Page: https://owlplug.com
License: GNU General Public License v3.0
Wrong rendering on view
if (product.getType() == PluginType.EFFECT) {
this.typeLabel.setText("Instrument (VSTi)");
} else if (product.getType() == PluginType.INSTRUMENT) {
this.typeLabel.setText("Effect (VST)");
}
Would be nice feature to be able to enable or disable a plugin. Not sure how this could be done, maybe amending the extension to something like ".vst-disabled" so the simply DAW skips them over.
You will need to clear your application with antivirus vendors such as Trend Micro or users will encounter numerous issues like this.
Steps to reproduce:
Most of my VST plugins are under a single directory, but some of them have installers which don't allow reconfiguring the directory or are in other places for various reasons.
Is there some way I can specify multiple VST2 and VST3 directories to scan?
Fresh downloaded file doesn't open. Running xattr -cr on the app in terminal fixes the issue, however.
This is in macOS 10.13.6, not sure if it affects other versions.
Hi, I'm getting the following error message when downloading some plugins (for example Sitala via VST4Free):
An error occured during plugin install: zip END header not found.
When closing the app during a task execution (bundle download, sync task, ...), the associated thread will remain executed on the JVM until the end.
Good work!
A nice feature would be if you could tag your plugins and then filter by the tags. Like in a Sample Manager (Loopcloud).
Plugin slug
should be added to provide a human-friendly plugin identifier across stores.
Possible attribution could be -
"The Quality and Usability Lab of TU-Berlin" or when I have used the installer it was installed as
"QULab"
"QUL of TU-Berlin" seems succinct and not-bad
the attribution at the bottom is QUL
If it helps also the Teacher was https://github.com/mahal-tu and it was made by his students there so possibly also attribute Marc Halbrügge
The first time you are using OwlPlug / WelcomeView is outdated.
We can now configure different directories for each supported plugin format.
Save product from store in directory
is disabled.If we cancel or close the window, plugin installation will be triggered.
MacOs app package should be signed notarized to avoid warnings at install.
https://developer.apple.com/documentation/xcode/notarizing_macos_software_before_distribution
Hello, love the idea behind this project, its really interesting!
When trying to install any plugin from the Owl Central repo I get a v 0.14.1
File not found error
:
Here are the full list of issues I had testing the Owl Central Plugins
VCV Rack does this, it's a nice feature:
It stores each user's installed plugins in a user account, and syncs all computers of this user that have VCV Rack installed.
They are using a server to store user accounts, but it could be done via dropbox/gdrive, too.
(A more general solution would allow having multiple installation profiles per user, in case they don't want every computer to sync to the same set of installed VSTs. AFAIK VCV will support this in the future..)
Version: 0.8.0
PluginRemoveTask
uses File.delete()
which work for directories only if they are emtpy.
Possible solutions:
PluginRemoveTask
and DirectoryRemoveTask
PluginRemoveTask
This is a feature request from the discussion on issue #53
Basically, the idea is that if the end-user clicks either a tag or the creator inside the details, it will 'inject' that as a search team into the multi search input. This means if you, for instance, liked the work of a certain creator, you can click their name and now you're searching by that creator!
When the user cancel the authorization flow, an account is added to OwlPlug with empty informations.
I'm still on 32-bit, because most free VSTs are 32-bit only.
It would be great if I could set a global filter to only show results in 32 or 64 bit (two checkboxes), and to always only install the versions that match this global filter.
When plugin path changes on OptionView, path suggestions list is not up to date on CreateLinkView.
Suggestion list should also be displayed when the text field is focused.
In your script Projucer is downloaded from an external source (https://projucer.rabien.com):
OwlPlug/build/download-projucer.sh
Line 15 in 45e6e3b
It's seems possible to download Projucer from the Github JUCE library releases directly:
curl -L https://github.com/juce-framework/JUCE/releases/download/6.0.8/juce-6.0.8-osx.zip --output jucesdk.zip
unzip jucesdk.zip
./JUCE/Projucer --resave example.jucer
This reduces the dependency on an external source and may even provide performance benefits!
This is a PR to address item 1 of this comment here: #53 (comment)
I think there's at least some utility in configuring how the plugins are nested and folded. Specifically, it is useful to group plugins by a certain manufacturer in a folder. I don't think this would put additional labor on the manufacturer.
Imagine this sort of layout of your final plugin folder:
🗀VST
🗀discoDSP/
🗀OB-Xd/
🗎 thing.dll
🗀 presets/
🗎 one.patch
🗎 two.patch
🗎 manual.pdf
🗀Socalabs/
🗀SN76489
🗎 SN76489_32b.dll
🗎 SN76489_64b.dll
🗀SocalabsSampleDelay
🗎 SampleDelay.dll
🗎 SampleDelay_32b.dll
Since you already possess the name of the creator, this is just a matter of your file writer, and possibly something you could toggle if you preferred a flat look. Consider that in some editors like Ableton, they more-or-less just straight up preserve the folder shape, so this is a way to really help with organization, a core goal of the program.
In order for this to work correctly, this needs to be
Spaces (and only " "
) should be allowed in filenames. It's not the case in FileUtils.sanitizeFileName
If spaces are allowed, we should trim the String to avoid trailing and duplicates space character.
Some placeholder and disabled text are simply unreadable on default grey background.
OwlPlug crashes whilst scanning - when it crashes the last plugin I see it scaning is by SSL, it was too fast for me to read, but I only have Drum Strip and the Bus Compressor from them. macOS Catalina 10.15.5.
I love the idea of this application and I want to help make it better, so I've compiled some more things that I think will greatly improve the application:
If this is the wrong place to post this let me know
First, if you didn't see, I posted 5 things I think that are very important, and that post is here: #51 (comment)
Here's the feedback in no particular order (and recently edited to include a bit more detail)
Mark which Items have already been installed in the UI. The waveform vs 'effect' icon is really nice, maybe on the other side of the title, put like a check or change the background of the title. Something obvious.
The 'mortar' effect is visually interesting and fun, but it's actually really difficult to navigate in most situations. A standard listview or card-view would actually be better. You can certainly do all of the above, and I am not underestimating the visual interest of this being a dashboard/lander layout. The ability to toggle views would be most practical. Think about the NI installer or Steam. The list can just be tabular, with more information and another view can be cards that scroll side-to-side in groups by topic. Think about like how Netflix has 'cards' for 'horror' why not 'cards' for "subtractive" or "chiptunes". As for a tabular view, just go for a canonical high-utility table with sortable columns and a clean pager. I feel like working on this matters a lot. You have the data and the ability to group things effectively, and the presentation of it could take this app to the next level.
You need to allow the end-user to filter by things already installed. This is very important.
Make the 'user', 'type', and 'tags' interactive on the right-hand side. If you click one it adds it to the multi-search input. So if I click 'Socalabs' it is as if I had typed it in the search.
A better pager control than "load more". Something with numbers, and the ability to move in a canonical way. I feel like the UI is designed more like a 'feed' than a thing you can truly search, sort, and navigate. In my own work most user feedback in any situation excluding a 'scrolling feed' has been considered undesirable after earnest A/B testing. In a feed, you want to auto-load like twitter (and also scroll virtually so there's not a performance penalty for long sessions). For nearly any other situation with canonical records management (which I feel like this certainly fits that from an engineering perspective), a traditional pager is very much desired. There is a plentitude of these on the internet, in various js frameworks but here's a common enough example: https://material-ui.com/components/data-grid/
Edit: I can see you are using JFoenix: http://www.jfoenix.com/documentation.html#TreeTableView would be the right tool I believe
I still am not clear on what 'Native Discovery' really does, can you put a tooltip or something that clearly expresses what that is? It sounds like you're somehow introspecting the VSTs for more tag information, because it is an option for already installed items, but I'm not sure how that could work. It was difficult enough for me to solve the problem of what arch platform a plugin was (32 v 64 bit). I could not figure out a way to get the manufacturer (which I really would like to manage my stuff). What's really happening here?
Can you add descriptions in the Options that explain the difference between the cache and the user data? I suspect that one is just the plugin manifest and another is your credentials for G+.. is that it? I think you need some copy here to really explain which does what. That or have a way to itemize the cached data and the user can pick exactly what, not unlike how browsers or windows does it.
Can you add more about what the G+ Authentication truly does? You could just add some copy in the G+ account popup that describes what the app will do, and why it needs the permissions it is asking for, which are pretty elevated.
As pointed by #19, error messages must be more explicit if a downloaded product can't be installed (wrong filetype, etc...)
Maybe, filetype can be checked before the download step to directly reject installation.
OwlPlug memory footprint increase when store products are displayed.
Its a known issue with JFXMasonryPane which keeps removed childs references.
JFoenix dependency must be updated with the actual fix.
Add the ability to change the sort order in plugin TreeView:
Could a Linux version possibly be a thing in the future?
Native plugin discovery can be disabled globally in Options.
While #27 is not implemented and allows scan error recovery, it might be interesting to disable native discovery for specific plugins only.
When installing VSTs from Vst4free, I often want to install ALL VTSs from an author.
Please add these features:
If it's too much work to introduce author pages, or if you don't want to make this software too specific to Vst4Free, please add this button ("Install all VSTs by this author") to each individual Vst instead.
Sandboxing by subprocessing native plugin scans can solve lots of frustrating crashes. For now, if something wrong happen on the native library callled by JNI, the entire OwlPlug JVM crashes.
Here is a naive way to handle this:
Some points to take into account:
Process communication best practices? Async or Sync pool management, performance, alternatives, etc...
On Windows, when the MSI installer is used to update OwlPlug, old jars are not replaced because the owlplug version number is in the filename. There is no side effects, but outdated files are retained on the filesystem.
We should update maven build to produce a unique jar filename or create a task to rename the jar during the MSI packaging.
Thanks for this VST manager. Something like this is very useful.
Unfortunately, I ran into an issue:
I tried to install GGrain 32 bit, it said "extracting" forever, it created the folder owl\GGrain
but it stayed empty :/
Any idea how to make it work? :)
OwlPlug have to handle owlpack structures that directly contains environment folders.
The following structure is detected as DIRECT
but should be ENV
.
owlpack.zip
├── win (folder)
└── osx (folder)
Users should be able to easily define a custom log level.
Maybe by adding a .loglevel
file in owlplug home folder.
On Windows, OwlPlug must be started with admin rights to install plugins in Program / System folders.
Not an issue with OwlPlug but error messages should be more explicit:
Invalid installation directory
Error moving files
I have a pretty large plugin library, and have experienced at least 10 crashes so far trying to complete the initial scan. I realize this is hard to avoid because any plugin issues can crash the host. However, many IDEs separate the process which hosts the plugins to a separate thread so that if it crashes it can be restarted without affecting the rest of the host application. Would something like that be possible in OwlPlug's case?
As OwlPlug OSX version is more and more stable, Audio Unit support should be considered. It's a widely-used format in music industry.
AU support steps:
enabled
, auDirectory
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.