Questions about the ORIGINALDATE and DATE tag

Hello,
I noticed that the Original Release Date tag (or ORIGINALDATE as shown in Vorbis) holds a YYYY-MM-DD value. I was wondering if that field can also hold YYYY-MM or YYYY values. There are albums where the day of the release is not known. Or maybe both the month and day are not known, just the year. So, should I always insert into ORIGINALDATE the most data I have about an album?

albums

Also, I noticed that DATE is used in Picard to specify the DATE of the release (not original realase). For example, if Laura Branigan’s 1982 album was remastered in 1994, then DATE will hold 1994, the date of the remastered album. Is it correct to store the date of the remaster in the DATE field?

Yes. Though this also depends on if your media player can display full and partial dates as not all can.

There are other threads on this one. Generally a historic thing is driving the current use. We used to only have that one date field, so it would get the release date of that CD. There are a few threads around now shaking out better use of date fields as some people want the date the Track was recorded when on a Various Artist compilation.

Most of the players I use on Linux such as Lollypop only rely on the DATE field for sorting albums and I would rather have the original year in it than the reissue or remaster date.

Someone will give you a line of a script soon that will do exactly that. Not being a script wizard I can’t help, but it is a common request.

1 Like

You can simply overwrite DATE with the value of ORIGINALDATE:

$set(date,%originaldate%)
$delete(originaldate)

The second line would delete the now redundant tag ORIGINALDATE if you only want to keep its value in DATE.

3 Likes

Thank you. Should I add this script in the Options => Options => Scripting?

By using this scripting feature basically I can remove any tag that I don’t need?

You can customise tags to an extreme extent. Go track down the manuals and other threads on this.

There are also tools coming in the next release that will make choosing sets of scripts to apply easier.

These scripting tools open up a huge amount of power in Picard.

3 Likes

Just a note that leaving MBID tags will be useful later.

Picard uses those to automatically match your tracks to the album again next time you drop them in. So if you change your mind, or discover a mistake in your script, you can re-tag your whole collection again quickly(ish). Otherwise you will be starting over each time you want to make a change :grin:

2 Likes

Thank you. You guys rock! I got a lot of help on this forum and I’m very grateful for it. I’m just amazed how nice this community is.

I noticed that Picard follows a naming guide on the website. A few months ago I started following Mignon Fogarty’s way of capitalizing for naming my songs How to Capitalize Words in Titles | Grammar Girl

she gives out a set of words in her article that should be lower cased regardless of the part of the speech: “a,” “an,” “and,” “at,” “but,” “by,” “for,” “in,” “nor,” “of,” “on,” “or,” “out,” “so,” “the,” “to,” “up,” and “yet.” but only lowercase them if they are not the first or last word.

I was just wondering if it’s possible to write a script that capitalizes all words in song titles except those mentioned above. I’m Just curios if it can be done with the functions that the scripting language provides.

1 Like

This is a bit off-topic and should likely be in a new thread, but I believe that you can (in a round about way). Something like:

$setmulti(_words,a; an; and; at; but; by; for; in; nor; of; on; or; out; so; the; to; up; yet)
$set(_temp,$title($lower(%title%)))
$foreach(%_words%,$set(_temp,$replace(%_temp%, $title(%_loop_value%) , %_loop_value% )))
$set(title,%_temp%)

Note the single spaces before and after $title(%_loop_value%) and %_loop_value% in the $replace() statement.

1 Like

Actually, using $rreplace() makes it a bit more robust as:

$setmulti(_words,a; an; and; at; but; by; for; in; nor; of; on; or; out; so; the; to; up; yet)
$set(_temp,$title($lower(%title%)))
$foreach(%_words%,$set(_temp,$rreplace(%_temp%,\([^a-zA-Z]\)$title(%_loop_value%)\([^a-zA-Z]\),\\1%_loop_value%\\2)))
$set(title,%_temp%)
2 Likes

Unless I’ve missed something then MusicBrainz releases/data should already be following those rules (for English):
https://musicbrainz.org/doc/Style/Language/English

We even have a ‘Guess Case’ button when you’re editing a release that will make some changes for you to fit that style. In particular that button lower cases those short words you mentioned, and upper cases all the the rest.

Ideally if a release didn’t have this set properly you would edit the release in the database and fix it for everybody. But if you just want to fix those odd cases in your tags @rdswift has already got you sorted :ok_hand:

Note that Title Case style doesn’t override artist intent in MB - so if an artist made a specific decision to have a track/s capitalised differently then we leave that. Similarly, I’m sure Grammar Girl would also not recommend changing the caps for a word in a title that was meant to have strange caps - for instance, a brand name like ‘MusicBrainz’. So move with caution when trying to apply such a general rules to a lot of tags!

2 Likes