Continue macro after user clicks a particular image

That's just... Words fail me. No they don't -- Apple, that's stupid, stupid, stupid! Even worse -- mine is finding a renamed mp3 by its actual filename, but displaying the name using the metadata "Title" so it looks like it wasn't found!

Doing a "proper" Find lets you add the "Filename" tag which also lets you find by actual filename -- but the results are still displayed using the "Title" metadata.

Not even three "stupid"s can cover how stupid that is...

1 Like

Off-topic:

I remember trying out EasyFind about a year ago, hoping it might be able to find Logic sessions that contained a certain plugin.

I couldn't get it to work, but it might be an interesting challenge for anyone who has the faintest clue how to interpret Logic session data. Imagine being able to find all projects containing a plugin that will soon become incompatible, so you can open them and bounce/freeze those tracks. Even if the search took all night, it would be miles quicker than opening every session manually to check which plugins were used.

2 Likes

You have no idea how that would be a blessing for me right now!

Recently I bought a new computer and started the process of migrating stuff from one OS to the other. I now have 2 volumes on my disk, one for the current OS and another for the old one. Thing is, I want my Logic projects to only have my current set of plugins and trying to find the projects that only have those, means I need to open each project one by one, replace them with others for compatibility purposes, etc.

This kind of tool or feature would be super cool!

If you ever find a way to do this, PLEASE let me know! :smiley:

Are you a member of the Logic Pro Help forum as well?
There's a lot of people there who have a deep understanding of some of the more specific stuff when it comes to Logic. Actually I will just post something about this in there just in case

Yeah I've asked there and a few other nerdy places, but nobody seems to know how to decipher the session data. I think it's encrypted somehow, so plugin names won't be explicit in any of the files. If anyone knows how, I'm yet to find them.

Ok here's what I just tested and maybe this could be a first step towards something...? I have no idea.

If you open a project file using the Show Package Contents, then go to Alternatives > 000 (if you only have 1 alternative) > Project Data and open it with the TextEdit, it will look like that crazy text with some weird characters combined with normal text. But for example I created a project with only the ES2 on the first instrument and when I searched for ES2, I got this (look at how you see the instrument track number and the name of the plugin):
Screen Shot 2022-06-20 at 4.18.12 PM

Tried adding more instruments and effects and it kept showing me everything, so I guess it would be possible to somehow have a list of all stock plugins along with a way to scan all available plugins on our system, merge them, and perform a scan on the Project Data file, making it a list. Like "if you find the one of the words on our plugin list, copy and paste it on XYZ text file"

Does this spark any ideas on your end?

1 Like

The heck?!?! I can't believe I never looked in Alternatives!!!

I've written a macro that will work, but there's one hurdle I haven't been able to overcome yet.

The ProjectData file is encoded in a way that KM can't read. If we can fix that, we'll have a working plugin test!

We'll also have to make sure the most recent alternative is used to draw the data from, but I think that's doable. This encoding thing isn't something I've encountered before.

It appears that one has to alter the file encoding for it to be read, but of course that isn't possible with this file. We could copy it as a temp file and change that, but I don't know how to change encoding in the first place. So near yet so far!

Screenshot

I can already imagine how I'd use this to batch-test project files... by adding Finder tags if the plugin is found! :grimacing:

1 Like

I started this topic here:

des99 is also having some ideas. Maybe you two together can get there faster?
I'm just here throwing ideas at you. Apparently neither you or him were thinking about that file, so now that you do, maybe things get a little bit easier to prototype with the knowledge you both have (and I don't)...

What's your username there, by the way?

1 Like

@noisyneil. I mis-spelled it when I joined the KM forum, which is kinda annoying lol.

@Nige_S, sorry for the off-topic meanderings! Got a bit excited!

1 Like

I'm on here too, BTW (des99 over on LPH).

I'm having a hack around the Logic file format again (ProjectData), and I'm having some success, just need to anchor down some data formats to reliably extract the plugins... I've done a bunch of reversing on Logic's various file formats over the years.

The names and AU id's are there and extractable, and can be compared to installed plugins on your system too. Working on hacking up a prototype to get started...

2 Likes

Awesome! My own interest in this is that I'd like to batch-check projects for certain plugins that will be incompatible once I move over to ARM.

Oh :poop:! We are all here and there! haha Logic and KM gang!

Should I create a new topic just for this, because it's now a "bit" off topic?
@noisneil and @beely Or maybe just talk there? Suggestions?

Yes, that's on my list of features as useful (as are a few other things).

Once I can reliably interpret the audio object data (which can be variable due I guess to object serialisation), the rest is all doable (though not with KM - much as I love KM and use it, it's not the right tool to programmatically parse binary files).

So probably best to continue on LPH for now, as a bit offtopic here I think... (although feel free to continue your KM-focused topic here though, of course!)

1 Like

I'm sure you're right. However, there's no harm in starting a new topic, in case someone else on here has has been down this road before... If nobody has, it'll get ignored. No biggie. Just my ten cents.

Not my thread -- not my problem!

Also -- the Logic file is binary. I'm not sure I'd trust anything extracted from that by a text search. But it looks like @beely is on the case, so fingers crossed for you all...

2 Likes

I think it was more because of potential notifications you would get...? Or maybe not... Neil is just a polite human being! :wink:

I think they are all figuring it out... my initial search was on a text file, just because I wanted to fee if there was anything there that could be used (apparently there is), but yeah, someone on the Logic Pro Help forum already stated the same.

Thanks!

1 Like

This actually does what I want it to! :grimacing:

I managed to dump out the contents of the ProjectData file from the latest Alternative and run a regex match to a user-defined term. It finds "Geist" for me, which is what I wanted.

Detect Plugin in Selected Logic Projects.kmmacros (58 KB)

Macro screenshot

1 Like

Update:

I've updated the macro in the post above to batch process. I've wanted to be able to do this for a long time and I'm so happy with it!

CleanShot 2022-06-21 at 03.44.10

2 Likes

Cool, man! :slight_smile:
So as someone pointed out on LPH, if someone names the track "Geist" will it find that as well, or just the plugin? Are you just looking for the word Geist or any other parameter that makes the word be associated with a plugin, not a track name?

Also, would you be able to add multiple words and "sentences" (for 2 or more words)?

And what happens after it shows that it detected in X amount of projects? How do you know which? Does it create a list with that info or something?

I still haven't tested it, because I have to focus on some stuff today and I know that if I keep testing this stuff and being here on the forum, I don't do those things haha. Gotta focus for a little bit :wink:

As the data is 99% garbled and unreadable, I have no idea whether "Geist" is a track name or a plugin loaded. For my use case, it makes no difference, because I know that if I've named a track "Geist", it's because I stuck an instance of Geist on it.

Yeah, by adding a second regex condition.

It uses Finder tags. If it finds "Geist" it tags the project "Plugin: Geist"; if it doesn't, it actively removes that tag (in case I removed Geist since I last ran this macro on that project).

True. If Geist it the track name, but you have a Sampler there, Houston we got a problem!

Can you upload a version of that as well next to the other one?

That's a good technique. I use tags a lot, especially since I started using Hazel (don't know if you know that app?). So your macro, does it create the tag automatically inside Finder's list of tags or uses that tag as long as you have previously created it?