The Problem
Hi. I would like to address the problem of having multiple versions of the same song and the most sensible way to manage each version. As you are all aware, there are quite legitimate instances where you would want multiple versions of a song. There may be alternate recordings (live, demoes, etc.) or you may want to keep different copies of the same recording (lossless for home, lossy for portable). So I think finding a solution that intelligently manages these multiples versions (and hence keeps our precious libraries clean) is quite important.
These are the current solutions that I am aware of. They tend to solve one problem but not all:
a) Keep one copy of the song, and use 'virtual tracks' in each album that point to the central file.
- Great for compilations, but does not help for significant variations (covers, live recordings) and may not be compatible with other players/devices.
b) Keep lossless files and convert them down when adding to a portable devices
- Gives you the flexibility of quality and portability, but can be time consuming
c) Keep all duplicates and just ignore them
- This is best for library integrity, but can lead to songs playing multiple times if you are shuffling or listening to all tracks by an artist.
The Solution
I believe that a far better solution would be giving you the ability to define which tracks are the same song. Then just as you can expand an album to view its tracks, you could expand a song to view its versions. Let me explain with an example:
Let's say that I have multiple versions of Arcade Fire's "No Cars Go". I have copies off the following albums:
a) Arcade Fire (EP) [MP3 192kbps]
b) Neon Bible (Album) [MP3 192kbps]
c) Neon Bible (Album)[FLAC]
d) Live in Vancouver [MP3 192kbps]
e) Cool Songs (Compilation) [MP3 192kbps]
When I view the band's tracks, I would see only one copy of No Cars Go. However, under the album field, it would say "Arcade Fire, Neon Bible, Live in Vancouver, Cool Songs" and under Format, it would say "FLAC, MP3". You get the point. I could then expand the song and it would split it up into each individual version.
All these versions are linked, but you need to choose one version as the primary version. In this case, I would choose the FLAC album version. So when I wanted to listen to No Cars Go or add it to a playlist, this version would be used (unless I explicitly asked to use a different one).
The key to this is that it only hides tracks when they have the same value in the current sort field. So in the above example, I was sorting by track name, and seeing as they were all the same, they were hidden. But if I decided to sort by album, I would see 4 copies of No Cars Go, because I have 4 different albums that contain it. The only version that would be hidden is the MP3 album version, because I have a higher quality copy of it.
The beauty of this is that album integrity is kept in tact. If I chose to listen to a band by album, I will hear each track in its correct position. But if I'm listening to them in random order, I will only hear each song once.
In some cases however, you may feel that two versions are significantly different. If this is the case, don't link them! All you need to do is ask "Would I like to hear both versions in a mix?" If the answer is no, that's when you link them. If you wanted, you could link all your studio versions and all your live versions, so that only one of each would come up in a mix.
Implementation
This functionality could be achieved quite easily. When you link two songs, the hash (or a unique identifier) of the primary version, is placed in one of the custom fields of the secondary version. Then, when Media Monkey is outputting a list of tracks, it would check this custom field to see if it is a linked track. If it is, it will go to the primary version and compare the values in the sort field. If they are both in the list and are the same, they will be merged.
The other functionality that would need implementing is a way of choosing which version is played or added to a playlist. There would be manual selection, where you right click on a song/album and choose which version to use. You should also be able to set rules for playlists that dynamically determine which song to use. So for example, if you are creating a playlist for your mp3 player and want to fit a lot of songs on, you may give it the following settings: "Format = MP3, Quality = LOWEST between 160kbps and 256kbps". So in this case, if I added Neon Bible to the playlist, it would add the MP3 version.
Conclusion
This concept is not new. I found it mentioned in number of places and in much detail
here. However, as far as I am aware, it has never been implemented. This concept could be expanded further, but the simple functionality which I outlined above is the most important and would benefit many Media Monkey users.
Let's get behind this and get it added to the official build.
Media Monkey will move one step closer to perfection.
Cheers