proposed solution for defects 90095 & 119539 (674 votes, 638 votes) (Multiple artists per song)

Devon Jones soulcatcher at evilsoft.org
Thu Aug 28 16:51:54 CEST 2008


So I have been looking for a media player that gets the relationship 
between songs and artists right for a long time.  I finally found a 
music server that does it correctly in slimserver, but I'm still left 
wanting a good jukebox type app that is able to handle my very large 
music collection and still make thigns easy to find.  One of the big 
issues for this is that I have all my content well tagged for artist, 
composer, remixer, orchestra, etc (in id3v2, it's TPE1, TPE2, TPE3, 
TPE4, TCOM, TEXT, TIPL, TMCL, TOLY,  TOPE and wherever applications 
choose to stick Album Artist).  Further, I have a consistent separator 
between multiple artists of a single type so that apps that recognize a 
separator can pull out the one to many.

I talked with a number of devs on the irc channel, and asked them about 
these bugs, and essentially they said that 2.0 will freeze the database 
schema for future releases, and there is presently no plan to allow for 
anything more then the present 1 artist and 1 composer per track.

I'm a software dev, and I'm willing to pitch in and help to solve this 
problem, if you guys are willing to accept patches to enable 1-N songs 
to artists instead of the present 1-1.

My proposal:

2.0:
Since you want to nail down the schema more or less permanently for 2.0 
(at least that was what was said on irc) I propose the following changes:

1) remove artist and composer columns from the track table

2) create a track_contributor table
CREATE TABLE track_contributor (
id INTEGER PRIMARY KEY,
artist INTEGER,
track INTEGER,
contributor_type VARCHAR(255)
);

3) Alter the code to store both artist and composer in this table, and 
alter anything that reads from track to get the artist and composer from 
this table.  Contributor_type would be used to label the type of artist 
such as "Artist" or "Composer" today, and things like "Remixer" (TPE4), 
"Album Artist" (TPE1 normally), "Orchestra" (TPE2), "Lyricist" (TEXT), 
"Original Performer" (TOPE), etc.. in future releases.

Nothing else in 2.0 so as to not add any more risk to the schedule.

2.0 + (2.1, 2.01, not sure what meaning you assign to your version numbers):

1) Choose a split character to be used in artist fields.  ; appears to 
be the present default.  It's used in slimserver, and wma.  & reads 
better with the files when you look at it the mp3 with other apps, but 
it means you have to deal with conflicts such as Bob Marley & the Wailers.

Slimserver defaults to ; but lets you configure it to use any character 
or characters you want.  Given the deeply irritating process of changing 
tags one 40,000+ mp3s, I think it's probably best to let people pick the 
character they arrived at and default to ;

2) Alter the loader to split on the split character, and then insert any 
artists it finds.

3) File listings should take all artists on a song that have a 
contributor type of "Artist" and append them together with & for 
readability (open to suggestions here) and keep the columns in the pane 
the same.

4) In the artist tab, the song and albums should show up under every 
artist that is attached to the song.  It should default to only showing 
by "Artist" contributor type, but allow a person to let the pane include 
any or all contributor types in the tree view.

5) The tag editor should be altered to keep the artists seperated, and 
should split any artists entered with ; in them.  it should have a 
button for adding more artists, and there should be a dropdown allowing 
a person to select the contributor type, defaulting to "Artist".  
Setting "Album Artist" on one song in an album should attempt to 
propagate that to any other songs on the album.

I think that about covers it.

I'm willing to pitch in and do the work, but this represents definite 
change in your app, and I know that I'm totally new to the community.

Would you consider this proposal?

Thanks,
Devon Jones


More information about the Amarok-devel mailing list