We have some debate over at the code review to add support for per track original release date to Picard.
This is a feature that is come up a couple of times here in the forums. Current versions of Picard use the first release date provided by the release group (the earliest release date of all the releases inside the group) to fill the originaldate
tag. For many use cases this is fine. But it not always reflects the actual first release of each track. E.g. a compilation might have been released in 2020, but the recordings had already been released at different years over the past decades. See this, this or this discussion.
In the past the answer to this has always been that this would be great to have, but difficult to query without change to the MusicBrainz web service. Now work for providing a first release date per recording is in progress (and partially already deployed), and we would like to have this integrated into Picard.
In the discussion for the proposed changes to Picard there seems to be a consensus that it is useful to provide both dates separately as scripting variables, so they can be used in scripting independent of each other. The proposed change would add two variables %_releaseoriginaldate%
and _%recordingoriginaldate%
that can be used in scripting.
The questions that have come up in the discussion (as far as I understood it):
- Should the recording’s first release date be the default, or should the default still be the first release date of the release group?
- If there is a default, should there be a user option to change the default or is it enough to use scripting to customize the value of
%originaldate%
? - If there is an option, should there be an extra warning that the option changes the values of tag variables?
Note that setting the recording’s first release date means different recordings on a release can have different values for originaldate
, which would have an effect if you use this date e.g. as a folder name.
The new scripting variables mean you can e.g. use a script to choose which value (_recordingoriginaldate
or _releaseoriginaldate
) to use for the originaldate:
$set(originaldate,%_recordingoriginaldate%)
Or with a fallback:
$set(originaldate,$if2(%_recordingoriginaldate%,%_releaseoriginaldate%))
Or choose depending on some condition, such as using the recording date for compilations but the release group date otherwise:
$set(originaldate,$if($inmulti(%releasetype%,compilation),%_recordingoriginaldate%,%_releaseoriginaldate%))
You could also choose to have the recording first release date in the tags, but use %_releaseoriginaldate%
for file naming.
Opinions on what to choose as default and whether a specific UI option is needed or if it is sufficient to allow this for scripting?