Skip to content

️🛠 - Add additional metadata fields (Remixer, Album Artist, Track Number) #85

@maxwellmattryan

Description

@maxwellmattryan

Description

These metadata fields are standard in Rekordbox and commonly used in dance music but missing from Crate. Remixer is essential for electronic music, Album Artist is important for compilations, and Track Number enables album ordering.

Fields to add:

Field DB Column Audio Tag Source Export Mapping Notes
Remixer remixer TEXT ID3: TPE4, Vorbis: REMIXER PDB remixer field Very common in dance music
Album Artist album_artist TEXT ID3: TPE2, Vorbis: ALBUMARTIST PDB album_artist field Important for compilations
Track Number track_number INTEGER ID3: TRCK, Vorbis: TRACKNUMBER PDB track_number field Album ordering

For each field:

  • DB migration adding the column
  • Update Rust Track model and TypeScript Track type
  • Metadata extraction from audio file tags on import
  • UI: column in track list, editable field in track editor, bulk edit support
  • Export mapping to PDB/Device Library Plus
  • Rekordbox sync (🛠 - Add library syncing with Rekordbox #39): map to appropriate djmdContent fields
  • Smart playlist support where applicable (text conditions for Remixer/Album Artist, numeric for Track Number)

Open questions

  • Should these fields be writable back to audio file tags, or database-only?

Acceptance criteria

  • Tracks have remixer, album_artist, and track_number fields stored in the database
  • All three fields are extracted from audio file metadata on import (ID3: TPE4/TPE2/TRCK, Vorbis: REMIXER/ALBUMARTIST/TRACKNUMBER)
  • All three fields are visible as columns in the track list and editable in the track editor
  • All three fields support bulk editing across multiple selected tracks
  • All three fields are included in USB export (PDB/Device Library Plus)
  • Remixer and Album Artist are available as text conditions in smart playlists; Track Number as a numeric condition

Tasks

TBD

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions