Usually, Niente is run by typing the bare command niente. However, Niente can also be invoked with the addition of one of six possible runtime parameters: that is, keywords prefixed with a doulbe-hyphen. These parameters trigger Niente to do specific things which would ordinarily require taking options interactively from its main menu screen. In this way, runtime parameters make running Niente a non-interactive process, which is useful when you need to schedule Niente to run in an automated way in the dead of night (as you would want it to when performing a new integrity check, and so on).
The six available runtime parameters are as follows:
Each is tacked onto the end of the normal "niente" command, so that you might type or add to your crontab (for example): niente --checkver or niente --check-volume.
I'll now briefly explain the functionality of each parameter.
This runtime parameter triggers Niente to perform a full integrity check. This means:
- Scan your filesystem to discover new FLACs
- Make sure that every FLAC listed in the Niente database still exists on disk (and delete them from the database if they are found not to)
- Visit every validated FLAC mentioned in the Niente database and collect both physical and logical data about the FLAC. Physical data means re-computing the MD5 Hash value which is the 'digital fingerprint' of the audio signal contained within the FLAC: if it changes, that's an indication of internal, physical corruption of the file. Logical data is the set of metadata tags you use to catalogue a FLAC.
The --check-full parameter thus achieves what would usually require you to take Niente's Main Menu Option 3.
This runtime parameeter triggers Niente to perfom:
- A complete scan of your filesystem to discover new FLACs
- A verification of every FLAC listed in the Niente database, to ensure they all still exist on disk (and delete the records from the databse if they don't)
- A physical and logical integrity check of any FLACs already known to have been detected as having physical corruption or logical (tagging) inconsistencies. Only these 'dodgy files' are therefore re-visited during a differential check, rather than every FLAC. A differential integrity check should therefore be substantially quicker than a full check (though the initial file system scans and verification will still take quite a bit of time)
The --check-differential parameter thus achieves what would usually require you to take Niente's Main Menu Option 4.
When launched with this runtime parameter, Niente will perform:
- A logical integrity check of any FLACs already known to have been detected as having logical (tagging) inconsistencies. The initial scan of the file system and veriification of all known FLACs performed during a full or differential check is skipped entirely -and thus this integrity check is very fast to kick off. It also does not perform any physical integrity checks (which also makes it much faster to complete).
The --check-fast parameter thus achieves what would usually require you to take Niente's Main Menu Option 5.
This parameter does not trigger a scan of the file system to discover new FLACs, nor a verification of the FLACs which Niente thinks should exist. Instead, it triggers a visit to every FLAC listed in Niente's database and a check on the nature of any embedded album artwork contained within each file. The scan captures the horizontal and vertical pixel dimensions of any embedded artwork found. The --check-art parameter thus achieves what you would usually require you to take Niente's Main Menu Option 6.
This parameter is used to perform a check of all FLACs listed in Niente's database to see if they are capable of having a volume level boost applied to them (it doesn't do any actual volume boosting; it merely works out for every FLAC what volume boost could be applied to the file without triggering audio distortion. No preliminary scan of the file system is done to discover new FLACs or to verify the continued existence of any previously-discovered FLACs. The --check-volume parameter is therefore the equivalent of taking Niente's Main Menu Option 7.
The --checkver runtime parameter is not only useful, it's practically compulsory to use it from time to time! It's Niente's way of checking whether a newer version of the program is available as a download from this website's servers. If it detects a new version is available, it will ask if you want to download it and then prompt you to supply your sudo password so that the new download can be installed correctly. You don't need to use this option very often, therefore, because new versions of Niente won't be released every wet Wednesday afternoon... but you should probably get into the habit of running it every couple of months or so, just in case.
So, here's what you will usually see when you type the command niente --checkver:
That is, the program detects that the currently-running version exactly matches the version that's available from this website's servers. You would expect this to be the 'normal' state of affairs, 99 times out of 100. But occasionally, you'll see this sort of response instead:
When the program spots that a version number bigger than the currently-running version number is available for download, it will ask you if you want to go ahead and download the newer-version software. You can always answer 'n'o at this point, at which point you'll be dumped back at the command prompt with the message that the program is 'quitting without upgrading'.
If you answer 'y'es, however, then you are next asked to supply your sudo password; the program then goes off to fetch the new software version and installs it without further interaction, resulting in this sort of display:
In other words, you end up dumped back at the command prompt once more. The next time you run Niente, you should see the version number (in the header area of the program display) has increased from what it was before.
It is important you keep your version of Niente up-to-date by periodic runs of the program with the --checkver parameter, as it ensures you reveive the latest bug-fixes and new feature releases.
Performing integrity checks of what sort or another is really the reason for Niente's existence -but, for a large music collection, they can take a long time to complete. Being able to schedule them in your crontab to run during off-hours is therefore a handy feature to have and using runtime parameters wisely is the way to achieve this 'non-interactive' Niente functionality. The --checkver parameter is similarly crucial in being able to make sure you are always running the latest version of the Niente program.