Introduction
musikCube is a kickass opensource MP3 player for Windows which is broken into two separate projects: a GUI front-end, and a cross-platform MP3-player core. It's like iTunes, except not designed for retards.
Even though it's quite good, nothing can satisfy me! Here's a list of features that I think would make it the hottest music player ever...
Super-awesome feature wishlist
Music Management
- Playlists can be opened in separate windows so you can drag'n'drop songs between 'em, resize them and have 4 visible at once, etc.
- Pop-open a Windows Explorer window for directory that a selected song is in
- Hotkey to delete a file permanently (or send to Trash)
- Garbage collection (move any old unlistened-to songs to the Trash)
- Backup (burn chunks of your collection to CD/DVD) and have a catalog of offline files which can be played! (i.e. when you try to play a track, it just tells you to insert a certain CD/DVD, then finds the tracks on that CD and just GOES!)
- Song ratings
del.icio.us-like tags for songs/albums/artists
- songs/albums/artists are each entities in the database which can be rated/tagged
- if a rating/tag is missing from any one entity, it can get it from a higher-up or combination of higher-up entities
- Get covers from amazon.com
Tag'n'Rename-like MP3 tagger:
- amazon.com / freedb.org lookups for covers and track titles
- Drag'n'drop field-elements, so you don't have to mess with %1 %6 %2... just drag 'em around! Each region of text should be grouped and draggable. eg:
Import pattern: [ <Track#>{. }<Artist>{ - }<Title>{-rns/apc} ]As you can see, user-entered text is grouped together as a unit, and can be edited like normal text OR shuffled around.
Database maintenance
Register an event-listener in Windows which checks if files in a directory change so that it never has to rescan an entire directory (unless you close the program
) - Tag all MP3 files with a unique database ID, so if someone moves a file, the DB won't add duplicate entries
Browsing music
Viewing a large collection of music wastes a lot of screen real-estate because, for each album, many of the columns on the display are duplicated for every track (artist, album name, year, bitrate, rating (sometimes), etc.). When trying to find things quickly, less can be more! So here are some improved views:
Grouped albums view:
All albums should be grouped (especially Various Artists compilations)
- Optionally, when updating the database, group all MP3s which are in the same directory
Just covers view:
- A nice stack of CD's that you can arrange and categorize
Grouped albums w/ covers view:
- A pretty list-view that looks like this:
[COVER] Artist - Title 1. Track 2. Another Track 3. Other Other Track 4. ...
(Perhaps you can set the maximum number of tracks to show, and hovering the mouse will show all tracks.)
- A pretty list-view that looks like this:
Party-shuffle view:
A rip-off of iTunes', except this one can use the del.icio.us-like tags to pick which genres to listen to!
Cluster-view:
Shows a randomly scattered pile of album covers of different sizes (with titles) -- like what extispicious does for my del.icio.us bookmarks.
- The size/clustering will be based on popularity, or user-specified critera (tags, ratings, age of songs, time since last listened to, etc.)
Filesystem view:
- A tree-view of the filesystem's conception of your MP3 collection.
Timeline view:
- Most recently obtained albums/songs
- Old stuff that you haven't listened to much and for a while (in other words, that you've forgotten about)
General browsing features:
- When listening to a track, clicking the "Album" field goes to a view of just that album, while clicking the "Artist" field goes to a view of all tracks by that Artist
- Show duplicate tracks
Back/Forward buttons to go to last/next view, and a history (and perhaps a "favorite views" option so you can bookmark frequently used ones)
The scroll positions on all lists always retain their previous positions!!! No amount of adding new albums, switching views, updating the database, hiding/closing things, or quitting the application can make a list scroll back to the top...
- Miscellaneous tracks (tracks without albums) are clustered together (by genre or user-tags).
Playlists
- When shuffle is enabled, you should be able to hit "previous song" to skip to the last song played (Winamp5 shuffle algorithm would be nice)
- Much better playlist management
- The order of a playlist should never change
- Reordering a playlist with drag/drop should be more obvious (put a little separator showing where the file will be dropped)
All drag & drop operations should highlight the object they're going to be dropped on (i.e. playlists)
Considerations
- Most of these features are going to be highly graphically intensive. Maybe it should be written in DirectX?
- Tag management -- del.icio.us gets messy if you don't maintain your tags on a regular basis. Maybe there can be a garbage-collection feature for tags that only describe one or two songs, or a feature that tries to auto-merge sets of tags (based on how much overlap there is between associated tags, similarity of spellings, etc.)
- Funding -- this program isn't going to be anywhere near as awesome as I'm describing without some cashflow. Could it be made shareware or something?
