[mythtv] [PATCH] Album Artist support for MythMusic (good for soundtracks/compilations etc.)

Colin Guthrie myth at colin.guthr.ie
Thu Jun 24 04:48:44 EDT 2004


Hi,

Kenneth Aafløy wrote:
> Nah, it wasn't big enough to trigger the limit, and Isaac always brags about 
> his bandwidth, so let's test it, right? ;)

:p

> I must say this is a nice idea, as I've been using the Tree sorting: 
> directory, because I have a lot of collection albums :)

Yeah that was what I was doing until now too, but it's a little slow to 
build the tree on my network booting machine. The metadata tree is 
instant, so pretty happy now!

> But I don't get excactly how I'm going to automatically put all my compilation 
> albums with id31 into MythMusic. I'm I supposed to rename artist to 'Various 
> Artists - <Real Artist>'? At least that is what I got out of a quick read, 
> and does not sound good for id31, because of limiting artist name length?

Yeah, there is (I think) an inherent limitation for id3v1 seeing as the 
tags are a little limited. I think the only option here to get proper 
support with this patch is to convert to id3v2. I think there are quite 
a few scripts/apps out there to do this automatically, so you're 
probably not shooting yourself in the foot too much here. The id3v1 
could still be there I guess, but also have the v2 frames with more info?

Here is an example of a very simple setup from my collection:
These are Oggs, but the same applies to id3v2 MP3s using the TPE4 frame 
as opposed to a tag called "mixedby" in vorbis comment.

The album is Another Late Night, by Rae and Christian. Rae and Christian 
(in case you don't know) are DJs who selected a collection of tracks for 
the series of albums Another Late Night. Each track is by separate 
artists, but they have been arranged and mixed by R&C, so they get the 
credit of Album Artist in my book!

<SNIP>
[colin at nevis Another Late Night]$ vorbiscomment -l 01\ -\ Heavy\ Worker\ 
\(Trendsetter\).ogg
MIXEDBY=Rae & Christian
ARTIST=Trendsetter
ALBUM=Another Late Night
TITLE=Heavy Worker
TRACKNUMBER=1/17
</SNIP>

Another example I have a Soundtrack for the file La Haine (unofficial 
one but still good!). For this, I set the Album Artist to "Soundtrack" 
for neatness sake. Here is an id3v2 listing for a track on that album:

<SNIP>
[colin at marley La Haine - Métisse]$ id3v2 -l 01\ -\ Burnin\'\ and\ 
Lootin\'.mp3
id3v2 tag info for 01 - Burnin' and Lootin'.mp3:
TALB (Album/Movie/Show title): La Haine / Métisse
TPE1 (Lead performer(s)/Soloist(s)): Bob Marley
TPE4 (Interpreted, remixed, or otherwise modified by): Soundtrack
TIT2 (Title/songname/content description): Burnin' and Lootin'
TRCK (Track number/Position in set): 1/17
</SNIP>

I have another album called 300% dynamite. There is no particular Album 
Artist in this case (OK, someone arranged it, but it's not marketed like 
that!), so I use use the Album Artist of "Various Artists" for this case.

<SNIP>
[colin at marley 300% Dynamite]$ id3v2 -l 01\ -\ Make\ It\ Reggae.mp3
id3v2 tag info for 01 - Make It Reggae.mp3:
TALB (Album/Movie/Show title): 300% Dynamite
TPE1 (Lead performer(s)/Soloist(s)): Shark Wilson & The Basement Heaters
TPE4 (Interpreted, remixed, or otherwise modified by): Various Artists
TIT2 (Title/songname/content description): Make It Reggae
TRCK (Track number/Position in set): 1/15
</SNIP>


Taking the above examples, without Album Artist support, the Playlist 
tree (sorted by "artist") would look a bit like:

Bob Marley
   La Haine / Métisse
     01 - Burnin' and Lootin'
Trendsetter
   Another Late Night
     01 - Heavy Worker
Shark Wilson & The Basement Heaters
   300% Dynamite
     01 - Make It Reggae

With my patch and the config option turned on (I appreciate this isn't 
for everyone!) I would get:

Soundtrack
   La Haine / Métisse
     01 - Burnin' and Lootin' (Bob Marley)
Rae & Christian
   Another Late Night
     01 - Heavy Worker (Trendsetter)
Various Artists
   300% Dynamite
     01 - Make It Reggae (Shark Wilson & The Basement Heaters)


This is just a short 3 track example, but you can see how in some 
circumstances, the patch can really keep things neat. All the 
metainformation is still there unblemished if you will, so searches etc 
can still be easily implemented in the future.

Hope this make the "use" of my patch a little clearer!

> I belive, but it's not up to me, that your patch is very clean, but contains a 
> lot of self reffering comments, what about naming the functions/members in a 
> way that they won't need commenting? I also got stumped when you added a 
> member and suddenly broke naming convention clearly stated right above it 
> (mBlnAlbumArtistMod).

The comments were really just to show what I changed and I wouldn't 
expect them to be put into the final patch which will (hopefully) be 
merged into CVS.

I'll change the mBlnAlbumArtistMode to a more conforming name, must have 
slipped back into my usual style!! I'll leave the comments in just now 
so that others can make refernce to them easily before the patch 
(hopefully) becomes official at which point I'll remove them!

One point to note: when scanning files for metadata, if the album artist 
info cannot be found, it sets it to be the same as the artist. While 
this is perhaps technically correct, it is perhaps not best idea really. 
Perhaps it should be left blank in the metadata and the locic of the 
metadata class to handle this situation? What do others think?

> I'm staying with my directory tree sort setup for now, untill a clean method 
> of extracting multi artist compilations is clarified.

Fair 'nuff. It would require changing your tags etc in the files, but 
for people starting off ripping their CDs etc. and for those who can be 
bothered to retag things, I feel this is a nice solution!

Thanks for your feedback tho. Always appreciated.


BTW, I've just got me a new iRiver, so when this patch is done, I'm 
gonna add a Sync option to the Music menu if no-one objects?

I'm thinking it will just sync up named playlists... and create the 
iriver db file, but if anyone has any other suggestions let me know. 
I'll try and make it such that the sync system is modularised such that 
it can be modified to accept other types of player. I reckon it'll just 
use rsync in the background unless anyone would rather the sync'ing 
logic was built in?

Col

-- 

+------------------------+
|     Colin Guthrie      |
+------------------------+
| myth(at)colin.guthr.ie |
| http://colin.guthr.ie/ |
+------------------------+

Eagles may soar, but weasels don't get sucked into jet engines.


More information about the mythtv-dev mailing list