Note: this is where my internal notes were when today's WMP9 story came out. The ensuing discussion seemed like a good time to get these ideas out the door, so apologies for the rough edges. Please add comments to this journal entry if you have any, or know of any MP3 projects that I might have overlooked in my search, or if you're interested in planning one. I no longer think I have the time to codeNote: this is where my internal notes were when today's WMP9 story came out. The ensuing discussion seemed like a good time to get these ideas out the door, so apologies for the rough edges. Please add comments to this journal entry if you have any, or know of any MP3 projects that I might have overlooked in my search, or if you're interested in planning one. I no longer think I have the time to code a player, but would love to help anyone get one off the ground.
- Analyze currently available software
- Pick a feature list, platform
- Possible to write plugins for WinAmp / XMMS / MusicMatch?
- None of the software I've played with (WinAmp, XMMS, MusicMatch) is geared towards the guy with 100+ GB of music.
Few people right now need something that is, but I do, and more people will need it very soon...
- Library must be memory efficient, not O(n)
- Must subcategorize (display by artist by album by
- Options to automatically remember playlists, history, track preferences, etc. Badlist/Goodlists?
- Rate preferences in more than one situation (excellent for party, not bad for dance, etc)
- Hierarchial 'Genre' tagging, (Dance->Electronica->Techno->House) or even better, Multiple Inheritance (Party Rap is child of Dance and Rap, but Gangsta' Rap is child only of Rap)
- Version concurrency. Expect that most song selection is done by AutoDJ feature, ala MusicMatch, so have a way to specify that of the following N remixes, only n should ever be chosen at once by AutoDJ.
- Have disk routinely indexed so that different files with same tag will update location?
- Should have a nice, easy, clean interface
- Easy to bind keys to functions
- Can grab UI and controls over HTTP
- Extensible plug-in architecture. Can we use XMMS's plugins and skins?
- If v2 ID3 isn't constrained by extra fields, UI for tagging shouldn't be either
- MusicMatch's SuperTagging is great. It stays.
- Also need something for Track nums to portable MP3 player. Should I just leave track num in filename?
- Larger problem is that different programs want different filenames. Explorer only needs song title, since it's organized by Album by Artist by Genre in folders. P2P programs need Artist - Song Title. Mp3 player needs Tracknum - Song Title.
- No matter which organizational method, when you first import new files, they can go into a "Newly Imported" category, in case you need to change the tagging before losing it in your general mix.
- Have an option for the AutoDJ so that when sampling, it picks X songs at "Excellent", X * 2 songs at "Very Good", X * 4 songs at "Good", X songs at "Fair", X / 8 songs at "Poor", and no songs at "Bad Taste". And of course all numbers and ratios would be user-configurable.
It seems to me that there's a lack of MP3/Ogg playing software aimed at the collector with 100GB+ of media. This is still considered "a lot" of mp3s, which explains why very little software is currently designed with the 100gig colleciton in mind; but folks' collections aren't decreasing in size, and eventually many more people will find themselves needing software that doesn't exist. I've done some studying of the requirements, along with what possibilities are available as plugins or front-ends to existing players (XMMS, WinAmp, MusicMatch, and Windows Media Player 9). The alternative is coding a new player using Mozilla's XPFE (check out the Open book on it). I'm hoping that the slashdot community can tell me if (a)there's already software available that does what I want, (b)which projects come closest that I could join, (c)the best way to modify or add plugins to the above-mentioned players, or (d)what else should be in a new player, if I end up having to write one.
- No native library (for me to poop on).
- I've got the source, so presumably can do whatever I want with it, if I've got the time to hack it.
- All the existing library-style interfaces to it assume you've got no more than 15 gigs of music.
- Most of them written for Apache and Perl with a MySQL back end. Some C++, with no back-end. Using a web server kills the chances for a decent UI, shell integration, drag n' drop, etc unless you code it in Java or IEML or something. On the plus side, makes it easy to control from other locations (in the office, home).
- Very few of them even had a concept of "library" above "list" of albums and folders on your hard drive. None of them supported AutoDJ feature for playlist creation. THEY ALL SOLVED THE SAME PROBLEM WITHOUT ANALYZING THE EXISTING FIELD. Note to future OS hackers: do a freshmeat search before you start. Thank you.
- Library resource usage is a beast, even with small numbers of files.
- Library management is a disaster. Hard to remove files from the list, can't update information on multiple files at once, no renaming files from tags, no tagging from filenames, no support for preference, mood, tempo, and situational tags.
- No AutoDJ
- Searching is limited to filename.
- Purports to have a plugin interface, but looking through the docs made me cry.
- Almost ideal. I use MusicMatch on Windows now, because of the functionality increases it offers over WinAmp3 and wmp9. I wish there was a way to change the few things I don't like about it, but it doesn't sound like the plugin architecture is useful at all, widely adopted, or even encouraged by the company. So the only thing I can think of is emailing the developers and asking them to change a few features.
- Library has a respectable interface, but you can't thread BY artist BY album or something. Once you've organized BY artist, everything within that list is flat, no more expansion. Ditto with BY genre. Incredibly annoying.
- Library is implemented horribly. Behaves well enough up to about 10 gigs of files, but after that it totally breaks down. I loaded 45 gigs into it, and it took about an hour to process them. Everytime starting the player, changing the sorting (from BY artist to BY genre), or even updating a single tag took about 90-120s to complete. And that's less than half my total library size...
- Periodically crashes and takes down my entire XP box. How the hell does that work?
Windows Media Player 9
- Can organize BY artist BY album, but organizing BY genre displays, again, in a flat list. Stupid.
- Incredibly fast! Uses the XP DB API on the backend, so there is a minimal loading time when first adding large numbers of files to the library, and after that is damn fast. Unnoticable delay handling 15 gigs of music, need to try it with 50gigs and then 100gigs to see if it holds up to those.
- Still can't encode MP3s. WTF
- Has a plug-in interface, but don't know if I can change the existing UI through it. Maybe I can add my own interface to the library. There's a "Window" category (along with Visualization, and Input/Output), so I have hope.
- Auto-pref'ing is dumb. Automatically loads every song at 3/5 stars, listening to it once increases to 4 stars, listening to it a couple more times puts it at 5 stars. I'm sure way too much of my music would be rated at 4 and 5 stars to make a useful distinction of what I really thought was a decent song.
- I can always set my own preferences, which won't be modified by the auto-pref feature, but why add a useless feature then? Auto-prefing could be useful, because I spent a helluva long time pref'ing a lot of my files in MusicMatch. Which pisses me off, because that data is not available to WMP9, and there's no way in hell I'm switching without my preferences moving with me.
- Another limitation: MM has settings for "Preference" (Excellent, Very Good, Good, Fair, Poor, Bad Taste), "Tempo" (Fast, Pretty Fast, Moderate, Pretty Slow, Slow), "Mood", (Wild, Upbeat, Morose, Mellow, Tranquil, and Comatose) and "Situation" (Dance, Party, Dinner, Background, Romantic, Seasonal, Rave, and Drunken Brawl). WMP9 tries to these vary independent settings into one, called "Mood" (Angry, Groovy, Happy, Party, Quirky I shit you not), Rockin', Sad, Soothing, Spooky, Sunday Brunch, Trippy, and Work). It doesn't work. You can't combine all of them without something asnine like Work_Happy, Work_Quirky, Work_Dopey, Work_Doc, etc. You can hack around that by making use of the numerous-bordering-on-ridiculous UI fields that are provided in other areas, such as Artist, Lyricist, Orchestra or Band, Original Lyricist, Conductor, Composer, and Original Artist on the Artist Info. The Tempo can only be specified in beats per minute. Even though the UI is big enough for hundreds of billions of quadrillions of beats per minute, the UI will not let you type letters, if you prefer the "Fast, Pretty Fast" method of index.
- The usage of all these hacks will ensure that your method totally differs from anyone else, making tag sharing totally incompatible.
- I'm not switching platforms until all the work I did tagging my collection under MusicMatch can easily be switched over. I could write a script that would convert everything, if only WMP9 provided me a field to convert it to .