General discussion

To discuss development of addons / skins / customization of MediaMonkey.

Moderators: jiri, drakinite, Addon Administrators

Morten
Posts: 1092
Joined: Thu Aug 11, 2005 11:31 am
Location: Norway

General discussion

Post by Morten »

Hi guys, long time no see (my fault).

Currently testing the first build of MM5 and I like what I see. What do you guys think?

To Jiri
Are there plans to support Spotify API so that a user can use both local files and streaming?
Best regards,
Morten
jiri
Posts: 5417
Joined: Tue Aug 14, 2001 7:00 pm
Location: Czech Republic
Contact:

Re: General discussion

Post by jiri »

Hi Morten,

nice to have you back here!

We currently experiment with some streaming services support - see Rhapsody tab in an individual Artist view. Currently it's rather just an example of potential functionality, we'll look into it more - and suppose that something interesting might come from our scripters as well... ;-)

Jiri
mcow
Posts: 834
Joined: Sun Sep 21, 2008 9:35 pm
Location: Cupertino, California

Re: General discussion

Post by mcow »

Boy, things have really taken off here. Not.

The extension I wrote for MM4 runs a webserver in a separate process, and uses the COM interface to get access to the Player and its related events. (This is kind of similar to the MonkeyTunes plugin.) I wrote it in Python using the CherryPy webserver package.

So I've been poking around in the MM5 sources, and reading up on V8, and thinking about how I might reimplement for MM5. You guys get points
There are two potential paths:

1) Determine how to get interprocess communication (IPC) with the MM5 image so I can hook in to the player object and its events. My Python code is already written such that the COM interface is compartmentalized; if I can figure out the IPC, I can write a wrapper for the MM5 implementation and shouldn't have to change any of the code in the webserver implementation. I've been looking at the PyV8 project, which is not well maintained and maybe not even usable; it lets me write Python code that runs with V8 but that doesn't necessarily get me access to another process.

I might be able to write my own V8 extension to just implement the IPC.

2) Reimplement the webserver in a V8-compatible form and hook it directly into the MM5 executable, running in the same V8 process. So far, the most likely platform for this is node.js, which has support for creating servers; maybe I can find a decent webserver implementation already (I've seen several trivial node.js webservers). I don't really look forward to reimplementing all the CherryPy features that I make use of, whether in JavaScript or C++ compiled to run with V8.

So, devs: Is there an IPC mechanism? Or if not, will you provide one?
PetrCBR
Posts: 1763
Joined: Tue Mar 07, 2006 5:31 pm
Location: Czech
Contact:

Re: General discussion

Post by PetrCBR »

We've decided to implement some of the COM interfaces (mainly Player, Menu..) in next preview.
How to make a debuglog - step 4b: viewtopic.php?f=30&t=86643
mcow
Posts: 834
Joined: Sun Sep 21, 2008 9:35 pm
Location: Cupertino, California

Re: General discussion

Post by mcow »

Good to know, thanks!
jiri
Posts: 5417
Joined: Tue Aug 14, 2001 7:00 pm
Location: Czech Republic
Contact:

Re: General discussion

Post by jiri »

As for IPC in general, it'd be interesting to hear some requirements/expectations you have. Some basics will be possible through COM (as in MM4), but then there are more options. For example, after establishing the COM connection, arbitrary JS code could be executed, thus giving external applications the same level of flexibility as native MM scripts. However, due to security concerns (any app could execute any code in MM5 process), I'd rather limit the IPC communication to something less generic. Any ideas re. when a more flexible approach might be useful?

Jiri
mcow
Posts: 834
Joined: Sun Sep 21, 2008 9:35 pm
Location: Cupertino, California

Re: General discussion

Post by mcow »

In my extension, nearly every COM feature I use is via SDB.Player.
The exception is the event model, since all the events come through SDB. I do some manipulation of SDB.SongList and the Songs in that list.

I want a clean way to pass a value to my script, so the script could know to shut down.

I would like a way to disable the OnIdle event, if not get rid of it entirely.

I would love to see SDB.Player host its own events instead of proxying through SDB.

And it would be a useful exercise to revisit the sequencing of events during the player control process: which events get sent at exactly what time (PlaybackEnd occurs even if playback is continuing to the next song), which properties cause events (I have to poll for changes to StopAfterCurrent and CurrentSongIndex).

But that's all refinement of the existing model. I'm happy to use COM.
dtsig
Posts: 3588
Joined: Mon Jan 24, 2011 6:34 pm

Re: General discussion

Post by dtsig »

Do you want reports of things that don't work correctly in the new builds or just scripting errors?
Where's the db and ini stored
Reporting Bugs
Where tags are stored

Not affiliated with MediaMonkey ... just a RABID user/lover
DTSig
PetrCBR
Posts: 1763
Joined: Tue Mar 07, 2006 5:31 pm
Location: Czech
Contact:

Re: General discussion

Post by PetrCBR »

Please, write us any suggestions/issues you have.
About COM implementation .. just small portion of COM is implemented. Using COM you can run any JS script:

Code: Select all

Dim SDB : Set SDB = CreateObject("SongsDB5.SDBApplication")
SDB.runJSCode ....
How to make a debuglog - step 4b: viewtopic.php?f=30&t=86643
mcow
Posts: 834
Joined: Sun Sep 21, 2008 9:35 pm
Location: Cupertino, California

Re: General discussion

Post by mcow »

OK, so. I don't know if any of these are theme-specific; I thought I saw some differences in available features as I checked out different themes, but I didn't make any notes.

Overall, MM5 has clearly gotten some work and is close to usable; but until it scrobbles, it'll remain on the shelf.

To start on a positive note: One difference from MM4 that I like is the device options placed in the Tree view. However, I only want to see the actual devices I use. The thumbdrives and the internal storage of my Samsung tablet should not be listed there (they are deselected in the MM4 options). I assume iPod support will come later.

Also, the Browser view is pretty nice, with the Wikipedia information. For Artist, the Related Artists suggestions can be kind of schizoid; not sure where those are coming from. Being able to configure more sources (AllMusic? last.fm?) would be cool, but probably limited by those sites' terms-of-use. Browser view for an Album was sometimes incomplete (missing even the "continue reading at Wikipeda" link, and just a partial track list).



Bugs: right now, the UI has a tree with "Albums" highlighted, and a big empty content pane, and it's completely unresponsive to clicks. I can drag the window, however. Earlier, a few alarming complete UI lockups: even the mouse was not moving, which I haven't seen since the Windows 3.1 days.

OK, I just killed MM5 in Process Explorer. There were two sub-processes, both called "MediaMonkeyEngine" -- is that expected? After killing it, I got a popup with "This application has leaked memory," and one of the Engine processes is still in existence. This second process might be because I had tried opening a SongsDB5 object in Python, which was still open, but when I exited Python, the Engine process persisted.


In the tree: Album Artists and Year nodes under Music are essential, but missing. Composer and Publisher and Genres and Classification and Location: Not useful to me. I assume some customization of the tree's contents will be available out of the box, eventually.

The view of the top level collection node ("Music") shows me the last several artists I listened to and beneath that the last several albums I listened to. Since these will usually align one-to-one, it doesn't seem like a good way to do that. Anyway, I don't find the historical view useful; if I could specify a source (e.g. an autoplaylist) to draw those items from, it could be very useful. Which suggests an AutoArtistList (like an AutoPlayList) as a feature.

The "Art" and "Art+Details" views do not appear to be available. If viewing "Albums", we see Art -- and the horizontal scrolling of that is pretty nice.
But I have playlists that I view as "Art" and "Art+Details" in MM4; they're less useful with the text display options now provided. And what is "Mixed Content" supposed to be useful for? All that space spent to display subnodes is a waste. I guess maybe for a touch interface this might be useful, but the Layout option is not set to Touch.

I do not like the menus relegated to a "continuation" icon in the upper-right corner. I like traditional Windows menus. I realize this is a losing battle.
dtsig
Posts: 3588
Joined: Mon Jan 24, 2011 6:34 pm

Re: General discussion-Rip cd

Post by dtsig »

I pop in a cd and it never shows up in the tree.
I go to My Computer and select the cd drive and Track01-07 appears ... it never gets the track information
I try to rip the drive and fails after the first track. And there is no place to edit the album,artist,track information

The twirly things twirls for about a minute .. the drive gets busy .. then it hangs. There is no way to tell where it is is the process .. should have a ripping window that shows how far it has gotten.

MMW locks up. Task mgr only way to kill.

I got several error boxes .. This application leaked memory .. You are trying to save some covers (???) .. this application frozen

EDITED: I found that this AM it did 3 tracks before it locked up. The first 2 tracks were the same track .. track 7. The third I couldn't play but my guess is it would be track 7 also.
Last edited by dtsig on Sun Feb 21, 2016 12:54 pm, edited 1 time in total.
Where's the db and ini stored
Reporting Bugs
Where tags are stored

Not affiliated with MediaMonkey ... just a RABID user/lover
DTSig
dtsig
Posts: 3588
Joined: Mon Jan 24, 2011 6:34 pm

Re: General discussion-Views

Post by dtsig »

Maybe it just isn't ready yet but how do i get out of art-details and just see the nice table with all my data? I tried unclicking Art Details but there isn't anything else to select
Where's the db and ini stored
Reporting Bugs
Where tags are stored

Not affiliated with MediaMonkey ... just a RABID user/lover
DTSig
dtsig
Posts: 3588
Joined: Mon Jan 24, 2011 6:34 pm

Re: General discussion-Socket error autotag

Post by dtsig »

After importing an album I tried to autotag from the web and it got 'socket error 1102'. Was working find with MMW 4.x
Where's the db and ini stored
Reporting Bugs
Where tags are stored

Not affiliated with MediaMonkey ... just a RABID user/lover
DTSig
dtsig
Posts: 3588
Joined: Mon Jan 24, 2011 6:34 pm

Re: General discussion-video not appearing

Post by dtsig »

mp4 vid not working. Sound is great but just a blank screen.
Where's the db and ini stored
Reporting Bugs
Where tags are stored

Not affiliated with MediaMonkey ... just a RABID user/lover
DTSig
PetrCBR
Posts: 1763
Joined: Tue Mar 07, 2006 5:31 pm
Location: Czech
Contact:

Re: General discussion-video not appearing

Post by PetrCBR »

Thanks for you feedback. Many functionality is not implemented yet. About processes ... one MediaMonkey and two MediaMonkeyEngine are expected.
Art and Art + Details view - it's not implemented, but any 3rd party script can add that views (it's about adding new view handlers and item template) .. it's the power of new scripting.
How to make a debuglog - step 4b: viewtopic.php?f=30&t=86643
Post Reply