August 01, 2017 in bliss by Dan Gravell
Here's an idea I'd like your feedback on; I've been considering it for years (!) so I thought it was time to write it down.
Ruleset selectors would be a way of applying different bliss settings to different albums. It could be used for defining different locations for compilations, or adding artifacts to album names for 24 bit releases, for example.
How ruleset selectors would work
First, it might be easiest to apply the idea to how bliss currently works. Currently, when using bliss, we select the root music folder(s) and then configure a set of rules to apply to them.
This can be considered a ruleset selector - the selector is the location of the music files, and the ruleset are the rules for album art, genres, missing tags, incorrect tags and whatever else you have configured.
The first step is to imagine if you could define different rulesets for different music folders. When bliss scans an album, it chooses the relevant ruleset for its location, and uses those rules to assess the album.
Now imagine if the selector wasn't just the location of the album. It could be anything; the bitrate, the file format, you could even check the current tags to decide which ruleset to apply to an album.
Why is that useful?
There are a lot of cases where this could be useful.
You could configure specific file organisation patterns for different types of album. For example, compilation albums or spoken work albums could be stored in a hardcoded
It could be used to implement per-album custom rules, or ignoring certain rules for certain albums.
It would be a more elegant (in my opinion) way of implementing conditional logic for file patterns.
Tags could be derived in a different way depending on the selector ( tag derivation is another idea I thought up, maybe another post about that soon!). For example, adding disc number artifacts to album titles (Orchestral Works (Disc one)) or adding the file format or bitrate or sample rate to higher quality releases (Orchestral Works [FLAC]).
Where you have separate libraries in different locations, different rules could also be added. For example, you may have separate folders for different people, different clients or more. Each would be able to have different rules, or derive their rules from a core set of rules and customise certain ones.
There are two main challenges that spring to mind: how this is presented, and how ruleset selection works when there are multiple competing rulesets with different selectors.
The user interface has to balance being easy to construct rulesets for power users, with getting-out-the-way for those who just want to fill in some missing artwork then stop. Ideally, the there should be no more what's this mean?-type friction than there is currently (ideally less, with other improvements).
Ruleset selection is an interesting one. Ideally the most specific rulset that matches a given album should be selected. How that is worked out is to be decided, maybe some way of scoring criteria. Whether a fallback ruleset is desired in case nothing matches (other than location) is questionable; bliss already just marks albums compliant when no rules are configured.
Thanks to Abigail Keenan for the image above.