[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