Improved 'Get Track/Album Information' function RS 2/13/03 This document summarizes the results of investigation into how competing products help users import metadata into their music collections, and proposes a set of changes that could improve Song-DBs functionality in this area. Here's a short table that shows some of the strengths and weaknesses of competing products with respect this type of functionality. The table focuses on the strengths and weaknesses of the tools, rather than the databases upon which they depend. fyi, though, they each use the following DBs: -MusicMatch: uses AMG (All Music) on the back end. AMG is a comprehensive and professionally maintained DB. -Moodlogic: Uses their own proprietary DB, which is based on comprehensive user questionaires. The database seems well populated, though I couldn't do a complete test against my music collection. -Musicbrainz: uses the open musicbrainz db, which is based on user input (content of the db is maturing--currently only ~30% of my music library has been catalogued). MusicMatch Moodlogic MusicBrainzTagger Songs DB -Find CD Album info 3 ? 1 3 -Find track title 2 3 3 1 -Find track artist 2 3 3 1 -Find track's album 3 2 2 1 -Find track year 3 2 2 1 -Find track album art 3 1 1 1 -Find track genre 1-2 2-3 2 1 -Import subjective classifications 1 2-3 1 1 -Convert found info to tags 3 2 2 1 -Upload tag info to source DB 3 2 2 1 -Use updated metadata for quick mixes 2 3 1 1-2 Details: Find CD Album Info (example used: The bugcaneers, Dveykus, The Smiths): -MusicMatch, and songs db correctly identified the CDs and tracks. -MusicBrainz Tagger couldn't find information about these in its DB. -Moodlogic didn't seem to support this function?! Find track title, artist, info (example used: Abba:chiquita): -Musicmatch used whatever fields were filled in to query the AMG db, however, -Search results were limited to 5 possible Album/Track combinations, limiting the likelihood of a correct hit -Searches in which incomplete data was entered (e.g. 'Chi') were useless because of the above limitation -Moodlogic was a bit better at this, somehow (I'm not sure how??), automatically providing the user with extra metadata about a missing song name and/or release year. -MusicBrainz is probably the best on this front, as it correctly identified the title/artist without prompting. The problem, though, is that it's database is not very well populated ;-( -Songs DB does not provide the user with any help in guessing Artist/Title information Find track Album, Year, Album art, when Artist/Song are known: -MusicMatch was excellent for this, since it searched a comprehensive Database, and the user could then select the relevant Album/Year/Album art, although sometimes, the limitation of 5 possible search results was a problem (when a song was on numerous compilation albums). -Moodlogic: to the extent that I was able to test this without actually paying for the product, Moodlogic accurately guessed year information on several occasions, however, on others it didn't. I'd need to purchase the full version to get a better idea of this. -Musicbrainz was very weak on this front because: -Its DB is not well populated, meaning that most searches for Album/Year metadata return data from compilation albums -It automatically guesses compilation albums--a pain, since in most cases, users want to know the year a song was originally released, not when 'best of' was -No support for album art -Songs DB was also fairly weak in this respect: -Searches for Album/Year information often returned results that didn't even contain the song in question (because the feature is very 'Album centric'). -Year information was often incorrect because FreeDB is filled with tons of compilation albums -No Album art support Find Track Genre/subjective classifications -Musicmatch: is weak here, it only retrieves genres, and these are based on the Album genre (i.e. not track specific) -Moodlogic: shines! This is it's strength. Although its DB may not be fully populated, it stores a wealth of info about songs. The downside, though, is that the information is stored in the Moodlogic database and cannot be shared with the song tags. This allows Moodlogic to maintain control over its proprietary DB, but means that users cannot benefit from their work to categorize their collection on other machines. -MusicBrainz: is also weak in this area. It doesn't store genres or classifications although this is an area intended for future development. -Songs-DB: is weak here, as it only retrieves album genre, but it as pointed out earlier, it's difficult to match an album to a song Convert Found Info into tags: -Musicmatch: Has a nice UI for migrating any info found directly into song tags -Moodlogic: Can do this for only some of the information that is found, and doesn't have a great UI for managing this. -Musicbrainz: Does this nicely, showing the changes between original tags and found metadata. The main issue is that the quality of the metadata can be problematic, and it doesn't provide good facilities to modify the proposed metadata or only import selected portions of the new metadata--what's usually valuable here is the Name/Artist. -Songs-DB: doesn't provide the user with any asistance to migrate found data into DB fields Upload Tag Data into Source DB: This isn't a critical function, but... -Musicmatch: haven't tested this -Moodlogic: Has a _great_ interface for this. The only downside is that they collect a_lot_ of metadata (in order to facilitate mix creation) -MusicBrainz: Allows the user to do this, but it has a very slow/confusing/unintegrated www UI to do this. -Song-db: doesn't have this function at the moment (but no big deal) Use Updated Metadata for Quick Mixes: -Musicmatch has an auto-dj function that let's the user quickly use updated tags to create mixes. The problem is that only the year/genre tags are updated and this metadata is often faulty because year is often based on a compilation album (because of the 5 album search limit). -Moodlogic: Is awesome for this, although the DB still needs to be more populated -Musicbrainz: Doesn't offer this functionality, however, if another jukebox program is used after Musicbrainz tagger has updated tags, mixes can be created, however, they will have the same problems as musicmatch created mixes--only worse (because the Musicbrainz db is _filled_ with compilation albums (which means incorrect year metadata) and genres are missing. -Songs DB: Has functionality to created 'auto playlists' however, the user cannot take advantage of it unless they manually enter all metadata. Recommendations: -Create a single 'Get track/album info...' command for getting track info -It should be accessible from the main menu, context menu, or properties tab -Whether an mp3 or cd track is selected it should pop up a 'Get Info...' dialog (on the assumption that Album information will be loaded into the DB automatically by default) Get Track/Album Info: |------------------------------------------------------------------------------------------------------------------------- | Artist Song Album Year Genre Track (classification) |Current Information: Chiquita | |------------------------------------------------------------------------------------------------------------------------- |Alternate Information: ABBA Chiquitita Voulez Vouz 1979 Rock/Pop 7 |Album cover ABBA Chiquitita Gold 1983 Rock/Pop 3 |for selected album> Blahblah Chiqo and Sam Kids Stuff 2002 Childrens 3 | .... | | | | -------------------------------------------------------------------------------------------------------------------------- [Accept Selectd Info] [Cancel] Note: fields should be editable, in case user wants to make a change before they import the new track info. Behind the scenes: 0) If CD, automatically look up via freedb -Otherwise, look up: 1) Track information from musicbrainz. If Artist/Song are found with probabilty > 50% assume that the info is correct. 2)a) Album/Track/Year/Genre information from Freedb, using the confirmed Artist/Song data from musicbrainz (This is not the preferred solution, since as you pointed out earlier to me, Freedb _cannot_ provide accurate Album information to match Song/Title info (with it's current API) b) Album/Track/Year/Genre information from AMG, using the confirmmed Artist/Song data from musicbrainz. (This is the preferred alternative, since it _should_ yield valid information. 3) Same as 2a),2b) except that even if musicbrainz found info, ignore it and continue with a search (in case musicbrainz was wrong). 4) List results from steps 1 and 2 in reverse chronological order (since users usually are interested in when a track was first released), and then list any results from 3) that do not match items found in steps 1 and 2, by best match. This approach takes advantage of the fact that musicbrainz is reasonably good for identifying song/artists, but that alternate data sources have more/more accurate metadata for other fields. Open Issue: -How does the user change metadata for CD based tracks -It may be necessary to calculate musicbrainz TRM's in the background--otherwise 'Get info' may take too long. -Submitting data back to Musicbrainz would be nice, but not critical at this stage (I'm not sure how easy it would be, since when doing this with the musicbrainz tagger, the user must first manually build the album, and only