• Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login

    support dates in track metadata (including sorting), not just the year

    Scheduled Pinned Locked Moved
    Feature Suggestions
    1
    1
    38
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Q
      qralston
      last edited by

      First: Strawberry is an awesome player; thank you Jonas for the effort you put into it! (And thanks to everyone else who has contributed!)

      TL;DR: while Strawberry supports various metadata tags for specifying the year and/or date of a track, Strawberry appears to use only the year of the track for sorting, even if the full date was available. For artists that release prolifically (dozens or even hundreds of releases each year), this makes it impossible to sort the artist’s releases in Strawberry by chronological release date: releases are sorted chronically by year, but then lexicographically within each year. Strawberry should internally store the date of a track (if available in the track’s metadata; see below) and offer it as a sorting option.

      Background:

      Early ID3 specifications only permitted specifying the album date as the year:

      • TYER: year (4 characters; YYYY format)

      Subsequent revisions (e.g., id3v2.3.0) defined additional fields:

      • TORY: original release year (4 characters; YYYY format)
      • TDAT: date of the recording (4 characters; DDMM format)

      However, because MP3 was the first music encoding format with wide Internet popularity, and most players initially supported only MP3, most players stored the date of album internally as the year. When subsequent revisions to the ID3 specification permitted specifying the full date, most encoders and players ignored it.

      The Vorbis comments specification defines:

      • DATE: the date the track was recorded

      Because Vorbis comment fields encode the length of each field, the DATE field is not limited to 4 characters, so it is possible to use ISO date strings (e.g., YYYY-MM-DD) in the DATE field.

      However, given the behavior of many players to show only the year component of the DATE comment, the use of informal Vobis comment fields arose to indicate the precise date of an album. These fields (all in ISO-8601 primary format) seem to be in use:

      • RELEASEDATE: the date the album was released
      • ORIGINALDATE: the date the album was originally released

      And, indeed, Strawberry appears to support parsing the ORIGINALDATE field (in src/tagreader/tagreadertaglib.cpp).

      But, internally, Strawberry appears to use only the year information:

      • Strawberry's only chronological sorting option is by year, not by date.
      • If the DATE field of a track was specified as YYYY-MM-DD, Strawberry truncates it to just the year component in the Tags tab of the Edit track information window.
      • Neither the RELEASEDATE nor ORIGINALDATE tags are displayed in the Tags tab of the Edit track information window.

      Furthermore, Strawberry does not appear to differentiate between the release year/date of a track, and the original release year/date. Both common tagging systems can convey this information: ID3 has TORY (year only); informally, Vorbis comments have RELEASEDATE and ORIGINALDATE.

      I would argue that Strawberry should load all of the following metadata (if available) from a track:

      • the year (ID3 TYER; Vorbis DATE)
      • the date (ID3 TDAT; Vorbis DATE or Vorbis RELEASEDATE)
      • the original year (ID3 TORY; Vorbis ORIGINALDATE)
      • the original date (not available for ID3; Vorbis ORIGINALDATE)

      It should be possible to sort chronologically by either the release date, or the original release date.

      Displaying and/or editing these data in the Tags tab of the Edit track information window would become more interesting, but I think it is doable:

      • Have a radio toggle to control whether the original release date is represented as the year only, or as YYYY-MM-DD. When the metadata is loaded from the track, the toggle is set to the correct position, based on what metadata was available.
      • Have a similar radio toggle for the release date, with the same loading behavior.
      • When saving metadata, attempt to represent whatever metadata the user entered, but discard data that cannot be stored by the track’s tagging standard. (E.g., ID3 can only record the original release date as the year, not the full date.)

      Thoughts?

      1 Reply Last reply Reply Quote 0
      • First post
        Last post
      Powered by NodeBB | Contributors