Developing a new MM5 plugin

Post a reply

:D :) :( :o :-? 8) :lol: :x :P :oops: :cry: :evil: :roll: :wink:

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review

Expand view Topic review: Developing a new MM5 plugin

Re: Developing a new MM5 plugin

by TIV73 » Fri Jan 25, 2019 5:26 pm

Hey Corneloues,
check out MediaMonkeyNet, a C# wrapper library around the MediaMonkey chromium API which also includes a small sample project. Rainmeter-Mediamonkey is another sample project that implements the library to bridge MM to rainmeter.

Generally speaking, what you want to do is hook into the chromium remote API, from there you can execute generic javascript statements to either do something in MM or retrieve data. Except for a couple for some low-level functionality, most of the MM frontend is running on javascript, so everything is transparent and should be, in theory, extendable.

That said, some of your requirements sound pretty involved, so I'm pretty sure it won't just be a weekend project.

Re: Developing a new MM5 plugin

by Peke » Sat Jan 05, 2019 12:15 am

also MM5 support both BPM and Initial Key filled in Mixed in key (enable tag save in properties if not already). It will make your life bit easier.

Re: Developing a new MM5 plugin

by Lowlander » Fri Jan 04, 2019 12:42 pm

For MM4 you'd want to check out the following for automated Playlist export from MM: ... d+playlist

Re: Developing a new MM5 plugin

by Strongbad536 » Fri Jan 04, 2019 8:50 am

Other (not currently practicing) DJ here, what do you use? My workflow in previous years was to import my tracks into media monkey, sort into their respective folder structure (music/<album artist>/<album>/<track#> - <track name> ... this coincidentally is what Plex likes to play nice with), feed those tracks into MixedInKey for camelot wheel and BPM tagging, then import those files into rekordbox. It would be great to keep some sets of playlists in sync, ie my genre-specific playlists would be great to have in sync between MM and rekordbox, instead of having to sync one way form MM to rekordbox, or to keep play counts from rekordbox updated in MM as well. Would love to hear your thoughts!

Re: Developing a new MM5 plugin

by Corneloues » Wed Jan 02, 2019 6:38 pm

I'll look at that thread - thanks.

I will more than likely need to bridge both MM4 and 5 as I cannot see everyone upgrading and it could take a good while for people to make that move.

Even though I'm testing MM5, personally I'm much more comfortable with the MM4 layout and skin. It will take people a while to get used to it or for alternate skins to appear. So for the plugin to be successful it will need to span both versions.

As for the plugin, I'm a DJ and the software I use has it's own database.

I'm looking to find a way to keep the two in step.

The software is great for DJing, but not for music management.

Putting a polished management front end in place could be very interesting...



Re: Developing a new MM5 plugin

by PetrCBR » Wed Jan 02, 2019 5:44 pm

New MM5 have different main language for plugins (JavaScript for MM5 vs VBS for MM4), but you can use COM object for both (but very limited in MM5). For MM5 you can use Chrome Devtools API to call JavaScript from C# (you can check other discussion here).

What kind of plugin you're going to develop ?

Developing a new MM5 plugin

by Corneloues » Wed Jan 02, 2019 4:08 pm

I'm looking to develop a plugin for MM4/5. My language of choice will be C# and I'm looking for some help/advice to get me started.

First simple question: Is there any sample C# projects on GitHub or any walk throughs to create a minimal plugin that I can use as a starting point?

Next more specific questions/needs:
  • File Events: Can I subscribe to handlers for when tracks are added/edited/deleted?
  • Import Playlists: I need to import playlists that have custom data stored in extended comments (custom #EXT tag) which will need to be viewed against the playlist/but not retained against the track
  • Missing Tracks: I need to import playlists but retain tracks that are not present in the database - so they can be fixed
  • Export Playlists: I need to be able to export playlists to a specific folder (Right-Click, Send to->Plugin Folder)
  • Extended Comments: I need to add extended comments (same custom #EXT tag) to the M3U as I export. But not for all playlists
  • Custom Tree Node: I'd like all this the be managed under a dedicated node in the Media Tree with custom context menu's for the Node and sub-nodes
So looking for some pointers to get me started, and potentially some testers should I be able to get this plugin up and running.

Also keen to know if there are any QA processes, that will keep my plugin in check as I move forward.