Playing only one copy of a song

Post a reply

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

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

Topic review
   

Expand view Topic review: Playing only one copy of a song

Re: Playing only one copy of a song

by jared68 » Sat Dec 18, 2010 11:14 am

This thread has been informative for me as I have a similar situation that I am working through. It also shined a light more brightly on Magic nodes. I had it installed previously but did not utilize it fully. I think I should have paid closer attention, but no use crying over spilled milk.

I just wanted to ask is the accompanying PDF the correct edition for version 4.04 Magic node. I downloaded edition 1.7, along with following the jump and getting the Magic Node script; from the following thread:

http://www.mediamonkey.com/forum/viewtopic.php?t=19168


Thank You very much for you work :)

EDIT: I found the answer in a response from you to another user in that thread.

Re: Playing only one copy of a song

by rrfpacker » Fri Dec 17, 2010 1:01 pm

ZvezdanD,

Well you got me on that one. My number one New Year's resolution is to study MN and understand it. Right now I modify the criteria of already written masks to suit my needs, but I have other ideas I want to implement.

Thank you for all your hard work...maybe it's not hard for you :wink: and now I do understand what the before mentioned masks mean. Looks like I may have to start thinking outside the box.

Thanks again.

Re: Playing only one copy of a song

by ZvezdanD » Fri Dec 17, 2010 4:20 am

rrfpacker wrote:It seems some knowledge of SQL is needed and I just haven't had the time.
And yet you had the time to manually tag all those tracks ;) You don't need to know SQL, all you need is to ask for help and I could write mask for you.

By the way, the suggested masks could be used not only for editing tags, but also to get tracks useful for playlists. For example, the predefined "Tracks without duplicates and only one track which has duplicates" mask returns all tracks from the Library without duplicated ones, which is useful for playback when you don't want to listen the same tracks two or more times. If its purpose is still not clear, here is some example. Let say that I have 3 tracks in the Library:
ID = 1, Artist = A1, Title = T1
ID = 2, Artist = A1, Title = T1
ID = 3, Artist = A1, Title = T2

With the mentioned mask I could get the list with tracks: ID = 1 and ID = 3. The main difference between that predefined mask and the new ones which I have posted is in that if some track has duplicates the predefined mask returns the first track added to the Library, and the new masks returns the one with the maximal bitrate/rating. For the same example:
ID = 1, Artist = A1, Title = T1, Bitrate = 128
ID = 2, Artist = A1, Title = T1, Bitrate = 192
ID = 3, Artist = A1, Title = T2
and with the mask "Duplicates with maximal bitrate and tracks without duplicates" I would get the list with ID = 2 and ID = 3.

Magic Nodes from v3.x has a possibility to create static playlists instead of the regular nodes, if you add |Child of:Playlists|Position:Child to the global node of mask, i.e. if you choose Position: Child of, Playlists from the GUI. Such static playlist could be used in some auto-playlist if you specify Playlist is playlist_name condition. Keep in mind that Magic Nodes v4.x creates sub-nodes of playlist as well when you have mask with sub-nodes - if this is not what you want, you need to remove sub-nodes from such mask.

Re: Playing only one copy of a song

by rrfpacker » Thu Dec 16, 2010 12:50 pm

I am a complete ignoramus concerning Magic Nodes, just haven't had the time to learn how it works. It seems some knowledge of SQL is needed and I just haven't had the time. I know MN is very powerful in the hands of someone who knows what they are doing.

That said, I will look at the masks so graciously provided and see what they do. I won't be changing my library tags as it is now set up, but I'm sure MN would have saved me hours and hours of tagging.

To be honest, sometimes the masks don't make sense...like the ones you suggested "Tracks without duplicates and only one track which has duplicates" and "Tracks with same Title from same Artists with different Ratings". I thought these were more for finding tags that need editing as opposed to making the tracks useful for playlists.

Thank you for your time and effort to help out rookies. I have so much to learn.

Re: Playing only one copy of a song

by ZvezdanD » Thu Dec 16, 2010 12:09 pm

rrfpacker wrote:I still think the only way is to manually tag your tracks with something and then create auto-playlists or filters to get what you want. Yes, it does require manually tagging each album/track.
You don't need to manually tag each track. As I said in this thread, there are predefined masks for Magic Nodes that could be used like "Tracks without duplicates and only one track which has duplicates" and "Tracks with same Title from same Artists with different Ratings". If that is not enough, here are some new masks:

Code: Select all

<Group|name:Tracks...|Show tracks:No>\Duplicates with maximal bitrate|Icon:Top level|Filter:Songs.ID IN (SELECT ID FROM Songs WHERE SongTitle || '@' || Artist || '@' || Bitrate COLLATE IUnicode IN (SELECT SongTitle || '@' || Artist || '@' || Max(Bitrate) COLLATE IUnicode FROM Songs GROUP BY Artist, SongTitle COLLATE IUnicode HAVING Count(*) > 1) GROUP BY Artist, SongTitle COLLATE IUnicode)\<Title|Trim:1>\<Title with artist|Statistic:Count(All)>

Code: Select all

<Group|name:Tracks...|Show tracks:No>\Duplicates with maximal bitrate and tracks without duplicates|Icon:Top level|Filter:(Songs.ID IN (SELECT ID FROM Songs WHERE SongTitle || '@' || Artist || '@' || Bitrate COLLATE IUnicode IN (SELECT SongTitle || '@' || Artist || '@' || Max(Bitrate) COLLATE IUnicode FROM Songs GROUP BY Artist, SongTitle COLLATE IUnicode HAVING Count(*) > 1) GROUP BY Artist, SongTitle COLLATE IUnicode) OR Songs.SongTitle || '@' || Songs.Artist COLLATE IUnicode NOT IN (SELECT SongTitle || '@' || Artist COLLATE IUnicode AS GroupField FROM Songs GROUP BY GroupField HAVING Count(*) > 1))\<Title|Trim:1>\<Title with artist|Statistic:Count(All)>

Code: Select all

<Group|name:Tracks...|Show tracks:No>\All duplicates except ones with maximal bitrate|Icon:Top level|Filter:(Songs.ID NOT IN (SELECT ID FROM Songs WHERE SongTitle || '@' || Artist || '@' || Bitrate COLLATE IUnicode IN (SELECT SongTitle || '@' || Artist || '@' || Max(Bitrate) COLLATE IUnicode FROM Songs GROUP BY Artist, SongTitle COLLATE IUnicode HAVING Count(*) > 1) GROUP BY Artist, SongTitle COLLATE IUnicode) AND Songs.SongTitle || '@' || Songs.Artist COLLATE IUnicode IN (SELECT SongTitle || '@' || Artist COLLATE IUnicode AS GroupField FROM Songs GROUP BY GroupField HAVING Count(*) > 1))\<Title|Trim:1>\<Title with artist|Statistic:Count(All)>

Code: Select all

<Group|name:Tracks...|Show tracks:No>\Duplicates with maximal rating|Icon:Top level|Filter:Songs.ID IN (SELECT ID FROM Songs WHERE SongTitle || '@' || Artist || '@' || Rating COLLATE IUnicode IN (SELECT SongTitle || '@' || Artist || '@' || Max(Rating) COLLATE IUnicode FROM Songs GROUP BY Artist, SongTitle COLLATE IUnicode HAVING Count(*) > 1) GROUP BY Artist, SongTitle COLLATE IUnicode)\<Title|Trim:1>\<Title with artist|Statistic:Count(All)>

Code: Select all

<Group|name:Tracks...|Show tracks:No>\Duplicates with maximal rating and tracks without duplicates|Icon:Top level|Filter:(Songs.ID IN (SELECT ID FROM Songs WHERE SongTitle || '@' || Artist || '@' || Rating COLLATE IUnicode IN (SELECT SongTitle || '@' || Artist || '@' || Max(Rating) COLLATE IUnicode FROM Songs GROUP BY Artist, SongTitle COLLATE IUnicode HAVING Count(*) > 1) GROUP BY Artist, SongTitle COLLATE IUnicode) OR Songs.SongTitle || '@' || Songs.Artist COLLATE IUnicode NOT IN (SELECT SongTitle || '@' || Artist COLLATE IUnicode AS GroupField FROM Songs GROUP BY GroupField HAVING Count(*) > 1))\<Title|Trim:1>\<Title with artist|Statistic:Count(All)>

Code: Select all

<Group|name:Tracks...|Show tracks:No>\All duplicates except ones with maximal rating|Icon:Top level|Filter:(Songs.ID NOT IN (SELECT ID FROM Songs WHERE SongTitle || '@' || Artist || '@' || Rating COLLATE IUnicode IN (SELECT SongTitle || '@' || Artist || '@' || Max(Rating) COLLATE IUnicode FROM Songs GROUP BY Artist, SongTitle COLLATE IUnicode HAVING Count(*) > 1) GROUP BY Artist, SongTitle COLLATE IUnicode) AND Songs.SongTitle || '@' || Songs.Artist COLLATE IUnicode IN (SELECT SongTitle || '@' || Artist COLLATE IUnicode AS GroupField FROM Songs GROUP BY GroupField HAVING Count(*) > 1))\<Title|Trim:1>\<Title with artist|Statistic:Count(All)>

Code: Select all

<Group|name:Tracks...|Show tracks:No>\Duplicates with maximal rating or maximal playcount if same rating|Icon:Top level|Filter:Songs.ID IN (SELECT ID FROM Songs WHERE SongTitle || '@' || Artist || '@' || (Rating * 1000000 + PlayCounter) COLLATE IUnicode IN (SELECT SongTitle || '@' || Artist || '@' || Max(Rating * 1000000 + PlayCounter) COLLATE IUnicode FROM Songs GROUP BY Artist, SongTitle COLLATE IUnicode HAVING Count(*) > 1) GROUP BY Artist, SongTitle COLLATE IUnicode)\<Title|Trim:1>\<Title with artist|Statistic:Count(All)>

Code: Select all

<Group|name:Tracks...|Show tracks:No>\Duplicates with maximal playcount or maximal rating if same playcount|Icon:Top level|Filter:Songs.ID IN (SELECT ID FROM Songs WHERE SongTitle || '@' || Artist || '@' || (PlayCounter * 1000 + Rating) COLLATE IUnicode IN (SELECT SongTitle || '@' || Artist || '@' || Max(PlayCounter * 1000 + Rating) COLLATE IUnicode FROM Songs GROUP BY Artist, SongTitle COLLATE IUnicode HAVING Count(*) > 1) GROUP BY Artist, SongTitle COLLATE IUnicode)\<Title|Trim:1>\<Title with artist|Statistic:Count(All)>
Even "Single" tracks could be filtered out with Magic Nodes without need to tag some Custom field with that string, for example:

Code: Select all

<Group|Name:Tracks...|Show tracks:No>\Tracks from singles (less than 5 tracks and max 15 minutes)|Icon:Top level|Filter:(Songs.IDAlbum = -1 OR Songs.IDAlbum IN (SELECT IDAlbum FROM Songs GROUP BY IDAlbum HAVING Sum(SongLength) < 900000 AND Count(TrackNumber) < 5))\<Title|Trim:1>\<Title with artist>

Re: Playing only one copy of a song

by chrisjj » Wed Dec 15, 2010 6:56 pm

justpassinthru wrote:I have the duplicate problem as well. I am using the latest release of MMG. Only happens on about 20% of the CD that I rip. I have started checking immediately after ripping and when the library list duplicate entries, even for single CD's, i.e., rip a single CD, open from the Library, duplicate entries for all the tracks. Seems like a SW problem to me??
Hi Just. That looks like a different problem to me.

Does it macth this? http://www.mediamonkey.com/forum/viewto ... 80#p125180

Re: Playing only one copy of a song

by justpassinthru » Wed Dec 15, 2010 6:34 pm

rrfpacker wrote:dchall8,

I'm not sure if you've fixed this, but here's what I have done.

I have a lot of compilation cds and of course when you do this you get a lot of duplicates. Some are the same song, some are different versions by the same artist. You have to make the decision on how you want to treat these.

For the same song by the same artist, I choose the one I want to have in the library and in any other duplicates I enter "dup" in the Custom 2 field. I can leave all the dups in the library and when I create an auto playlist, I filter out the dups. I also created a filter with a criteria to include only tracks without dup in Custom 2, then I don't have to look at all the dups.

Hope this helps.
I have the duplicate problem as well. I am using the latest release of MMG. Only happens on about 20% of the CD that I rip. I have started checking immediately after ripping and when the library list duplicate entries, even for single CD's, i.e., rip a single CD, open from the Library, duplicate entries for all the tracks. Seems like a SW problem to me??

Re: Playing only one copy of a song

by chrisjj » Wed Dec 15, 2010 4:39 pm

> I proposed this a long time ago as well as criteria for AutoPlaylists/Filters.

At least someone listened. Just sad it was only JRiver.

> Although I'd like to also sort by bitrate.

Indeed the pre-sort criterion should be user selectable, as on JRiver Media Jukebox.

Re: Playing only one copy of a song

by Lowlander » Wed Dec 15, 2010 3:03 pm

chrisjj wrote:But neither is as good as a filter that includes only the highest rated track having the same Title, Artist and Year. For one thing, they require two not one tracks to be amended when I change preference.
I proposed this a long time ago as well as criteria for AutoPlaylists/Filters. Although I'd like to also sort by bitrate.

Re: Playing only one copy of a song

by chrisjj » Wed Dec 15, 2010 2:44 pm

Thanks for the suggestion.
rrfpacker wrote:I still think the only way is to manually tag your tracks with something and then create auto-playlists or filters to get what you want. Yes, it does require manually tagging each album/track.
A workaround for that requirement is a filter criterion to exclude yet-to-be-tagged tracks, by "timestamp <= <literal date of last tagging session>."

Another is to go to the effort also of putting "not dup" in every other track, and filtering out blanks.

But neither is as good as a filter that includes only the highest rated track having the same Title, Artist and Year. For one thing, they require two not one tracks to be amended when I change preference.

Re: Playing only one copy of a song

by rrfpacker » Wed Dec 15, 2010 2:12 pm

I still think the only way is to manually tag your tracks with something and then create auto-playlists or filters to get what you want. Yes, it does require manually tagging each album/track. It took me days to go through my library the first time and now tagging each new album is easy and creating auto-playlists is awesome.

I'll give another example of what I do. Growing up in the 60's I like to listen to the songs that made it into the Top 40. Top 40 radio back then had all kinds of genres and styles. What I have done is rate each track, changed Custom 1 to "Single" and if a song was a hit single I enter "yes". That way I can filter out songs that were on albums but not released as singles. As mentioned earlier, I enter dup in Custom 2 as previously mentioned.

Then I create an auto playlist with the following criteria;
Date 1960-1969 (I also created auto playlists for each year)
Single = yes
Custom 2 does not equal dup
Rating>= to 3 stars (so I can only listen to the ones I really like!)
I set the sort order to Random and Last Played so it will go thru the whole list before playing the same song. If I want to just let MM decide what to play, I remove the Last Played criteria and engage shuffle.

This may be more info than you want, but I've massaged this to suit me over the last couple of years and it works for me.

Re: Playing only one copy of a song

by chrisjj » Wed Dec 15, 2010 6:35 am

Thanks. Note that does require you to manually mark tracks each time you add an album.

I would still like a filter that includes only the highest rated track having the same Title, Artist and Year.

Re: Playing only one copy of a song

by rrfpacker » Tue Dec 14, 2010 9:35 pm

dchall8,

I'm not sure if you've fixed this, but here's what I have done.

I have a lot of compilation cds and of course when you do this you get a lot of duplicates. Some are the same song, some are different versions by the same artist. You have to make the decision on how you want to treat these.

For the same song by the same artist, I choose the one I want to have in the library and in any other duplicates I enter "dup" in the Custom 2 field. I can leave all the dups in the library and when I create an auto playlist, I filter out the dups. I also created a filter with a criteria to include only tracks without dup in Custom 2, then I don't have to look at all the dups.

Hope this helps.

Re: Playing only one copy of a song

by ZvezdanD » Fri Sep 11, 2009 1:40 am

chrisjj wrote:> In the option sheet you can select either the maximum bitrate or extension to be the selection for the master tracks.

And how does one then filter out the other tracks from the track list?
I think you should install the script first before judging about it or at least you should post question into the related forum. The mentioned script has an option to remove duplicated tracks from the track list indeed, they are removed only from the track list as the name of the menu option applies, not from the database nor it deletes physically audio files. You could use that option even if you didn't create a table of redirections, the criteria for filtering would be a maximal bitrate and/or a list of extensions (however, if you have created a table of redirections then master tracks would be kept even if they don't satisfy mentioned criteria). If you think that the script should have more criteria for filtering, please let me know.

By the way, the mentioned script have an automatically updated playlist containing all redirected tracks (i.e. duplicates without masters) and you could create an auto-playlist or filter using criterion Playlist is not that_playlist.

EDIT: Another by the way, if you don't want to create redirections, the new version of the Magic Nodes script (v3.x) has a possibility to create playlists and there is already a predefined mask "Tracks without duplicates and only one track which has duplicates" in the Tracks group. You could move that mask/node to the Playlist branch and create a new auto-playlist or filter using criterion Playlist is mentioned_playlist.

Re: Playing only one copy of a song

by chrisjj » Thu Sep 10, 2009 8:00 pm

> In the option sheet you can select either the maximum bitrate or extension to be the selection for the master tracks.

And how does one then filter out the other tracks from the track list?

Top