How to tag MP3 files (id3v2)
#1
Hi,

i'm searching for infos about tagging mp3 files and how the tags are used in xbmc.
I did not find much info in the wiki or in the forum so i looked in the code (but this is too much input Smile).
Can someone please check what i get out of the code?

Tracknumber:
id3v2 frame "TRCK"
(only Tracknumber, "position in set" is not used)

Part of set (cd number):
id3v2 frame "TPOS"
(only number, "total number of parts" is not used)

Genre(s):
id3v2 frame "TCON" (list of genres)
something like "(21)" or "(51)(39)" or "(NewGenre)" ...

BTW is there a bug in ParseMP3Genre()?
If i write a frame like "(4)something" the "something" (called refinement in the id3v2.3 docu) should be removed, but the code looks for "((something))"

Title:
id3v2 frame "TIT2"

Artist:
first occurrence in id3v2 frames "TPE1", "TPE2", "TPE3", "TPE4", "TCOM"
Single Artist = "artist" or
Multiple Artists (features, ...) = "artist1 / artist2 / artist3" (with artist1 as primary artist)

Album:
id3v2 frame "TALB"

Album Artist: (not set for Compilations)
first occurrence in id3v2 frames "TPE2", "ALBUM ARTIST", "ALBUMARTIST"

Year:
id3v2 frame "TDRC"
(only year)

Cover:
id3v2 frame "APIC" (Frontcover, Other or first found)


A few questions:
1) How are multiple artists handled (displayed)?
2) What is the best way to organize double (or more) cd albums?
3) Is there a way to mark songs as "part of a mix" and to disable shuffling for these songs?


THX, and have a nice day Smile
Reply
#2
I Use ID3Tag-It to do all my mp3 rips on my network. When I am done they work... go figure
Image
Reply
#3
Quote:BTW is there a bug in ParseMP3Genre()?
If i write a frame like "(4)something" the "something" (called refinement in the id3v2.3 docu) should be removed, but the code looks for "((something))"

Depends on how libid3tag returns the genre string. Check the code in libid3tag (found in docs).

Quote:1) How are multiple artists handled (displayed)?

They're displayed artist1 / artist2 / artist3. If the primary artist is the same across all tracks in an album, and no albumartist tag exists, then the primary artist is set as the album artist, but tracks will still display the full list.

Quote:2) What is the best way to organize double (or more) cd albums?

Set Part of Set tag and either all in the same folder, or in separate folders won't matter.

Quote:3) Is there a way to mark songs as "part of a mix" and to disable shuffling for these songs?
XBMC reads the iTunes "compilation" bool if albumartist isn't set, and sets the albumartist as "Various Artists" and places the set in the compilations node of the music library. Shuffling is a global function - it's either on for all, or off for all.

Cheers,
Jonathan
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


Image
Reply
#4
jmarshall Wrote:Depends on how libid3tag returns the genre string. Check the code in libid3tag (found in docs).

libid3tag returns it like it is
Code:
const id3_ucs4_t* id3_metadata_getgenre(const struct id3_tag* tag, enum id3_field_textencoding* encoding)
{
  return metadata_getstring(tag, ID3_FRAME_GENRE, encoding);
}

definition of the genre frame in id3v2.3:
The 'Content type', which previously was stored as a one byte numeric value only, is now a numeric string. You may use one or several of the types as ID3v1.1 did or, since the category list would be impossible to maintain with accurate and up to date categories, define your own.

References to the ID3v1 genres can be made by, as first byte, enter "(" followed by a number from the genres list (appendix A) and ended with a ")" character. This is optionally followed by a refinement, e.g. "(21)" or "(4)Eurodisco". Several references can be made in the same frame, e.g. "(51)(39)". If the refinement should begin with a "(" character it should be replaced with "((", e.g. "((I can figure out any genre)" or "(55)((I think...)". The following new content types is defined in ID3v2 and is implemented in the same way as the numerig content types, e.g. "(RX)".

jmarshall Wrote:They're displayed artist1 / artist2 / artist3. If the primary artist is the same across all tracks in an album, and no albumartist tag exists, then the primary artist is set as the album artist, but tracks will still display the full list.
Are all artists put into the database if i tag my mp3's like this?
And is there a way to use "artist1 / artist2" to get a clean database but display another string like "artist1 featuring artist2" (defined in another special "display" id3 frame)

jmarshall Wrote:XBMC reads the iTunes "compilation" bool if albumartist isn't set, and sets the albumartist as "Various Artists" and places the set in the compilations node of the music library. Shuffling is a global function - it's either on for all, or off for all.
Yes, but with mixed i mean a compilation where the single files are one huge continuous mix (often found on techno compilations).
Reply
#5
Quote:Are all artists put into the database if i tag my mp3's like this?
And is there a way to use "artist1 / artist2" to get a clean database but display another string like "artist1 featuring artist2" (defined in another special "display" id3 frame)

Yes, all artists are put into the database and linked to the song.

And no, nothing allows formatting of the artist string other than the " / ", as we have no way of knowing the intent of the grouping (featuring, vs full collaboration etc.)

The shuffling is global either on or off - it doesn't know or care about what is playing, so you should disable it (START on controller while music is playing) if you don't want a particular set shuffled.

If you supply me with a couple of mp3's that screw up the genre reading, I'll look to fixing it.

Cheers,
Jonathan
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


Image
Reply
#6
jmarshall Wrote:Yes, all artists are put into the database and linked to the song.

And no, nothing allows formatting of the artist string other than the " / ", as we have no way of knowing the intent of the grouping (featuring, vs full collaboration etc.)

Would it be possible to include "artist1//artist2//artist3" etc. instead of "artist1 / artist 2 / artist 3" as well?

The program I use for the tagging of my files (mp3tag) sadly puts "//" and no space between the artists instead of "/" and space. Confused
Reply
#7
I use mp3tag (http://mp3tag.de/en/index.html) to sort out my mess of files.

Then I use MIP to sort them into a correct structure (artist > ablum). MIP is also used for the visuals (images / fanart / cd covers / inserts, etc) with data from freecovers.net and fanart packs from here in the forums.

It will be interesting to see how the music side of MIP pans out. It's still under refinement for the release in 2 weeks, I could always use more testers for the music side of things.
Reply
#8
The separator is configurable via advancedsettings.xml
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


Image
Reply
#9
Thanks, did that. Is there a way to "force" an update of the library on certain folders or files? Updating the library of course doesn't do anything since the files have not been altered and are obviously recognized as being scanned already.
Reply
#10
Nope. You can do it manually with an SQL editor though - just set the path hash to something else, then UpdateLibrary.

Alternatively, just remove the db and rescan.
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


Image
Reply
#11
I can't get this sorted out somehow. What I would love to achieve is that the track Walk This Way by Aerosmith and Run DMC from the album Raising Hell shows up in the library under Aerosmith and Run DMC with the album Raising Hell. Is this possible through multiple artists or am I trying to achieve something that's not even possible?

Using MP3tag the artist tag looks like this:

"Aerosmith\\Run DMC". MP3tag produces ID3v2.3 tags.

First strange thing is that the tag of the same file looks like this in Foobar2000: "Aerosmith; Run DMC", like this in VLC Player: "Aerosmith Run DMC", iTunes doesn't even read the second artist. It's just Aerosmith for iTunes. Same goes for Winamp but admittedly my version of winamp is pretty outdated.

So I put this in advancedsettings.xml

<itemseparator> / </itemseparator>

I also tried

<itemseparator>\\</itemseparator>

and

<itemseparator> \\ </itemseparator>

and

<itemseparator>; </itemseparator>

Still I would only find the song under Aerosmith.

Another thing I just noticed is that I can't make a debug.log for some reason. The one in my folder is days old even though I enabled debugging. I'll try some more and will hopefully come up with a proper debug log. I'm using SVN 17788, Windows Vista Home Premium SP1.
Reply
#12
Make sure you're looking in the correct folder for the log.

In standard mode, it's in your Roaming folder.
In portable mode (started with -p) it's in XBMC's folder in Program Files.

And clearly you'll want <itemseparator>\\</itemseparator> if that's the separator you actually use.
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


Image
Reply
#13
are you sure you're using id3v2.3 and id3v2.4?
Reply
#14
marirs Wrote:are you sure you're using id3v2.3 and id3v2.4?

Hmmm, checking the options of MP3tag it says write "ID3v2 and ID3v2.3 ISO-8859-1". ID3v2 and ID3v2.4 UTF-8 would also be an option but right now it's set to "ID3v2 and ID3v2.3 ISO-8859-1".

Could that be it? Oh boy, I recently retagged many, many of my files. My gf's gonna hate me if I have to do it again. It'll cost...*sigh*
Reply
#15
Please take notice of what Jonathan is saying:
All odds are you are looking in the wrong directory
http://wiki.xbmc.org/?title=XBMC_for_Win..._stored.3F
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.
Reply

Logout Mark Read Team Forum Stats Members Help
How to tag MP3 files (id3v2)0