View Issue Details

IDProjectCategoryView StatusLast Update
0001966MMW v4Playlist / Searchpublic2006-12-14 14:31
Reporterrusty Assigned To 
PriorityurgentSeverityfeatureReproducibilityalways
Status resolvedResolutionfixed 
Fixed in Version3.0 
Summary0001966: Basic Duplicate Prevention for Playlists
DescriptionIn the course of planning for 2.5.1 we decided to add duplicate prevention, but that the functionality described in bug 0000699, 0001453, and 0001455 was too complex. What follows is a more basic version of the functionality, that hopefully can be addressed in the 2.5 timeframe (note: it is split into 2 parts, though, hopefully, all of it can be addressed).

1) A means of knowing if tracks added to a playlist are duplicates
1b) and optionally removing them
2) A means of knowing if duplicates exist in a playlist
3) A means of manually removing all duplicates from a playlist
4) A means of filtering duplicates that exist in any playlist so that it can be played without editing it to remove duplicates
5) Another need that I have is to consider a duplicate a 'duplicate' only when it appears within x amount of time of a previous instance of that track on the playlist.

The proposed implementation is as follows. Any feedback would be appreciated:
Short term (2.5):
Satisfy usecase 1), 3), and 5)

In Tools|Options|Library|Playlists, in the Playlists box add:
[x] Warn when duplicate tracks are added in close proximity
Proximity Detection Threshold: _[2]_ hrs

If the user adds tracks to a playlist and the tracks are duplicates, then they appear in the playlist in Red, and the user has the option of manually deleting the original or the duplicate.

In the Context Menu for playlists/Now Playing nodes, add a menu item to 'Remove Duplicates'. If the user clicks 'Remove Duplicates' then any duplicate titles after the first instance of a track in the playlist will be removed. (Note it may be a better idea to delay this until the Medium Term implementation--see below--since in the short term, there'd be no visible feedback re. which tracks are duplicates).

Medium Term (2.5 or 2.6):
Satisfy all usecases.

In Tools|Options|Library|Playlists, in the Playlists box add:
[x] Warn when duplicate tracks are in close proximity
[ ] Skip playback of duplicate tracks in close proximity
Proximity Detection Threshold: _[2]_ hrs

In this case, whenever the user opens a playlist/Now playing list, the contents of that playlist are analysed for duplicates. Moreover, if 'Skip Playback...' is enabled, then a track that appear in duplicate on the playlist appears in red but is 'dulled' to indicate that it won't be played.

Also, in the Now Playing node, 'Duplicates' would be determined based on 'Last Played' timestamps (i.e. not just internal to the playlist itself).
Additional InformationSee: http://www.mediamonkey.com/forum/viewtopic.php?t=537
TagsNo tags attached.
Fixed in build1012

Activities

rusty

2005-11-02 20:31

administrator   ~0006160

For the Medium Term solution, I recommend a couple of small changes given the manner in which our configuration dialogs have changed:

Medium Term (2.5 or 2.6):
Satisfy all usecases.

In Tools|Options|Library|Playlists, in the Playlists box add:
[x] Warn when tracks are duplicated within a period of: _2_ hrs

If the user adds tracks to a playlist or Now Playing list and the tracks are duplicates, then they appear in the playlist in Red, and the user has the option of manually deleting the original or the duplicate. (The warning could also be via a dialog, however, my concern with that approach is that the user might be repeatedly warned about the same set of duplicates).

In the Context Menu for playlists/Now Playing nodes, we can also add a menu item to 'Remove Duplicates'. If the user clicks 'Remove Duplicates' then any duplicate titles after the first instance of a track in the playlist will be removed. That said, I don't think that this is critical for now--users can remove the red tracks on their own.

The only downside is that in some cases tracks are added to a playlist, but the user will not see that they are red.

---------

In Tools|Options|Player|Now Playing, add the following just below the Auto-DJ box:
---Proximity Detection----------------------------------
| [x] Warn when tracks are duplicated within a period of: _2_ hrs
| . . [ ] Skip playback of duplicate tracks
--------------------------------------------------------

In this case, whenever the user or the auto-DJ edits the Now playing list, its contents are analysed for duplicates. Moreover, if 'Skip Playback...' is enabled, then a track that appear in duplicate on the playlist appears in red but is 'dulled' to indicate that it won't be played.

Note: in the Now Playing node, 'Duplicates' would be determined based on 'Last Played' timestamps (i.e. not just internal to the playlist itself).

rusty

2005-11-07 19:30

administrator   ~0006199

Following additional discussion, it was agreed that the usecases for Playlists and Now Playling were different and that the implementations should differ. Thus this has been split into features:
A) Duplication prevention for Playlists (this bug)
B) Proximity prevention for Now Playing (this will be described in another bug)

A) Duplication prevention for Playlists
i)
In Tools|Options|Library|Playlists, in the Playlists box add:
[x] Warn when duplicate tracks are added
. . [ ] Automatically prevent duplicate tracks from being added

If the user adds tracks to a playlist and the tracks are duplicates, then the following dialog appears:
"The tracks <Artist> - <Title>, and <Artist> - <Title>, appear more than once. Are you sure you want to add them to the Playlist?
[[Yes]] [No]"

If Automatic duplication prevention is enabled, then the user MUST be provided feedback. The proposed mechanism for this feedback is via a prominent message somewhere in the status bar. In the absence of such a message, the user will have no idea that the track(s) weren't added to the playlist.

note: from my perspective, the Automatic prevention of duplicate tracks is a low priority feature, since duplicate tracks will not be common and since the user can just press <Enter> to trigger removal when the dialog appears.


ii)
Add: 'Remove Duplicates...' to Now Playing | Edit | menu, just below 'Invert Selection'.
Add: 'Remove Duplicates from Playlist...' to the context menu for any Playlist node.

This causes the following dialog to appear:
"The following tracks appear more than once in the playlist. Would you like to remove the selected tracks from the playlist?
 . . # . . Artist . . Title
[ ] 5 . . Sting . . . Fragile
[x] 39 . .Sting . . . Fragile
[ ] 36 . .U2 . . . . .With or without you
[x] 98 . .U2 . . . . .With or without you
[x] 177. .U2 . . . . .With or without you
[[Remove]] [Cancel]"

This dialog could also be used as the basis for bug 0000231 (not identical, but similar).

Alternatively, a simpler dialog along the following lines could appear:
"The following 5 duplicates were detected: <Artist> - <Title>, <Artist> - <Title>. Do you want to remove them?
[[Remove]] [Cancel]"

The main downside of the second proposal is that the user cannot choose _which_ of the 2 duplicates to retain.

jiri

2005-11-10 21:46

administrator   ~0006226

Fixed in build 912.

rusty

2005-11-11 06:00

administrator   ~0006228

Tested in 912. It works reasonably well. The only possible weakness is that when a playlist is saved via the Now Playing dialog, there's no check for duplicates, but I'm not even sure that there should be.

Just a couple of tweaks remain:

1) A change in wording is needed because the original wording was problematic when only a single duplicate appeared

"These tracks appear more than once.
<Tracks>
Are you sure you want to add them to the Playlist?
[[Yes]] [No] [Cancel]"

-->

"Duplicate track(s) detected:
<Tracks>
Are you sure you want to add the track(s) to the Playlist?
[[Yes]] [No]"

2)In the above dialog, remove the 'Cancel' button--it is the same as the 'No'
button.

3) In the above dialog, there is a 'In the future do not ask me' option. However, it appears off-centre. It should be aligned with the other text.

4) A change in wording is needed to account for situations when only a single duplicate is found:

"The following duplicates were detected:
<Artist> - <Title>, <Artist> - <Title>.
Do you want to remove them?
[[Remove]] [Cancel]"

-->

"Duplicate track(s) detected:
<Artist> - <Title>, <Artist> - <Title>.
Do you want to remove the duplicate(s)?
[[Remove]] [Cancel]"

jiri

2005-11-11 07:53

administrator   ~0006232

Fixed in build 913.
 1. Fixed.
 2. I think that all the buttons are useful. Let's say 3 tracks are about to be added to a playlist, 2 of them are duplicates. If user presses:
   - Yes - all three are added.
   - No - just 1 non-duplicate is added
   - Cancel - none is added, action is canceled.
 3. I'm not sure if it looks better, but I changed it.
 4. Fixed.

rusty

2006-12-12 15:24

administrator   ~0008285

There's a small usability problem with this:

When no duplicates are detected, nothing happens and it appears to the user as if the functionality isn't working. If no duplicates are detected, 'No duplicates were detected. [OK]' should appear.

jiri

2006-12-14 14:31

administrator   ~0008291

Fixed in build 1012.