--------------------------------------------------
Background
--------------------------------------------------
Directory structures and file naming conventions have been discussed at least 3 times on these forums:
http://www.hydrogenaudio.org/forums/lofive...php/t21847.html
http://www.hydrogenaudio.org/forums/index....showtopic=20699
http://www.hydrogenaudio.org/forums/index....showtopic=17258
I learned much from reading the posts above, but I have my own ideas too, so I would love to receive your feedback before ripping my CD collection.
(I will be doing this using EAC along with the latest LAME--3.97beta at the time of this writing--with these settings
-V 0 --vbr-new --id3v2-only --pad-id3v2 --ta "%a" --tt "%t" --tl "%g" --ty "%y" --tn "%n" %s %d
which should yield archival quality mp3s. Yeah, yeah, I know: probably could get away with -V 2 or -V 3, but this unassailable sound test
http://www.hydrogenaudio.org/forums/index....showtopic=36465
found that -V 2 and -V 3 still suffer slightly, and I have a lot of classical music, and I only want to do the ripping once. By the way, guruboolez, if you are reading this posting, how well does -V 0 sound for your classical music? Any artifacts left at that point? I was very impressed with your listening procedure.)
I have decided that I will put most of the metadata (artist, album, year, etc) into the filename, even tho some of it is redundant with the directory structure that I will store stuff in, as well as redundant with the ID3v2 tags that I will use. One reason for this is because if I copy the mp3s to a CD (e.g. to play on a portable player), I may need to put the mp3 files into a flat file structure because the portable player may not understand how to drill down into directories and play the files. (Does anyone know for sure how common of a problem this is? I recall having this problem a year ago with a player when I last tried burning an mp3 CD, but have no idea how common it is.)
Along with many others in the above postings, I think that a top-down hierarchical organization is the only way to go for information like this (e.g. so that the file system puts the files in usually correct sort order, at least for how I want things to appear).
--------------------------------------------------
Directory structure\file name proposals
--------------------------------------------------
The essential cases are:
1a) single artist album (most common case):
artist\yyyy ~ album\artist ~ yyyy ~ album ~ nn ~ trackTitle.mp3
2a) multiple artist (i.e. compilation) album:
_variousArtists\yyyy ~ album\yyyy ~ album ~ nn ~ artist ~ trackTitle.mp3
Here:
--items before each backslash char ('\') are directory names (i.e. windows is assumed) and what comes after the last '\' is the file name
--yyyy is the 4-digit year that the album came out
--nn is just the track number for single disk albums. However, if there are multidisks, then handle by inserting
Disk dd
before
nn
where dd is the disk number. For example, case 1a) when there are multidisks becomes
artist\yyyy ~ album\artist ~ yyyy ~ album ~ Disk dd ~ nn ~ trackTitle.mp3
Complications arise when you realize that "artist" can have multiple meanings. Consider, for example, classical music in which composers and performers are usually distinct and both can be considered as the "artist". To handle these subcases, I propose that "artist" be understood as the compound "composer ~ performer". To make this explicit:
1b) single composer and single performer album (e.g. typical classical album):
composer\yyyy ~ album\composer ~ performer ~ yyyy ~ album ~ nn ~ trackTitle.mp3
2b) multiple composers and/or multiple performers album (the nightmare case):
composerPrimary\yyyy ~ album\yyyy ~ album ~ nn ~ composer ~ performer ~ trackTitle.mp3
or
_variousArtists\yyyy ~ album\yyyy ~ album ~ nn ~ composer ~ performer ~ trackTitle.mp3
--------------------------------------------------
EAC codes
--------------------------------------------------
The EAC filename codes for the above cases are:
1) single artist:
%A ~ %Y ~ %C ~ %N ~ %T
2) multiple artist:
%Y ~ %C ~ %N ~ %A ~ %T
where artist may need to be adjusted (e.g. in freedb) to be the coumpound "composer ~ performer" (see comments below).
Note: apparently, you need to manually type in the disk number for multidisk albums, as EAC appears to have no code for this; correct me if I am wrong.
Also, does anyone know how EAC's %A tag ("which it describes as "CD or track artist") differs from the %D tag ("CD artist")?
--------------------------------------------------
Comments
--------------------------------------------------
1) every metadata item, without exception, is separated by a special char. This is both for visual clarity and human readabiliy, as well as it makes it trivial to write a computer program to parse the info.
I choose the tilde ('~') as my separator char because:
a) I have never seen it as part of normal text (e.g. part of a song title); this is an absolutely critical in order to eliminate ambiguity (e.g. for the computer program mentioned above, as well as a human looking at it); if you do not choose a char like this, then you need some sort of character escape mechanism to distinguish meta charaters from text characters
b) it is a valid file name char in all operating systems that I am aware of (please enlighten me otherwise)
c) it visually looks good as a separator char
Note that the usual choice that people make for a separator char is the hyphen ('-'). This is something that people have just not thought thru: it violates condition 1), which means that its use as a separator can be totally confused with its use inside text. This gets even worse when you consider that a lot of text like a work's name contains colons (':') in it, but colons are illegal file name chars, so you need to replace them with something else, and a natural replacement char is a hyphen. (See also comment 6a below.)
2) I put a leading underscore char ('_') in front of the _variousArtists words since that will cause all such directories to be listed first, and then come the normal single artist files. Why? Because I think that it is strange to have all of the compilation albums in the middle of the V section with normal albums listed both before and after. To my mind, they should all consistently either be listed first or all listed last. If you have a suggestion for a better looking or more appropriate non-alphanumeric character which achieves this, please suggest it.
3) yes, in the future, I will probably have multiple genre directories to further sort things, each of which will contain subdirectories with the above form.
4) I am aware that modern versions of windows are limited to 256 chars in the names of directories and files, and that you can only have 256 levels of directories. Intelligent operating systems, such as various flavors of unix, may have much higher limits.
But the real problem comes when you try to burn files to optical disks: the utter piece of shite ISO 9660 format (esp level 1, which imposes old dos 8.3 style names!) is hopeless; you have to use UDF (ISO 13346)
http://en.wikipedia.org/wiki/Universal_Disk_Format
which apparently gives you 255 char long filenames and total path names up to 1023 chars
http://msdn.microsoft.com/library/default....leio/fs/udf.asp
I think that the above format should almost always fit into UDF.
Does anyone have comments on the filename constraints of typical portable players like iPods and iRiver?
5) I have been toying with the idea of eliminating the distinction between cases 1 and 2 by always using the format
yyyy ~ album ~ nn ~ artist ~ trackTitle.mp3
The problem is that I really want stuff to be sorted by artist for those (the majority) of cases where there is a single artist.
6) freedb, which is used by EAC for disk information has a lot of issues:
a) the text often contains characters that are illegal in filenames, especially colons (':') and slashes ('/'). I did a test just now and found that EAC replaces '/' with comma (',') and '\' & ':' with hyphens ('-'). Should I just accept the transforms that EAC will do, or should I change the text manually to a file name safe form and resubmit to freedb?
b) a lot of the people who have submitted info to freedb seem not to have thought thru all the issues that I raised above, particularly in terms of how to handle compound artists (i.e. I have seen the artist field contain sometimes just the composer or sometimes just the performer).
The closest to a discussion on the freedb site that I found concerning this is the freedb rules for compilation albums
http://www.freedb.org/modules.php?name=Sec...le&artid=26#2-2
which recommend using
"artist / track-title"
But no mention is made in that url on how to handle coumpound artists, not to mention their problematic recommendation to use the '/' char which cannot appear in file names.
If this forum can come to a consensus as how to handle some of these issues, should we lobby freedb to include them in their guidelines?
7) this is a bit off topic, but why is the official lame site
http://lame.sourceforge.net/
so out of date? They list "Latest LAME release : v3.96.1 July 2004" when hydrogenaudio has proclaimed that 3.97beta is the latest recommended release.
Speaking of lame, if lame appreciation month
http://www.hydrogenaudio.org/forums/index....showtopic=38190
is ever reopened and I am aware of it, then I would gladly donate some money (I failed to notice the last one in time). To any lame developer reading this: thanks much, your eforts are very appreciated.
