Jump to content

Find projects that use XYZ plugin


Danny Wyatt

Recommended Posts

@des99

I was just thinking about this and I don't know if you tested it as well and if it makes any difference: what about if someone uses custom names inside the Plugin Manager for either the long or short version, or both? Would this also change the name that the plugin reporter would have to find, or it always keeps the original name, regardless? Hopefully those names are handled separately, but just thought about it and wanted to share so you can test it as well, if you haven't already.

Great to see that so much progress is being made! :) This will really come in handy when it's finished, you have no idea. Can't wait! Thank you for your hard and precious work! 🙌

Edited by Danny Wyatt
  • Like 1
Link to comment
Share on other sites

6 hours ago, Atlas007 said:

Naively, I wonder if referring to the plugin manager data could be useful?

It doesn't really help that much, as the only information you can get out of it (apart from how a user has organised their plugin menus) is the three ID strings per plugin, which you can already get from the AU scan - and again, only for plugins that are (or at least have been), installed. If I used those as an alternative to doing a slow AUscan, I'd miss the full manufacturer and plugin names that are useful to have and search on...

Edit: Thinking about it, I might have another method (actually two possible methods) to avoid that clunky slow scan...

Edited by des99
Link to comment
Share on other sites

2 hours ago, Danny Wyatt said:

I was just thinking about this and I don't know if you tested it as well and if it makes any difference: what about if someone uses custom names inside the Plugin Manager for either the long or short version, or both? Would this also change the name that the plugin reporter would have to find, or it always keeps the original name, regardless? Hopefully those names are handled separately, but just thought about it and wanted to share so you can test it as well, if you haven't already.

Thanks - that's a good point and the short answer is - I don't actually know what happens in the file offhand as I haven't really tested it for that yet (I will look at that today).

However, custom names aside, it doesn't change the plugin ID's which is how the plugins are identified and matched, and searches look at all available plugin fields, including the full proper name as supplied by the system. What I'm doing is essentially combining the plugin references in the project with the plugin data from the system, and searching against all those things - so you should be able to search for either the custom name or any other legit name/developer/ID in full or in part without problems...

It's less accurate for uninstalled plugins, as you have no data from the system for the full names - that's where possibly a database of IDs/developers/pluginnames would add some extra utility. I'm still thinking about how best to do that, short of asking people to send me their AUscan lists and flesh out the database (ironically, I've been helping another developer working on a plugin utility over the past week or so and one of their implementation details required almost exactly the same issue...)

Thanks for the AUval version reports chaps, super helpful!

Edited by des99
Link to comment
Share on other sites

6 minutes ago, des99 said:

apart from how a user has organised their plugin menus

This would actually be quite handy. I used Auganizer for years but it's been abandoned by the developer so I have to go back to using the plugin manager. That's fine as most of my ~2000 plugins are categorised already. What I can't do now is see which plugins haven't yet been categorised. If there were some way to output a list of plugins that are still in their default organisational state, I'd find that very useful!

Link to comment
Share on other sites

Just now, noisyneil said:

If there were some way to output a list of plugins that are still in their default organisational state, I'd find that very useful!

There's a few ways this tool could be extended with more "Logic project extraction/reporting" tools. I'll add a note about this and have a think about the utility of something in this area...

  • Love 1
Link to comment
Share on other sites

2 hours ago, des99 said:

it doesn't change the plugin ID's which is how the plugins are identified and matched

That's great, because no matter what name we use, it will still have that unique ID. Awesome! Hopefully, on your tests, you will see that there's no conflict at all and everyone will be happy in the end :)

2 hours ago, des99 said:

I'm still thinking about how best to do that, short of asking people to send me their AUscan lists and flesh out the database

I'm sure people would be willing to do that to grow that list as much as possible, which is good for everyone.

2 hours ago, des99 said:

Thanks for the AUval version reports chaps, super helpful

Any time!

  • Like 1
Link to comment
Share on other sites

5 hours ago, Danny Wyatt said:

That's great, because no matter what name we use, it will still have that unique ID.

After implementing a different approach for the slow scan on pre-Monterey machines (it's no longer slow :) ), with it's appropriate edge cases and fun little tech digressions, I had a look at this.

Custom plugin names are not stored in a project, they are global to Logic (they are more of a display/preferences thing). (Actually, I haven't looked and so I'm not sure where they are stored, either some preferences, or as part of the tag database I guess).

Edit - yes, they are stored in the tag database, so are easily matched to the source plugin. So searching on custom names should be doable too.

The projects continue to reference the proper plugin names as you'd expect. This is good, although it does mean that if you did rename your plugins with custom names, you can't currently search for those custom names - essentially, those live outside the project, so they can't be retrieved from within a project. I don't think that's a huge issue though...

It looks like possible to easily get at the custom plugin names and associate them to the plugin IDs, to enable a search for those too, as they'll just be a different search match for a particular plugin - it's on the list...

Edited by des99
  • Like 1
Link to comment
Share on other sites

36 minutes ago, des99 said:

After implementing a different approach for the slow scan on pre-Monterey machines (it's no longer slow :) ), with it's appropriate edge cases and fun little tech digressions, I had a look at this.

Custom plugin names are not stored in a project, they are global to Logic (they are more of a display/preferences thing). (Actually, I haven't looked and so I'm not sure where they are stored, either some preferences, or as part of the tag database I guess).

Edit - yes, they are stored in the tag database, so are easily matched to the source plugin. So searching on custom names should be doable too.

The projects continue to reference the proper plugin names as you'd expect. This is good, although it does mean that if you did rename your plugins with custom names, you can't currently search for those custom names - essentially, those live outside the project, so they can't be retrieved from within a project. I don't think that's a huge issue though...

It looks like possible to easily get at the custom plugin names and associate them to the plugin IDs, to enable a search for those too, as they'll just be a different search match for a particular plugin - it's on the list...

For my personal workflow, I don't really care about the custom names, because the custom names are just for when I'm working on a project, so I can see what's there. Sometimes the long names get truncated and are hard to read, that's all (for me at least). And I doubt that anyone looking at the original name of the plugin doesn't know what they are looking at, whereas the opposite could cause some confusion if you haven't used your "Poposaltina" plugin (custom name) that refers to a Waves plugin called Retro Compressor (made up name) that you used 2 years ago ;)

So my question is: will this tool allow both a full report of all plugins that the project is using (installed or not) AND search for a particular plugin by typing the name? For example let's say I have 10 projects and I want to see which ones use the Auto Filter plugin. I don't want to see all the plugins on a list and go through it to find the Auto Filter. I just want the tool to show me which ones use that particular plugin. Will this be possible?

 

Link to comment
Share on other sites

35 minutes ago, Danny Wyatt said:

So my question is: will this tool allow both a full report of all plugins that the project is using (installed or not) AND search for a particular plugin by typing the name? For example let's say I have 10 projects and I want to see which ones use the Auto Filter plugin. I don't want to see all the plugins on a list and go through it to find the Auto Filter. I just want the tool to show me which ones use that particular plugin. Will this be possible?

Yes, you'd just search for "auto filter" on the parent folder containing the projects. In search mode, this will list the projects searched, and display only the found plugin/s alongside the project name it/they were found in, so you can easily identify which project uses the plugins that match your search phrase.

Basically, without a search term, you saying "show me all the plugins in the project", but with a search term, you're saying "show me only the plugins that match my search term"...

I posted a couple of examples of what this looks like earlier in the thread (tweaking the display/output to taste etc will happen, that's the easy stuff). But yes, essentially, that's exactly the use case you describe. Currently I'm listing all the projects I process, with a *Found: entry showing the matching plugins only directly underneath the project they were found in, but likely I will end up skipping displaying the non-matching projects, and only display the ones that have those plugins you searched for - that's the point of that feature.  👍 

Here's what it currently looks like doing a search for "lisa" on a folder with 9 projects:-

Logic Project Reporter v0.40

Getting installed plugins... (AUVal version: 1.10.0 - quick scan) Done.
Searching ['lisa'] in /Users/me/Documents/Programming/logic_plugin/test/Project.logicx/Alternatives/000... 
Searching ['lisa'] in /Users/me/Documents/Programming/logic_plugin/test/Project2.logicx/Alternatives/000... 
** Found: TOMO Audiol    [Brwx LISA aumf]	[1]	[+] Plugin Alliance TOMO Audiolabs LISA

Searching ['lisa'] in /Users/me/Documents/Programming/logic_plugin/test/Project3.logicx/Alternatives/000... 
** Found: TOMO Audiol    [Brwx LISA aumf]	[1]	[+] Plugin Alliance TOMO Audiolabs LISA

Searching ['lisa'] in /Users/me/Documents/Programming/logic_plugin/test/Project5.logicx/Alternatives/000... 
Searching ['lisa'] in /Users/me/Documents/Programming/logic_plugin/test/Project6.logicx/Alternatives/000... 
Searching ['lisa'] in /Users/me/Documents/Programming/logic_plugin/test/Project7.logicx/Alternatives/000... 
Searching ['lisa'] in /Users/me/Documents/Programming/logic_plugin/test/Project7b.logicx/Alternatives/000... 
Searching ['lisa'] in /Users/me/Documents/Programming/logic_plugin/test/Project8.logicx/Alternatives/000... 
Searching ['lisa'] in /Users/me/Documents/Programming/logic_plugin/test/project4.logicx/Alternatives/000... 
** Found: TOMO Audiol    [Brwx LISA aumf]	[1]	[+] Plugin Alliance TOMO Audiolabs LISA

But it just as easily could look more like this:

Logic Project Reporter v0.40

Getting installed plugins... (AUVal version: 1.10.0 - quick scan) Done.

Found ['lisa'] in /Users/me/Documents/Programming/logic_plugin/test/Project2.logicx
** Found: TOMO Audiol    [Brwx LISA aumf]	[1]	[+] Plugin Alliance TOMO Audiolabs LISA

Found ['lisa'] in /Users/me/Documents/Programming/logic_plugin/test/Project3.logicx
** Found: TOMO Audiol    [Brwx LISA aumf]	[1]	[+] Plugin Alliance TOMO Audiolabs LISA

Found ['lisa'] in /Users/me/Documents/Programming/logic_plugin/test/project4.logicx000
** Found: TOMO Audiol    [Brwx LISA aumf]	[1]	[+] Plugin Alliance TOMO Audiolabs LISA

Found 3 matches in 9 projects searched...

Like I say, don't worry for now if you find the terminal output confusing, or not optimally presented, this is a development prototype, and will be polished up a bit before it leaves my door. I'm just sharing progress as I go...

You might possibly even be able to do queries like "Show me which projects across my entire catalog I used the Bettermaker plugin on my Output bus" too...

Edited by des99
Link to comment
Share on other sites

1 hour ago, Danny Wyatt said:

And I doubt that anyone looking at the original name of the plugin doesn't know what they are looking at, whereas the opposite could cause some confusion if you haven't used your "Poposaltina" plugin (custom name) that refers to a Waves plugin called Retro Compressor (made up name) that you used 2 years ago

Either would work - if you always called your Townhouse master bus compressor "Pumpy McPumpface", and you searched for 'townhouse' or 'pumpy', you'd get the same result - it's not an either/or thing. I agree that custom plugin names are probably not important for most people, but for the ones that do, they can use that feature - it won't get in the way of anything else if you don't use them.

Edited by des99
  • Haha 1
Link to comment
Share on other sites

If anyone wants to play with a test version, chuck me a PM. I'd prefer to check it with a small handful of people to see how it runs on their systems etc first and fix any obvious things I've overlooked*, before sharing it more generally...

* It's been pointed out to me that PHP is no longer installed by default on macOS from Monterey onwards, which is annoying. I'll amend the instructions for how to install a version of PHP if you don't already have it, but I can understand if people running Monterey might not want to do that just to run this version.

Edit - Ok, there's a nice easy way to install php by installing MAMP, and using the version it comes with. It can be easily removed by deleting /Applications/MAMP - I've updated the instructions in the read me for those Monterey people who'd like to try it.

Edited by des99
  • Like 1
  • Love 1
Link to comment
Share on other sites

BTW Monterey gives the best scanning process with this tool - you can just ask the system for all installed plugins, and get all the the ids and names for installed plugins quickly without fuss.

Because AUval versions before the one shipped with Monterey don't have that feature, it's less easy to do a quick plugin scan (a Mac app can do it, because you can use macOS system frameworks to iterate over the installed plugins, but that's not easily possible here without building a command line tool to do that).

On older systems then, previously I used the slow AUval scan, and cached the results. However, apart from taking a few minutes the first time, it was unpredictable as it literally loads the initialiser for each plugin, and if you have plugins that crash the scan, the scan will be incomplete.

As an alternative approach, I now scan the components folders directly and pull out the info from the plugin plist files. Most modern plugins have all that data listed in those, which is great, but some don't, or use an old plist format, which doesn't contain the ID's. In these cases, I still pull out as much info as I can, and I will attempt to match plugin references via name matches if I can.

In the reports of plugins used, there is an indicator of the match (whether it was matched by ID's, or by a name match to an installed plugin we don't have the ID for, or whether there was no match as the plugin is uninstalled).

Some sort of plug ID database we can fill in the details would improve things, but I've been testing across all my projects on both old and new systems, and the results have been pretty good, bar the occasional edge case. But again, this is a working prototype, not the final form - but it's still pretty useful already imo... 👍

Edited by des99
  • Like 1
Link to comment
Share on other sites

2 hours ago, des99 said:

Some sort of plug ID database we can fill in the details would improve things

As long as you explain how to gather this info, I will be glad to go through my plugins and share it with you

 

2 hours ago, des99 said:

I now scan the components folders directly and pull out the info from the plugin plist files

I'm assuming, when you say "folders", that you are searching on both system and user folder for the components, right?

 

2 hours ago, des99 said:

In the reports of plugins used, there is an indicator of the match (whether it was matched by ID's, or by a name match to an installed plugin we don't have the ID for, or whether there was no match as the plugin is uninstalled).

Can you clarify what the indicator is for each one of those scenarios?

Link to comment
Share on other sites

55 minutes ago, Danny Wyatt said:

As long as you explain how to gather this info, I will be glad to go through my plugins and share it with you

Thanks - it's not something I've implemented at this stage, but I'll ask if necessary if we go in that direction.

(I'll probably scan Logic's tag database to fill in any missing plugin id's we can't get from the system too.)

55 minutes ago, Danny Wyatt said:

I'm assuming, when you say "folders", that you are searching on both system and user folder for the components, right?

Correct.

55 minutes ago, Danny Wyatt said:

Can you clarify what the indicator is for each one of those scenarios?

This is more for my purposes while developing than super useful end user data, but it's helpful to know when checking various projects how the matches were made - especially if something is not matching as expected (I've one edge case still to fix again).

Currently:

[#] logic plugin match
[+] id match
[ ] name match only (no ids available)
[%] name match but plug/man are good (usually because plugin references have no type available)
 *  not installed

 

Edited by des99
  • Like 1
Link to comment
Share on other sites

10 minutes ago, des99 said:

Currently:

[#] logic plugin match
[+] id match
[ ] name match only (no ids available)
[%] name match but plug/man are good (usually because plugin references have no type available)
 *  not installed

Great. Thanks! This is actually helpful for me as well, because I have hundreds of projects (literally) that I need to go through so knowing which plugins aren't installed is awesome!

  • Like 1
Link to comment
Share on other sites

Just some sample output for others to get an idea of what we're referring to:

Loading file: /Users/me/Documents/Programming/logic_plugin/test_old/takenew.logicx/Alternatives/000/ProjectData... done.

--------------------------------------------------------------
 Plugin Report - /Users/me/Documents/Programming/logic_plugin/test_old/takenew.logicx/Alternatives/000/ProjectData
--------------------------------------------------------------

PPG Wave 3.     [3E00 2901 aumu]	[2]	[+] Waldorf PPG Wave 3.V
Comp FET-76     [Artu FT76 aumf]	[1]	[+] Arturia Comp FET-76
DX7 V           [Artu Dx71 aumu]	[1]	[+] Arturia DX7 V
bx_console      [Brwx bsle aufx]	[1]	[+] Plugin Alliance bx_console SSL 4000 E
Dexed           [DGSB Dexd aumu]	[2]	[+] Digital Suburban Dexed
LexPlate        [Lexi Lpl1 aufx]	[1]	 *  Not Installed
Tape            [SfTb nnfw aufx]	[1]	[+] Softube Tape
TAL U-No-LX     [TOGU uno4 aumu]	[1]	[+] TAL-Togu Audio Line TAL U-No-LX-V2
SSLChannel      [ksWV SCHS aufx]	[1]	 *  Not Installed


Plugins in project: 9 unique plugins, 11 total instances in this project.

 

Link to comment
Share on other sites

4 minutes ago, Danny Wyatt said:

This is actually helpful for me as well, because I have hundreds of projects (literally) that I need to go through so knowing which plugins aren't installed is awesome!

There's a -u option which is "show uninstalled only", which is useful for those cases. You can combine that with a search too - eg "Show me all projects under this folder that have uninstalled SSL plugins".

(More details and examples in the help, -h option).

Edited by des99
Link to comment
Share on other sites

Good that it seems to be working well for people so far. I've run it on a couple of systems, including my old Mojave system, over nearly ten years worth of projects with over a couple of thousand plugins installed, and it's holding up pretty well...

Link to comment
Share on other sites

12 minutes ago, Atlas007 said:

I wonder if Apple would be interested in such a statistic tool or integrate Logic feature?

Well, Apple having intimate knowledge of the file format, could do all kinds of cool, useful stuff like this, and they certainly wouldn't need my hacky coding skills to do it! ;)

In the meantime, we do what we can do, and hack away to perhaps fill some use cases... ☺️

Link to comment
Share on other sites

16 minutes ago, des99 said:

Well, Apple having intimate knowledge of the file format, could do all kinds of cool, useful stuff like this, and they certainly wouldn't need my hacky coding skills to do it! ;)

In the meantime, we do what we can do, and hack away to perhaps fill some use cases... ☺️

Of course! 

Just subtilly hinting at eventual Apple staff reading on this thread…😏

  • Like 1
Link to comment
Share on other sites

Some minor bugfixes and display improvements, including better ordering and optional colouring in your shell make certain plugin types more obvious (eg not installed plugins in red).

(In the screenshot the dark background and light blue default text colour is just how I have my shell set up).

Testers can grab v0.56 from the same download link they previously used.

1910954015_Screenshot2022-06-26at02_17_18.thumb.png.c2fe405e1d9b9a3a9e50a878024aa49b.png

 

Things still left to implement:

  • Optionally writing plugin reports as text files alongside each project
  • Options for how to process file alternates
  • [Possible] Some kind of plugin id database, at least for company IDs/names to improve display when we currently don't have them
  • [Possible] Grouping/Filtering by track type
  • [Possible] Custom plugin name searching
  • KM macro with the various options for the people who'd prefer to run it that way

I have some other ideas and things but that stuff can probably wait for a standalone app version.

 

  • Like 2
  • Love 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...