Music Library Development Roadmap – One Man’s Plan

I am going to try to maintain this thread as a summary of my current work in progress on improving music library features for the Kodi v18 Leia release. Here you will find a basic road map of what is currently being developed along with my todo list. Any help others can offer – testing, discussing design, documenting or just being fun to hang out with and share my moans – is very welcome. If anyone has the skill, time and interest to set up an IDE and get involved that way then great.

At any time there will be a music test build available with my work so far.
Currently 391b8893c3-CueSheets
This is from my repo, and several PRs ahead of Leia master, because of the delays in getting review and approveal to merge so it can appear in the nightlies. As all my work is focussed in one area it is often cumulative, so I can’t raise later PRs until the first is merged without a lot of review confusion. Testing of my work before merge will help with the review/approveal process.

I will probably split any testing feedback or feature discussion posted here into a new thread, to stop this thread growing too big and becoming unreadable. Watch out for those when posting.

Work Completed (inc. waiting for review)

  1. (P) Forced scanning of tags
    Option (add <promptfulltagscan> to advancedsettings.xml) to be prompted for a forced scan of tags when rescanning a source from context menu of fileview. Very useful when testing changes to tag processing. The need for a forced scan is now held in the db, so with client server setups you only get prompted once after an upgrade, not every client. https://github.com/xbmc/xbmc/pull/11557
  2. (F) Cleanonupdate
    Fix implementation (to match video) as since Gotham this option was accidentally preventing any subsequent scraping additional album or artist information, and failed to clean the library when no files were being scanned for tags. https://github.com/xbmc/xbmc/pull/11609
  3. (N) Tags: WRITER, BAND and ENSEMBLE
    Add processing of WRITER tag, correct BAND and ENSEMBLE tags (Vorbis and APE formats). https://github.com/xbmc/xbmc/pull/11735

    That is in the current nightly build 3rd March 2017

  4. (N) Artist sort names – Phase #1
    Add processing of ARTISTSORT (TSOP), ALBUMARTISTSORT (TS02) and COMPOSERSORT (TSOC) tags to provide a sort name for artists. Optionally use field this when sorting artists, albums or songs by artist name.https://github.com/xbmc/xbmc/pull/11738
  5. (F) Duplicate Musicbrainz track ids within in an album
    It is fairly rare but Musicbrainz track ids are not always unique, tracks with the same id can be repeated e.g. silence or on multi-disc anthology albums. Kodi simply didn’t load these. https://github.com/DaveTBlake/xbmc/pull/5
  6. (F)Cuesheet regressions: replay gain and db design
    Refactor db implementation of cuesheets to avoid needlessly slowing the songs node (disabled for v17 anyway), and actually have replay gain applied for library items. Fix other oddities in playback of embedded cuesheet songs from file view. https://github.com/DaveTBlake/xbmc/pull/6

    In test build: 391b8893c3-CueSheets

  7. Replaygain reduction clipping protection option
    Restore option for replaygain reduction as clipping protection. See forum thread and https://github.com/xbmc/xbmc/pull/11865

(N) = New feature, or major improvement
(P) = Partial, more phases to come later.
(F) = Fixing bug

In Progress (active and backburner)

  1. Tags: ORIGINALDATE(TDOR), DATE(TDRC) and RELEASEDATE (TDRL)
    How users can optionally see music by the date it was originally produced, rather than just have “year”
  2. Smart Playlist Rules, Filtering and Default Nodes
    A unification of SQL Query building so that filtering and navigation from playlist results combines query logic correctly. Essential ground work so before filtering and navigation options can be extended.

Todo
This is the stuff that I feel I have a reasonable chance of dealing with as a single dev, or have a strong interest in. I know there are lots more request for things people would like, and major changes that are beyond me. I am happy to collaborate or offer support where I can.

I’m just one man so hitting this thread with posts for lots of feature requests (or reminders of what has been requested before) genreally is not going to work; making my todo list unmanageably long is easy. I suggest you create your own thread for those, I will see them and respond if I can. I would love to be able to do more I really would.

But as I am out of energy to type up my paper “todo” list here right now, there is a window of opportunity for others to helpfully post some friendly reminders. But I will be deleting posts and editing etc., so do not take offense if that happens to your post. I declare this thread is mine to do with as I will!!!