Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • gnome-music gnome-music
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 125
    • Issues 125
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 42
    • Merge requests 42
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • GNOMEGNOME
  • gnome-musicgnome-music
  • Issues
  • #293
Closed
Open
Issue created May 29, 2019 by Sumaid@SumaidReporter32 of 35 checklist items completed32/35 checklist items

GSoC Project: GNOME Music and MusicBrainz Integration

Google Summer of Code - 2019:

  • Student: Sumaid ("sumaid" on irc)
  • Mentor: Jean Felder ("ptitjano" on irc)
  • Blog Link: https://jsoc.home.blog/

Objectives of the project:

  • Retrieve MusicBrainz IDs for files
  • Retrieve metadata from AcoustID database - return all the results
  • Add functionality to edit tags of songs
  • Retrieve tags for songs/albums from MusicBrainz database
  • Retrieve cover-art for music albums

a) MusicBrainz IDs:

Grilo currently supports the following MusicBrainz IDs:

  • Track ID
  • Recording ID
  • Release ID
  • Release Group ID
  • Artist ID

Above 5 MBIDs should be enough to retrieve cover-art and tags, hence we'll store only these 5 MBIDs in the tracker.

  • Store the MBIDs in the tracker

  • If a file already has MBIDs, then extract them through tracker-miners extractors:

      • GStreamer Extractor

      GStreamer does not support Recording and Release Group IDs tags. Hence support for same needs to be added in GStreamer.

        • Repair support for MBIDs in GStreamer
      • MP3 Extractor
      • OGG Extractor

Metadata Retrieval:

Both songs and albums will have similar parts

Metadata Tags for songs:

  • Title
  • Album
  • Artist
  • Track Number
  • Disc Number
  • Year ( Creation Year )

Timeline:

Week 1 ( Till 11th June): All of the following have merge requests in progress:

  • Store the MBIDs in the tracker
  • Finish ogg extractor [[Easy]]
  • Finish mp3 extractor [[Medium]]
  • Finish MBID Tags repair in GStreamer [[Medium]]
  • Finish gstreamer extractor [[Easy]]
  • Deprecate use of album id [[Medium]]
  • Grilo-tracker MBIDs mapping [[Easy]]

Week 2 ( 12th June - 18th June ):

  • Unbreak Writeback => Carlos Garnacho's working on it
  • Query MusicBrainz IDs in GNOME Music [[Medium]]
  • Replace album id instance in grl-musicbrainz
  • Retrieve Cover art from MusicBrainz

Week 3 ( 19th June - 24th June ):

  • Make a plan for metadata retrieval

Week 4 ( 28th June - 5th July ):

  • Tracker: Store Chromaprint in Tracker Database
  • Tracker-miners: Extract acoustid fingerprint with mp3 extractor
  • Tracker-miners: Extract acoustid fingerprint with ogg extractor
  • Tracker-miners: Extract acoustid fingerprint with gstreamer extractor
  • Grilo: Introduce Chromaprint Grilo Property (Not Required)
  • Add Chromaprint tag support to GST: Update GST MR
  • Grilo-Plugins: AcoustID Return Multiple Results - Query Operation

Week 5 ( 5th July - 26th July ):

  • Tag Editor: Songs:
  • Basic Functionality
  • Clean up UI
  • Writeback:
  • Writeback of tags & chromaprint
  • Tracker Properties Writeback Flag
  • Add more keys to writable keys

Final Phase:

  • Grilo-Plugins: Add query operation to acoustid plugin
  • Grilo-Plugins: Fix one minor issue in acoustid plugin
  • Grilo-Plugins: grl-musicbrainz Lua source
  • Music: Tag Editor MusicBrainz Plugin Support
  • Tag Editor: Albums
  • Music: Albums Tagging using acoustid & musicbrainz
  • Music: MusicBrainz CoverArt Plugin Support
  • Grilo-Plugins: grl-musicbrainz-coverart Plugin

Future Goals:

  • MusicBrainz IDs should be stored similar to hashValue & hashAlgorithm in tracker db
  • AcoustID Plugin should allow retrieval through AcoustID ( This will require introducing acoustid in tracker/grilo)
  • Multi-songs & Multi-albums Retrieval
  • Upload a local image as cover art for the file
  • Adding missing files to albums

References:

Past Work

GSoC Idea

Official MusicBrainz mapping

Edited May 21, 2020 by Jean Felder
Assignee
Assign to
Time tracking