MediaMonkey using Hardlinks, Junctions and Symbolic Links

Post a reply

Visual Confirmation

To prevent automated access and spam, you are required to confirm that you are human. Please place a check mark next to all images of monkeys or apes. If you cannot see any images, please contact the Board Administrator.

Smilies
: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: MediaMonkey using Hardlinks, Junctions and Symbolic Links

Re: MediaMonkey using Hardlinks, Junctions and Symbolic Links

Post by ZvezdanD » Tue May 05, 2009 5:34 pm

You could try my new Track Redirection script. It could be used for the "one song-many albums" situations and have an option to update playstats of one master track whenever you play some track which refers to it. Of course, I am using .asx files as redirection files that I suggested before.

Re: MediaMonkey using Hardlinks, Junctions and Symbolic Links

Post by ZvezdanD » Fri Apr 17, 2009 5:41 pm

I think that there are two most important requirements for any solution about "one song-many albums" problem:
1. Files which contain links to original files should have their own metadata (i.e. audio tags), different than metadata from original files.
2. Files which contain links should be playable in as many software and hardware players as it is possible. There are many users which use MM only as cataloger/tagger, but not for reproduction. There are many users who want to reproduce their audio files not only on PC, but also on portable devices...

As I already explained, my suggestion with ASX files has satisfied both requirements.

Re: MediaMonkey using Hardlinks, Junctions and Symbolic Links

Post by nu2u » Fri Apr 17, 2009 4:07 pm

Like everyone in this thread i believe there should be a way to remove duplicate files at the file system level but maintain virtual albums with pointers to the real files. As a virtualization guy here is my suggestion;

So is everyone familiar with virtual machines and snapshots? Well here is a quick over view...

I have a VM thats 10GB i take a snapshot and it creates a delta file(couple of KB). All the changes i make form that point on is stored in the new delta file. I can GO TO the original file (point in time) and take another snap shot and it will create another delta file and track the changes in it and so forth.

Now with this basic premise we can apply it to our multiple file situation as follows

We have the real file(song) that sits in a folder as part of an album. In the database we create a unique id for this file. The UID has the album, year, artist and so forth.

Now for another album with the same song we create another unique id in the database but point it to a delta (snapshot of the original file and we we can write the changes such as album, year and so forth to the delta). So when I browse my Music collection I see "real" files that are based off one master that has many snapshots. Every time we need a new "copy" of the original for a new album, we repeat the process over again. The deltas will be extremely small as they only contain the changes we made from the master.

What do you guys think about that?

Re: MediaMonkey using Hardlinks, Junctions and Symbolic Links

Post by ZvezdanD » Fri Apr 17, 2009 9:08 am

Yes, you are right, and I could use DOC format to write some document instead of RTF, but this has nothing with the MediaMonkey and mentioned problem. Yes, you can repeat same argument and I could also repeat same thing - your statement is wrong, it is not true that ASX format cannot be used to store all possible metadata related to MediaMonkey and music playback. We don't need a solution which could cover all Web applications, paint software, digital photography, CAD, 3D and drawing... We just need a way to resolve "one song-many albums" problem, in such way that we can reproduce such files in as many players as it is possible.

Listen my friend, I really have nothing against your format. I don't know, maybe it is much better than ASX. I am not on MS side anyway. But, currently ASX format is the most supported playlist format in software and hardware players. M3u and pls are even more supported playlist formats, but they cannot handle metadata and audio tags. So, in my opinion this is a very good reason, enough to state that ASX is a right choice.

Re: MediaMonkey using Hardlinks, Junctions and Symbolic Links

Post by DazB » Fri Apr 17, 2009 7:13 am

Hi,

At this point in time my format is purely hypothetical and I have stated previously I haven't done any testing or reading up about ASX. If ASX has the capability to do everything then there would be no need for any other playlist format such as XSPF. I can only repeat the same so many times in wanting an efficient and extensible file format specifically for metadata storage, file association, etc., i.e. it needs to be more than just a playlist. Just because ASX could provide a solution doesn't necessarily make it the right choice; I could create a whole web site made of text files, but I use PHP/HTML because it gives me features that I desire.

As you stated previously this is a pointless thread anyway as it is highly unlikely to happen.

Daz

Re: MediaMonkey using Hardlinks, Junctions and Symbolic Links

Post by ZvezdanD » Thu Apr 16, 2009 6:45 pm

Sorry, but I really don't understand where is a problem. Nothing you said is against ASX format. All you did with your format could be done with ASX. I told you already, there are plenty tags which could be used in same way as your are using your tags in your custom XML file. What is a difference between your tag which has mentioned link to the file and <MOREINFO> tag that I mentioned? If you don't like <MOREINFO> tag you could use <PARAM>, WMP will ignore such tags. Did you tried it with ASX when you are so sure? Anyway, why you mentioning some application which could not reproduce your custom format? You didn't give me an answer which application support your format. All you are doing is to argue against ASX but you didn't give me a single good answer to my questions.

Do you know what is all this thread about? We are talking about MediaMonkey and its lack of support for "one song-many albums" problem. All you are talking has nothing with this theme, you are talking about your custom format used for some Web application. I told you, I don't care for your Web application and nobody is interested for it. We need a solution for media playback of "one song-many albums" with local files, not from Internet. What kind of transcoding you want in such situation? If I have Flac file linked inside of ASX file, MM should reproduce such file without any transcoding. If I put some audio format in ASX which MM doesn't understand, then it could not reproduce such file even if you put it in your custom file format. You are giving me all the time some arguments against ASX which have nothing with MM and mentioned problem.

Re: MediaMonkey using Hardlinks, Junctions and Symbolic Links

Post by DazB » Thu Apr 16, 2009 5:46 pm

Hi,

We are at cross-purposes as I would like a means to provide a 'dummy' file for primarily tagging and association; I don't particularly care that MM won't play such as a video, but I would like to associate the file with the relevant artist. Whilst there are objections to MM supporting such as video a (potentially poor) solution could be made possible by being able to specify an external application via the file.

WMP, etc. need to know what to do with any given attribute - not ignoring unknown ones presents problems.

My ultimate solution wouldn't fail as I would transcode the file on-the-fly;

http://localhost/media/?id=1&format=m4a


Daz

Re: MediaMonkey using Hardlinks, Junctions and Symbolic Links

Post by ZvezdanD » Thu Apr 16, 2009 8:54 am

As I already said, even if it is true that there is a limited number of applications which support ASX as you state (almost all important Windows players, CorePlayer for mobile phones...), that number is still much larger than the number of applications which supports your format (0 - zero). So this is senseless argument against ASX.

If some application cannot play linked file, this is a problem of an application, not of ASX format. Yes, WMP could not play OGG file linked by ASX when I tested, but it was because I don't have installed Vorbis DirectShow filter, not because of the format limitation. Your custom format cannot be played with any application whatever file type you link within it. Again, this is senseless argument against ASX.

Your custom XML format cannot achieve more things than ASX as you state - they are both XML based with same advantages and limitations. Again, ...

Using of ASX format for media playback is not "reusing some existing format". This is official standard for such thing, and mentioned <PARAM> is official tag for adding information about media file (MS description: "This element defines a custom parameter associated with a clip or show. This element allows users to place additional information about each clip inside the ENTRY element that contains it."). I suppose we are talking here about media playback, not about some PDF reader, Web application or whatever else. Anyway, with ASX you could use <MOREINFO> tag to link to any file or Web page you want.

Please could you explain what you mean by "if WMP (or other application) is going object to having unknown attributes then it is a no-go". Sorry , but my English knowledge is limited. If you are trying to say that WMP cannot read and play ASX files with additional parameters, you are wrong. You could put in ASX files same "attributes" as you already doing with your custom XML and that file would be still playable in all applications which support ASX format.

Re: MediaMonkey using Hardlinks, Junctions and Symbolic Links

Post by DazB » Thu Apr 16, 2009 6:01 am

Hi,

I agree that the discussion is probably pointless, both due to the lack of interest by the devs and the fact that disk space is increasingly cheaper than processing power.

As just a means to provide a redirect for playing then your suggestion of ASX is the right choice, but not only as the support by other applications is limited (and falls down where the application cannot play the format of the target file), I would rather have something that can achieve many things. I haven't done any testing or reading, but if WMP (or other application) is going object to having unknown attributes then it is a no-go. My reservations about reusing some existing format stem from seeing the madness of some sites doing the same thing; one example being putting an entire book catalogue into a >35Mb RSS feed, the bulk being added to by numerous formats for dates - a total overhead of more than 60%.

I do already store metadata that MM can't handle in XML files - MusicIP PUIDs and MusicBrainz DiscIds, but as I have the flexibility and power of PHP to generate and manipulate the data and MM, the underlying format is irrelevant.

The disk space taken up by duplicates isn't an issue at the moment as I haven't made great inroads into ripping my CD collection, but as my primary format is FLAC it may be worth investigating the possibilities either within the limitations of MM, a custom (localhost) server based solution or even a mix of the two; I have a much greater chance of success by using a PHP script to transcode/transform the files and metadata.

Edit:
As I use MM as a means to organise/list my media collection if there was a file format as suggested I could link any format file, such as a PDF file - I don't necessarily want/need/expect MM to do anything with it except read/modify the metadata.

Daz

Re: MediaMonkey using Hardlinks, Junctions and Symbolic Links

Post by ZvezdanD » Wed Apr 15, 2009 5:43 pm

You didn't answer to my question. I repeat for the third time - what is a benefit using some new proprietary format, than using existing format which supports many software and hardware players?

I don't know what is this Web panel you are talking about, and I don't care. Many users would not care. Did you try ASX files with mentioned software when you stating that they cannot play them? Of course WMP could reproduce ASX files since it is MS invention, I reported about it, please read my previous posts. I also reported that I tried VLC and it could reproduce such files as well. I didn't test iTunes but I bet that it could. Anyway, if there is only one software or hardware player which supports ASX, this would be still much more that the number of players which could play your custom format. Could software that you mentioned play your custom format?

Why you think that reading tags from mp3 files is faster than parsing of parameters from ASX files? In your first post you proposed XML format for such thing, not some database/binary format. Why is your custom XML format faster for parsing than ASX which is also XML based?

Maybe for you the compatibility isn't the primary consideration, but for many other users it is. Why inventing some format which requires some kind of transformation when you could use a format which could be played directly without any transformation?

Anyway, I think this discussion is pointless and really don't know why you and me are talking about all of this. Knowing MM developers, I am pretty sure that they would not implement any suggestion for this problem. They simply don't care about "one song-many albums" problem, jiri told me that in PM some time ago.

Re: MediaMonkey using Hardlinks, Junctions and Symbolic Links

Post by DazB » Wed Apr 15, 2009 3:20 pm

Hi,

So I couldn't use Quicktime, WMP, VLC or Flash, etc. to play a file in a Web panel?

I know ASX can contain any number of parameter tags, but I would rather have something tailored specifically for the required use. Although the individual files shouldn't be large, you have to loop through all the parameters looking for the right attribute and value - with potentially thousands of files it makes a difference. I could create a 'ghost' set of files, get MM to tag them and then merely copy the metadata files to the machine on which the real files exist; therefore negating transferring gigabytes of music data. Also the files could be used to backup the metadata.

Compatibility with other software isn't the primary consideration, but as it is XML you could simply transform it. The potential for a specific format would even allow such as metadata sharing - a carrot for the devs to dangle to registered users?

ASX and XSPF are primarily playlist formats, maybe such as XMP is worth considering.

Daz

Re: MediaMonkey using Hardlinks, Junctions and Symbolic Links

Post by ZvezdanD » Wed Apr 15, 2009 7:09 am

DazB wrote:It needs to be more than a mere redirect. A specific file format would allow for storage of the (differing) metadata outside the database - MM could load the data for/from the linked file(s) and then parse the XML.

ASX and XPFS files are not mere redirect files. They already could contain all existing metadata which are already stored in MM database and/or audio file tags. With ASX files you could have as many <PARAM NAME > tags as you want. Just take a look on my example from the previous post.

How would MM know which was a regular playlist and which was a redirect when scanning directories?

ASX and XPFS files are not playlists. They could be used as playlists and they could link to more that one track, but they are mainly intended for redirection. MM currently doesn't support those files. I think if they add support for them, they could decide how to use and manipulate with them. But, not matter how they decide to use them, no matter what they store inside of such files, those files still would be playable in all players which support those formats.

You could use scripting to store data (and/or media formats) that MM doesn't natively support.

No, you can't. Especially you cannot use scripting to support some media format which MM doesn't natively support. You need to write an input plug-in for such thing.

Even if MM cannot play the file, you could have a linked file it could (with (XML) attributes to tell MM not to add the linked file to the DB). MM would write to the XML file and you could use such as mp3tag to use the data to write it to the real file.

I really don't understand what you want to say. Could you be more specific?

Anyway, could you tell me at least one good reason why it is better to use some new XML based file format instead of ASX? I gave you one very important reason why it is better to use ASX files - there are numerous hardware and software players which already could play such files, i.e. they could play audio files that are linked within ASX files. We have such situation with ASX files at least, but I don't know any player that supports XPFS format. I remember there was some XPFS plugin for Winamp but I cannot find it anymore.

Re: MediaMonkey using Hardlinks, Junctions and Symbolic Links

Post by DazB » Wed Apr 15, 2009 3:32 am

Hi,

ZvezdanD wrote:...I don't understand. Why inventing some new XML format when we already have two formats for redirection based on XML (ASX and XPFS)?


  1. It needs to be more than a mere redirect. A specific file format would allow for storage of the (differing) metadata outside the database - MM could load the data for/from the linked file(s) and then parse the XML.
  2. How would MM know which was a regular playlist and which was a redirect when scanning directories?
  3. You could use scripting to store data (and/or media formats) that MM doesn't natively support.
  4. Even if MM cannot play the file, you could have a linked file it could (with (XML) attributes to tell MM not to add the linked file to the DB). MM would write to the XML file and you could use such as mp3tag to use the data to write it to the real file.

Daz

Re: MediaMonkey using Hardlinks, Junctions and Symbolic Links

Post by ZvezdanD » Wed Apr 15, 2009 2:31 am

Peke wrote:Can someone make me an ASX example of those?

You already have an ASX example, but you didn't want to follow a link which I gave you.

Here is one more detailed example. Let say that I have one official album (The Beatles - Sgt. Pepper's Lonely Hearts Club Band):
d:\Music\Rock\The Beatles\Sgt. Pepper's Lonely Hearts Club Band\01 - Sgt. Pepper's Lonely Hearts Club Band.mp3
d:\Music\Rock\The Beatles\Sgt. Pepper's Lonely Hearts Club Band\02 - With a Little Help from My Friends
d:\Music\Rock\The Beatles\Sgt. Pepper's Lonely Hearts Club Band\03 - Lucy in the Sky With Diamonds.mp3
d:\Music\Rock\The Beatles\Sgt. Pepper's Lonely Hearts Club Band\04 - Getting Better.mp3
d:\Music\Rock\The Beatles\Sgt. Pepper's Lonely Hearts Club Band\05 - Fixing a Hole.mp3
d:\Music\Rock\The Beatles\Sgt. Pepper's Lonely Hearts Club Band\06 - She's Leaving Home.mp3
d:\Music\Rock\The Beatles\Sgt. Pepper's Lonely Hearts Club Band\07 - Being for the Benefit of Mr. Kite.mp3
d:\Music\Rock\The Beatles\Sgt. Pepper's Lonely Hearts Club Band\08 - Within You, Without You.mp3
d:\Music\Rock\The Beatles\Sgt. Pepper's Lonely Hearts Club Band\09 - When I'm Sixty-Four.mp3
d:\Music\Rock\The Beatles\Sgt. Pepper's Lonely Hearts Club Band\10 - Lovely Rita.mp3
d:\Music\Rock\The Beatles\Sgt. Pepper's Lonely Hearts Club Band\11 - Good Morning, Good Morning.mp3
d:\Music\Rock\The Beatles\Sgt. Pepper's Lonely Hearts Club Band\12 - Sgt. Pepper's Lonely Hearts Club Band (Reprise).mp3
d:\Music\Rock\The Beatles\Sgt. Pepper's Lonely Hearts Club Band\13 - A Day in the Life.mp3

Now, let say that I have one compilation (The Beatles - 1967-1970, commonly called the "Blue Album"):
d:\Music\Rock\The Beatles\1967-1970\01 - Strawberry Fields Forever.mp3
d:\Music\Rock\The Beatles\1967-1970\02 - Penny Lane.mp3
d:\Music\Rock\The Beatles\1967-1970\03 - Sgt. Pepper's Lonely Hearts Club Band.mp3
d:\Music\Rock\The Beatles\1967-1970\04 - With a Little Help from My Friends.mp3
d:\Music\Rock\The Beatles\1967-1970\05 - Lucy in the Sky With Diamonds.mp3
d:\Music\Rock\The Beatles\1967-1970\06 - A Day in the Life.mp3
d:\Music\Rock\The Beatles\1967-1970\07 - All You Need Is Love.mp3
d:\Music\Rock\The Beatles\1967-1970\08 - I Am the Walrus.mp3
d:\Music\Rock\The Beatles\1967-1970\09 - Hello, Goodbye.mp3
d:\Music\Rock\The Beatles\1967-1970\10 - The Fool on the Hill.mp3
... and so on. I don't need to specify all tracks.

So, instead of the following files:
d:\Music\Rock\The Beatles\1967-1970\03 - Sgt. Pepper's Lonely Hearts Club Band.mp3
d:\Music\Rock\The Beatles\1967-1970\04 - With a Little Help from My Friends.mp3
d:\Music\Rock\The Beatles\1967-1970\05 - Lucy in the Sky With Diamonds.mp3
d:\Music\Rock\The Beatles\1967-1970\06 - A Day in the Life.mp3

I could create 4 small ASX files which have links to corresponding mp3 files in d:\Music\Rock\The Beatles\Sgt. Pepper's Lonely Hearts Club Band\ folder:
d:\Music\Rock\The Beatles\1967-1970\03 - Sgt. Pepper's Lonely Hearts Club Band.asx
d:\Music\Rock\The Beatles\1967-1970\04 - With a Little Help from My Friends.asx
d:\Music\Rock\The Beatles\1967-1970\05 - Lucy in the Sky With Diamonds.asx
d:\Music\Rock\The Beatles\1967-1970\06 - A Day in the Life.asx

Here is an example of one ASX file:
Code: Select all
<ASX version = "3.0">
  <TITLE>Simple ASX Demo</TITLE>
  <ENTRY>
    <TITLE>A Day in the Life</TITLE>
    <REF HREF = "d:\Music\Rock\The Beatles\Sgt. Pepper's Lonely Hearts Club Band\13 - A Day in the Life.mp3" />
    <PARAM NAME="Track number" VALUE="6" />
    <PARAM NAME="Album" VALUE="1967-1970" />
    <PARAM NAME="Date" VALUE="1973" />
    <PARAM NAME="..." VALUE="..." />
    <PARAM NAME="..." VALUE="..." />
    <PARAM NAME="..." VALUE="..." />
  </ENTRY>
</ASX>


Note values for the Track number, the Album and the Date - those are for the compilation, not for the original album.

You can take a look on ASX reference here: http://msdn2.microsoft.com/en-us/library/ms910265.aspx

Re: MediaMonkey using Hardlinks, Junctions and Symbolic Links

Post by ZvezdanD » Wed Apr 15, 2009 2:00 am

DazB wrote:Instead of using an existing playlist format (and potentially creating problems down the line) why not simply introduce a specific (XML) format?

I don't understand. Why inventing some new XML format when we already have two formats for redirection based on XML (ASX and XPFS)?

Top