Niente Version 4 : Logical Inconsistencies

1.0 Introduction

Niente's check of logical inconsistencies within your FLAC music collection is a very subjective affair (as opposed to its detecting physical corruption, which is entirely objective). By this, I mean that in order to declare that something is inconsistent with something else, you have to have agreement about what "consistency" would look like: and for that, you need a set of agreed 'rules' about what makes for consistent data.

On this website, the 'agreed rules' are my Axioms of Classical Tagging, which I would urge you to read carefully if you haven't done so before now. Those axioms state that we should tag our FLACs with certain sorts of data in certain places; and that we should therefore expect to be able to compare what we find in place A with what is stored in place B, and so on. Niente uses this understanding of what to expect in order to detect when specific FLACs are tagged in unexpected ways.

It is quite possible that you do not agree with everything asserted in that article about tagging axioms. That's fine, but if you tag your FLAC files differently from what that article says should be done, then Niente isn't going to be of much use to you as a tool for detecting logical inconsistencies!

Let us, therefore, state here what Niente's 'rules' or expectations actually are. I will only summarise the key tenets of the Axioms article: as I say, you're encouraged to go read the entire thing to put everything in proper and complete context.

2.0 Niente's Expectations

Perhaps inevitably, we begin at Axiom 1, which states that the following tags are quasi-compulsory: COMPOSER, ARTIST, PERFORMER, ALBUM, GENRE, COMMENT, TRACKNUMBER, TITLE. Niente's simplest test for logical inconsistencies in your tagging strategy is therefore to check that all of these tags are, in fact, present in every single FLAC file it knows about. If it finds any missing, the Reporting -> General Reports Menu Option 4 Missing tags will detail in which files the problems arise.

Next, Axiom 2 says that the contents of the ARTIST tag should match the contents of the COMPOSER tag, precisely. Niente will detect whenever this is not true. A classic case from my own music library: I tagged "Arrthur Honegger" as the ARTIST and "Arthur Honnegger" as the COMPOSER. The one extra 'n' in the COMPOSER tag's surname is sufficient to break Axiom 2 and Niente's Reporting -> Logical Issues Reports Menu Option 5 Inconsistent ARTIST/COMPOSER tags will tell me this.

Meanwhile, Axiom 3 says that the complete set of performing artist details go into the COMMENTS tag. That is, if the album is called "Symphony No. 5 (Karajan - 1970)", we'd expect the COMMENTS tag to read something like 'Herbert von Karajan, Berlin Philharmonic Orchestra'. This, somewhat unfortunately, means that there's now a relationship between the COMMENTS and PERFORMER tags, arising from the operation of Axiom 6: if COMMENTS mentions 'Herbert von Karajan' somewhere in its long-form contents, the PERFORMER tag should do so too. Niente's Reporting -> Logical Issues Reports Menu Option 3 Inconsistent PERFORMER/COMMENT tags will details any files for which this isn't true.

We'll skip over Axiom 4, which states that the GENRE tag should be short, sweet and highly fuctional. That's a qualitiative judgment which Niente is not able to make! As mentioned above for Axiom 1, Niente can report on files that are entirely missing a GENRE tag, but if the tag is full of complete horse radish, Niente will not see that as a problem!

Moving on, therefore, to Axiom 5: this  states that the ALBUM tag should be filled with an 'extended composition name', in the form of "actual composition name (distinguishing artist surname - recording year)". That is, you'd end up with something like "Symphony No. 5 (Karajan - 1970)". This is fine from the logical standpoint (see my article on The Primary Keys to Music for an explanation of why the extended composition name is logically required if we are to distinguish any recording fully from any other), but it sets up two new relationships which can go wrong if you are not ruthlessly consistent in your tagging: clearly the ALBUM tag now mentions the word 'Karajan', which we already know will appear somewhere in the COMMENTS and PERFORMER tags; additionally, the YEAR (or DATE) tag is also now mentioned in both the ALBUM and YEAR (or DATE) tags -so those need to be consistent, too. Accordingly, Reporting -> Logical Issues Reports Menu Option 1 Inconsistent PERFORMER/COMMENT tags will check the YEAR/DATE tag and the ALBUM tag and make sure they mention a four-digit year correctly in both places. Similarly, Reporting -> Logical Issues Reports Menu Option 4 Inconsistent PERFORMER/ALBUM tags will similarly compare the ALBUM and PERFORMER tags: if ALBUM mentions "Karajan", it will be regarded as an inconsistency if the PERFORMER tag doesn't also mention the word Karajan somewhere in itself. It's OK if PERFORMER is set to "Herbert von Karajan" and ALBUM mentions "Karajan". That's OK: Niente doesn't expect the distinguishing artist's complete name to appear in the ALBUM tag, after all. So long as the abbreviated ALBUM performer name appears anywhere in the PERFORMER tag, that's OK.

Note that Niente will *not* perform the logical third step: if ALBUM is related to PERFORMER, and PERFORMER is related to COMMENTS, then technically the distinguishing artist name in ALBUM should relate to something in the COMMENTS tag as well as in the PERFORMER tag. This is true, but Niente won't check it directly. As far as it's concerned, it's warned you about ALBUM/PERFORMER issues (see above for Axiom 3) and PERFORMER/COMMENTS ones (see above for Axiom 5), and thus feels sufficient checks have been performed. Eliminate those two categories of logical inconsistency and the ALBUM->COMMENTS issue resolves itself, basically.

Axiom 8 doesn't really require anything specific of any particular tag, so we can skip on over that one and move on to Axiom 9, which states that every unique recording should start with a track number 1 (or '01': it makes no difference). Reporting -> Logical Issues Reports Menu Option 2 Inconsistent TRACK NUMBER tags will list any recordings for which this isn't true. If you rip the second symphony off that 2-symphony Beethoven CD, for example, and thus acquire tracks numbered 5, 6, 7 and 8... Niente will list that as a problem on this report.

Axioms 10 to 15 are, again, qualitative in nature, so Niente cannot check for how grammatically you tag, or whether you use all the names a composer was given at birth, for example! We can, however, jump to Axiom 16, which states that album artwork should (a) be of good quality and size and (b) be embedded within the FLAC file, not merely left as an 'associated file' on disk (such as folder.jpg, which is commonly done on Windows PCs). Niente's Reporting -> Other Reports Menu Option 1 Recordings with album art issues will list all FLACs for which these two rules don't apply. If there's no embedded artwork at all, or if it's ridiculously too small or too large, Niente will report the fact here. Additionally, though it's not mentioned anywhere in the Axioms article, Niente rather prefers square album art to non-square: so it will regard any embedded artwork that doesn't have matching width and height dimensions as a bit of a problem, too.

Moving away from the specific Axioms mentioned in my earlier article, : you can ask Niente to check the peak volume levels of all your recordings. If you then run Reporting -> Other Reports Menu Option 2 Recordings with possible volume boosts, Niente will use the persistent configuration file setting for 'Volume threshold' and review which recordings are quieter at their maximum than that.

Next, and also not related to the Axioms: if you use my Semplice program to tag your FLAC files, you may choose to take advantage of its configuration option to 'force filenames to display bitdepth/sample rate'. That means that if a file starts off being called '01-Allegro.flac', Semplice will adjust its physical file name to be something like '01-Allegro-16-44100.flac': the sample bit depth (16 bits) and the sample rate (44.1kHz) are thus 'baked into' the physical file name. Doing this makes for a handy way of distinguishing between ordinary CD and higher resolution SACD rips when using nothing more than your operating system's file manager to browse your music collection. Niente accordingly provides Reporting -> Other Reports Menu Option 3 Files missing sample rates in names to identify any files which do not include these bit-rate and sample-depth indicators in their physical file names.

Lastly, Semplice also allows you to 'concatenate' files making up a single recording into a single physical FLAC file, which is thereafter referred to as a 'SuperFLAC'. See the Semplice User Manual on the subject for details. Niente's Reporting -> Other Reports Menu Option 4 Albums with multiple physical files will report on any recording which is still comprised of per-track FLACs, rather than a single SuperFLAC. Thus, if your 'Symphony No. 5' folder contains 4 separate tracks, one per movement, then that counts as 'multiple physical tracks per recording'; whereas if there's a single SuperFLAC that contains within itself the four separate movements, that would not be reported as an issue. Use of SuperFLACs is entirely optional, so unless you commit to doing it, you don't have to worry about the existence of the Option 12 report.

Summing all this up, therefore, we can say that Niente detects and reports on:

  • Missing COMPOSER, ARTIST, PERFORMER, ALBUM, GENRE, COMMENT, TRACKNUMBER and TITLE tags
  • DATE tags which don't match the date included in the ALBUM tag
  • TRACKNUMBER tags which don't start with '1' (or '01') for each new recording
  • PERFORMER tags which don't match the contents of the COMMENTS tag
  • PERFORMER tags which don't match the 'distinguishing artist' name included in the ALBUM tag
  • COMPOSER tags which don't match the ARTIST tag
  • Embedded ALBUM ART which is (a) non-square; (b) too small; (c) too large; or (d) non-existent
  • Recordings whose absolute peak loudness level permits of a volume boost of at least +1dB
  • Files whose names do not include sample rate and bit-depth identifiers
  • Recordings comprised of more than a single FLAC (i.e., per-track recordings, rather than SuperFLACs)

In this way, Niente applies most of the Axioms of Classical Tagging in a highly practical way. Naturally, if you don't tag your music precisely the way the Axioms suggest you should do, then some -or even many- of the Niente reports I've mentioned will be of no use to you. If you don't think the composer's name should go into the ARTIST tag, for example, then Niente's insistence on reporting on files where ARTIST doesn't equal COMPOSER is going to be of no use to you. Well: Niente can't change the way it was written, but you can of course ignore that particular report whilst continuing to make productive use of the other ones it can produce for you. Your tagging choices thus remain yours, though Niente's usefulness will vary depending on what choices you make.

3.0 When does Niente check for Logical Inconsistencies?

Niente only actually reports on all the various forms of logical inconsistency described above when you run the various reports to detail them, using the many options found in the Reporting menu.

Every one of those reporting options, however, depend on using the contents of the Niente database, and those are only created or updated as follows:

  • New recordings are only ever added to the database by taking the Database menu Options 2 or 3 ("Wipe & re-load a database from scratch" or "Add/Remove music files incrementally". The difference between the two options is that Option 2 wipes the database and re-populates from scratch it by having a fresh scan of your hard disk. Meanwhile, Option 3 leaves existing recordings where they are and only adds new or modified files into the database.

In either case, the Database menu options only end up saying 'These files exist': it does not trigger any analysis of the nature or metadata tags associated with those files.

  • Those files known to exist are inspected and analysed by taking the Integrity Checks menu, Options 1, 2 or 3 ("Perform a full integrity check", "Perform a differential integrity check" or "Perform a fast integrity check").

The difference between these three options is simply this:

  • Full Check = Wipe all existing records of physical and logical data about the FLACs listed in the database and re-compute them from scratch by re-reading every single FLAC (could be slow on a large collection of music files)
  • Differential Check = Re-visit every music file which is known from previous checks to contain physical or logical inconsistencies or which has never previously been checked and re-compute its physical and logical characteristics from scratch (relatively fast as only 'files known to be in error' are re-visited)
  • Fast Check = Re-visit every music file which is known from previous checks to contain only logical inconsistencies or which has never previously been checked and re-compute its logical characteristics from scratch (much faster, as not only are a sub-set of 'files known to be in error' are re-visited, but time is not spent re-computing and re-comparing their physical characteristics: i.e., no hash-computation of the audio signal from within the files are performed)

In all cases, an integrity check only ever inspects music files which are listed in the database. If you've added a new recording to your collection, for example, you'll first need to do a 'Add/Remove files in a database' operation to get the new recording into the database at all; and then you'd do a Differential or Fast integrity check.

Be aware that the full, differential or fast integrity checks do not check volume or album art matters. If you want to report on those as potential problems you'll first need to take one of the Integrity Checks menu, Options 4, 5 or 6 or 7 ("Check album art for all files", "Check album art for new files", "Check all files for volume boosts" and "Check new files for volume boosts") as a separate option. Album art checks always re-scan the entire collection of music files known to exist because it is relatively fast. Volume boost scans, however, can take a long time to complete if every file is re-visited (Option 5), so Option 6 is provided to allow for volume scans to take place for files that have not previously had their volume levels checked. In every case, the art or volume checks can only analyse files that are mentioned in the database, so if you add a new recording to your collection, you'll have to (1) Add/remove files in a database first; and then (2) run the art or volume checks. Only then can the reports on possible art or volume problems pick up on the new data.


|[Back to Front Page]|