Niente Version 4 : Fixup Scripts

1.0 Introduction

It is a core tenet of Niente that it only ever reads and analyzes your FLAC files: it never modifies them. However, by its nature, Niente will reveal past poor tagging decisions which, perhaps, affect many hundreds or thousands of recordings and which would be real pain to have to fix manually. In my case, for example, my first run of Niente Version 3 (released way back in 2023) revealed this:

That's 17,000+ recordings of which over 8,100 have 'Album Art size issues' (see Statistic 9). The same statistic is now visible in Niente Version 4 with the Statistic Label of O1[...] 

Continue Reading

Niente version 4 : Changelog

This page describes the changes made in each point release of Niente since its first release as version 4.00 on September 10th, 2024.

Versions with dates attached have been released into the wild and made generally available: if an entry says 'scheduled for release', it's a best-guess as to when a release will happen, but it's not guaranteed to actually happen on that date. It could slip a few weeks, or even happen earlier than scheduled, depending on circumstances. [...] 

Continue Reading

Niente Version 4 : Runtime Parameters

1.0 Introduction

Niente is, inevitably, a heavy-duty program to run that happens also to be extremely boring to watch running! It's job, after all, is to run off to your PC's hard disk and scan lots and lots of FLAC files, reading their multiple pieces of metadata and (during a full or differential integrity check, at least) re-computing MD5 hash sums for the audio signal they contain. It's tedious, quite slow and not at all exciting!

It is, accordingly, much more likely that you will want to schedule Niente to do its work in an  unattended, non-interactive manner -and for that sort of thing, rather than navigating your way around Niente's (relatively!) attractive menuing program interface, you'll want to be able to give commands to schedulers such as cron to run things without you needing to be present. For that, Niente provides a set of eight run-time parameters (that is, arguments you can add to the basic 'niente' command), each of which can perform different functions. [...] 

Continue Reading

Niente Version 4 : Reporting

1.0 Introduction

When you perform an integrity check of your FLAC collection with Niente, not a lot appears to happen! Sure, we see the program visiting each FLAC it knows about in turn and learning things about it:

...but if it detects anything amiss during its file inspections, no red lights or sirens go off: the program will merely conclude its integrity check by re-displaying the main menu, which seems somewhat anti-climactic! So, performing an integrity check is an information gathering exercise, but the integrity check itself never shares that information with you. In order to actually see whether or not your music collection is suffering from physical corruption or logical inconsistencies, you need to use Niente's various reporting options. These all interrogate the data collected during an integrity check and list those records found to be failing one check or another. [...] 

Continue Reading

Niente Version 4 : Operating System Support and Installation

1.0 Operating System Support

The Niente Version 4 installation process is now fully-automated and does everything required to make the program work properly (previous versions would detect what needed to be done to get things running but then ask you to issue the necessary commands, manually). A Niente Version 4 installation neither deletes nor upgrades a prior version installation of Niente: the two versions can co-exist without drama, though it remains advised to cease using Niente Version 3 and to delete it manually off your system (by isssuing the commands sudo rm -f /usr/bin/niente.sh and then rm -rf $HOME/.local/share/niente).

1.1 Niente on Linux

Niente runs on all major Linux distros: my basic rule of thumb is to take the top 20 distros listed on Distrowatch's Page Hit Ranking at the start of major program development and make sure the resulting Niente scripts run fine on all of them. I then add in a sprinkling of other distros that appeal to me for one reason or another, even if they don't seem terribly popular, according to Distrowatch! Since most distros are actually derived from other, 'parent' distros (Mint, for example, is a variant of Ubuntu, as Manjaro is of Arch), we can construct a 'support matrix' for what Niente runs on, based on the principle 'family', as follows: [...] 

Continue Reading

Niente Version 4 : Upgrading from Niente from Version 3.x

There is no upgrade path between the original and newest versions of Niente. Niente Version 4 is installed alongside Version 3: it doesn't replace it. As a small convenience, the shortcut or soft-link /usr/bin/niente is re-pointed so that it launches /usr/bin/niente4.sh (the version 4 executable) rather than /usr/bin/niente.sh (the version 3 executable). This means that after installing version 4, the bare command niente issued in a terminal session will now launch version 4 of the program. But if you wanted specifically to run the earlier version 3, you could still do so by typing the command /usr/bin/niente.sh.

It is recommended that, to avoid potential confusion, you manually remove Niente Version 3 from your system as soon as you are happy that Version 4 is your FLAC integrity checker tool of choice. That's done with the following commands issued in a terminal session: [...] 

Continue Reading

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. [...] 

Continue Reading

Niente Version 4 : Physical Corruption principles

1.0 What and Why is Physical Corruption (aka Bit Rot)?

Computers store the data they need to process in RAM chips temporarily; and on hard disks (or solid state drives) more permanently. Every time your computer writes data to one of these forms of data storage, it can make a mistake. Even when it writes it correctly, the data at rest in any of these storage locations can change over time -the magnetic material of which a hard disk is made can physically degrade, for example; or a power-spike can affect the contents of data temporarily at rest on a RAM chip. Finally, even if your computer writes the data correctly; and even if it is stored immutably in or on its storage medium; the computer can mis-read the data when it next needs to access it: the charge levels of the electrons in solid state drive might have dropped below what can reliably be read, or the hard disk might simply mis-read a tiny magnetic 1 as a 0, given the enormous data densities and high speeds of modern hard disks.

In short: whether the data degrades because of mechanical or material failures, or because power grids occasionally supply electricity at voltages and frequencies outside their normal range, or simply because (and it is has happened!) a cosmic ray happens to strike a storage device at the wrong time and in the wrong place ...your digital data may not always remain in the state you want it to be in. That's called bit rot in the computer industry and for anyone listening to classical music stored in digital form, its practical consequences can range anywhere between "wouldn't have known" and "glitching like old scratched CDs used to when they were having a fit". [...] 

Continue Reading

Niente Version 4 : What is Niente?

1.0 Introduction

Niente is a FLAC integrity checker for Linux, Windows 10 & 11, macOS and Raspberry Pi.

You point it at a tree structure of folders full of FLACs and let it construct a database of what FLAC files exist. At any point after that initial folder scan, you can tell Niente to step through each file found in its database and analyse it for physical corruption and logical inconsistencies. After that, and at your leisure, you tell Niente to generate reports about the various sorts of corruption it has found. [...] 

Continue Reading

Niente Version 4 : The User Manual

Niente is a FLAC Integrity Checker, which can be used with digital classical music collections to check for both physical corruptions and logical inconsistencies. Other FLAC checkers exist, of course: but they tend to only be able to tell you whether a particular FLAC file is physically corrupted or not: they can't tell you that your recording YEAR tag is inconsistent with the date you show in your ALBUM tag, or that the performer mentioned in the ALBUM tag doesn't match that listed in the COMMENT tag. Only Niente can do these type of logical integrity checks, because it was designed to be in full compliance with, this website's view of how best to tag specifically classical music.

The other software available from this website also understands that tagging model completely, so they all complement each other perfectly: Semplice writes the correct tags into the correct places in the first place; Giocoso plays music and displays the right metadata as it does so because it knows how to read the correct tags. Niente rounds out the picture by checking your music files, making sure all your tags are consistent amongst themselves, whilst also ensuring that your music files remain in their pristine state, without silent bit-rot spoiling things! Niente runs on Linux, MacOS and Windows 10 and 11 and assorted operating systems running on the Raspberry Pi. [...] 

Continue Reading

Fix-Up Scripts

1.0 Introduction

It is a core tenet of Niente that it only ever reads and analyzes your FLAC files: it never modifies them. However, by its nature, Niente will reveal past poor tagging decisions which, perhaps, affect many hundreds or thousands of recordings and which would be real pain to have to fix manually. In my case, for example, my first run of Niente Version 3 revealed this:

That's 17,000+ recordings of which over 8,100 have 'Album Art size issues' (see Statistic 9). Upon running the relevant detailed report, it became obvious that since I first started ripping my classical music CDs in 1999, I've been fairly cavalier about the album art I tagged it with! A lot of those 8,000+ "mistakes" were using album art that was too small: images that are 200x200 pixels were a thing back in the days of dial-up Internet (yes, I am that old!), but they make for lousy viewing on a modern 27" monitor (or any other device, come to that). Additionally, when I did finally start getting decently-sized album art, I didn't bother 'squaring it up', so I'm now left with a pile of artworks which are (say) 1401x1400 or even 1412x1398: all nicely large, but all resolutely oblong in nature! [...] 

Continue Reading

Niente - Frequently Asked Questions

Q1. The Quick Aggregate Statistics (QAS) Report says I have 11 'Recordings not yet checked'. How do I get them checked?

A: By running a Full or Differential Integrity Check, using Main Menu Options 3 or 4. Either type of check triggers a computation of a new MD5 hash value for FLACs. It's the absence of that freshly-computed hash value which triggers the 'not yet checked' error. A Full check will pick up the 11 files, because it's calculating new MD5 hashes for every FLAC in the database. A Differential check will also pick up the 11 files, because it regards the absence of a new MD5 hash as an error that can be fixed, so it will re-scan (and re-compute MD5 hashes) for those files, even though it skips any FLAc already in the database that it considers not to be in error. [...] 

Continue Reading