Page 2 of 2

Re: [REQ] Replacing a file in the library (transfering metadata from track to track)

Posted: Thu Mar 10, 2022 2:48 am
by tbessie
drakinite wrote: Wed Mar 09, 2022 7:51 pm
If you're interested, then by all means give it a shot! We've got an introductory document here, which is hopefully approachable enough: https://www.mediamonkey.com/wiki/Gettin ... d_(Addons) and a more complete API reference here: https://www.mediamonkey.com/docs/api/ Personally as a JS developer, I found MM5 relatively easy to examine, since all the UI code is right in the install folder for you to see. I had a lot of fun in the summer of 2020 poking through that code :grin:

I think the majority of MM addons came from individual users who wanted a way to automate things that they found tedious, and then built them into general tools when it turned out that others had the same need.
Thanks for the links, I'll take a look! Like I said, I'm pretty busy as it is, but I could get motivated.

Is the entire plugin architecture in JavaScript and JSON? Or are other languages involved? The 1st document you refer to mentions DLLs - does that imply I can link in compiled Windows code for this or something?

I've done plenty of raw JavaScript programming, but don't love it (I like compiled, strongly-typed languages like Java, which is what I mostly work in, or C, which I used to do most of my work on). JavaScript has gotten more and more powerful, but it still has lots of things I find annoying. At my current job, they're trying to move everything on our project to React eventually; we all took a training in that, but I haven't gotten to use it yet.

- Tim

Re: [REQ] Replacing a file in the library (transfering metadata from track to track)

Posted: Sun Mar 13, 2022 1:12 am
by drakinite
tbessie wrote: Thu Mar 10, 2022 2:48 am Thanks for the links, I'll take a look! Like I said, I'm pretty busy as it is, but I could get motivated.

Is the entire plugin architecture in JavaScript and JSON? Or are other languages involved? The 1st document you refer to mentions DLLs - does that imply I can link in compiled Windows code for this or something?

I've done plenty of raw JavaScript programming, but don't love it (I like compiled, strongly-typed languages like Java, which is what I mostly work in, or C, which I used to do most of my work on). JavaScript has gotten more and more powerful, but it still has lots of things I find annoying. At my current job, they're trying to move everything on our project to React eventually; we all took a training in that, but I haven't gotten to use it yet.

- Tim
For MM5, I'm pretty sure DLLs only apply to audio-related plugins like codecs, DSP effects, and audio outputs (sorry).
It might be possible to make a DLL plugin and use the COM API, but support is relatively limited and you can't control UI elements in COM.

The entire UI of MediaMonkey is now controlled by JavaScript, while the complex data operations like the database and file tagging are handled with native code. The advantage of this is that addons can control and override anything in the UI with JS: https://www.mediamonkey.com/wiki/Gettin ... dons)#Code
If you prefer strongly typed languages, you might be able to write addons in TypeScript (a strongly typed superset of JS) and compile it into JS. haven't used TypeScript myself, though, so I wouldn't know exactly how to do that. I've been meaning to write .d.ts "header" files for MM objects & elements, though, which may help with the development process.

The only element of JSON that's used in addon development is the single info.json file, which contains metadata for the addon. (And in the case of skins, it lets you provide user-configurable options). I hope all the JS doesn't scare you off - if you're still interested and need help with anything, feel free to send me a PM. :slight_smile:

Re: [REQ] Replacing a file in the library (transfering metadata from track to track)

Posted: Mon Mar 14, 2022 1:42 am
by tbessie
Thanks again for all the info! I'll definitely ping you if I need some help!

- Tim

Re: [REQ] Replacing a file in the library (transfering metadata from track to track)

Posted: Tue May 17, 2022 3:42 am
by ed.j
Good discussion in here but it looks like none of the suggestions (other than go back to MM4!) are really much easier than doing it the manual way. I'm going through more upgrades and it is a pain once again!
drakinite wrote: Wed Mar 09, 2022 11:09 am I'm starting work on a "metadata manipulator" addon which brings that capability to the new MediaMonkey, but it's still in its early stages.
Amazing! Thank you!
Friedrich wrote: Sun Dec 12, 2021 6:28 am
drakinite wrote: Sat Dec 11, 2021 11:54 pm I believe that copying & pasting tags is a feature of Advanced Duplicate Find & Fix
Yes, it is. It provides two entries in the context menu for a selected track: "Copy metadata" and "Paste metadata". Hitting "Paste metadata" on a single or multiple selected tracks opens a options window, where the desired tags to be pasted can be chosen.
Very useful for retagging single or multiple tracks like whole albums (excluding title and track number in that case..) or whatever.
I think that is exactly the function the thread opener is asking for.
Very desirable indeed.
The thread title is a bit of a misnomer.
No, the thread title is not a misnomer. ADF&F is pretty much what I'm looking for but it's not available for MM5.

Re: [REQ] Replacing a file in the library (transfering metadata from track to track)

Posted: Wed Jul 13, 2022 1:50 pm
by boober
drakinite wrote: Wed Mar 09, 2022 11:09 amWithout word from the author on whether he's going to bring ADF&F to MM5, I'm starting work on a "metadata manipulator" addon which brings that capability to the new MediaMonkey, but it's still in its early stages.
Yes, please, this!

ADFF is a big part of what made MM the right management library for me. A metadata manipulator alone would bring back most of the functionality I need for many of the reasons others have named in this thread.