Playing only one copy of a song

Get answers about using MediaMonkey 4 for Windows.

Moderator: Gurus

chrisjj
Posts: 5007
Joined: Wed Feb 14, 2007 5:14 pm
Location: UK

Re: Playing only one copy of a song

Post by chrisjj »

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.
Chris
rrfpacker
Posts: 1076
Joined: Sat Jul 12, 2008 5:47 pm

Re: Playing only one copy of a song

Post by rrfpacker »

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.
chrisjj
Posts: 5007
Joined: Wed Feb 14, 2007 5:14 pm
Location: UK

Re: Playing only one copy of a song

Post by chrisjj »

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.
Chris
Lowlander
Posts: 59391
Joined: Sat Sep 06, 2003 5:53 pm

Re: Playing only one copy of a song

Post by Lowlander »

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.
chrisjj
Posts: 5007
Joined: Wed Feb 14, 2007 5:14 pm
Location: UK

Re: Playing only one copy of a song

Post by chrisjj »

> 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.
Chris
justpassinthru

Re: Playing only one copy of a song

Post by justpassinthru »

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??
chrisjj
Posts: 5007
Joined: Wed Feb 14, 2007 5:14 pm
Location: UK

Re: Playing only one copy of a song

Post by chrisjj »

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
Chris
ZvezdanD
Posts: 3271
Joined: Thu Jun 08, 2006 7:40 pm

Re: Playing only one copy of a song

Post by ZvezdanD »

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>
Magic Nodes 4.3.3 / 5.2 RegExp Find & Replace 4.4.9 / 5.2  Invert Selection/Select None 1.5.1  Export/Create Playlists for Child Nodes 4.1.1 / 5.4.1  Expand Child Nodes/Expand All 1.1.2  Event Logger 2.7  Filtered Statistics Report 1.6  Track Redirection & Synchronization 3.4.2  Restore/Synchronize Database 3.1.8 / 4.0.1  Find Currently Playing Track 1.3.2  Queue List 1.2.1  Add to Library on Play 1.0.1  Tree Report for Child Nodes 1.1.1  Update Location of Files in Database 1.4.5 / 2.3  Inherit Child Playlists 1.0.3  Add Currently Playing/Selected Track(s) to Playlist 1.2
rrfpacker
Posts: 1076
Joined: Sat Jul 12, 2008 5:47 pm

Re: Playing only one copy of a song

Post by rrfpacker »

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.
ZvezdanD
Posts: 3271
Joined: Thu Jun 08, 2006 7:40 pm

Re: Playing only one copy of a song

Post by ZvezdanD »

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.
Magic Nodes 4.3.3 / 5.2 RegExp Find & Replace 4.4.9 / 5.2  Invert Selection/Select None 1.5.1  Export/Create Playlists for Child Nodes 4.1.1 / 5.4.1  Expand Child Nodes/Expand All 1.1.2  Event Logger 2.7  Filtered Statistics Report 1.6  Track Redirection & Synchronization 3.4.2  Restore/Synchronize Database 3.1.8 / 4.0.1  Find Currently Playing Track 1.3.2  Queue List 1.2.1  Add to Library on Play 1.0.1  Tree Report for Child Nodes 1.1.1  Update Location of Files in Database 1.4.5 / 2.3  Inherit Child Playlists 1.0.3  Add Currently Playing/Selected Track(s) to Playlist 1.2
rrfpacker
Posts: 1076
Joined: Sat Jul 12, 2008 5:47 pm

Re: Playing only one copy of a song

Post by rrfpacker »

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.
jared68
Posts: 8
Joined: Sat Aug 07, 2010 8:10 am

Re: Playing only one copy of a song

Post by jared68 »

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.
Post Reply