Niente - Changelog

This page describes the changes made in each point release of Semplice since its first release as version 3.00 in February 2023.

Release 3.01 - April 23rd 2023

  • Enhancement : Text displayed during integrity checks now explicit on what tasks are performed (eg, file system rescan, physical check etc).
  • Enhancement : Much faster verification of continued existence of files. No per-file re-scanning, just SQL deletes of files in tracks not in loadfiles
  • Enhancement : Volume and Art Checks now load into a temporary table before transferring data into the 'real' tables. Art & Volume Checks can now therefore be interrupted without triggering loss of previously-collected data.
  • Enhancement : Album Art check would match the words 'width' and 'height' more than once. Now fixed, which makes the check *much* faster than before
  • Cosmetic : Album Art report font-size increased from 8pt to 10pt.
  • New Feature : New --refreshonly runtime option to trigger a full scan of a file system to detect new recordings, but not to perform an integrity check.
  • Bug Fix : The way to count/determine if a file had bit-depth/sample rate data in its filename was completely wrong. Now fixed.
  • Bug Fix : Report Menu Option 12 (folders containing more than 1 FLAC was grouping incorrectly and thus finding false counts of possible problems. Now fixed. Also, since you cannot concatenate more than 99 files, folders containing more than 99 files are now excluded from the various reports.
  • Bug Fix : Quick Aggregate Statistics was not sensitive to whether square album art was a requirement or not. Now fixed: the SQUAREART parameter alters the QAS output, as it should always have done.

A pile of minor enhancements and bugfixes, none of which are particularly major, with a couple of possible exceptions. Full and differential integrity checks now work by populating an intermediate table first and only transferring the data across to the 'real' table at the end. That means you can now launch an integrity check, cancel it (by pressing Ctrl+C) and you won't lose the statistics and data you already had about your music collection (since only the intermediate table is being modified up to that point). The other big practical improvement is the fact that Niente now determines the continued existence of FLAC files on disk by means of a very quick SQL query, rather than by having to re-scan the hard disk from scratch. The effect is a dramatic speed improvement (orders of magnitude faster). [...] 

Continue Reading

Upgrading to Niente v.3 from earlier versions

1.0 An Important Introductory Note

Normally, you'd run any of my programs with the runtime switch --checkver to see if a newer version of the software was available. That won't work if you're trying to upgrade from Niente versions earlier than 3.00, however.

Unfortunately, a bug was introduced into earlier versions of Niente such that the upgrade checker searches for a program called 'iente', rather than for one called 'iente': the seemingly minor difference between an initial upper- or lower-case letter means that the upgrade checker never sees a newer version of the software is available and will accordingly not try to obtain one. [...] 

Continue Reading

Niente's Persistent Configuration File

1.0 Introduction

Nientes behaviour is controlled by the value assigned to a number of configuration parameters. Those parameters are contained within the persistent configuration parameter file, which is a plain text file stored within the $HOME/.local/share/niente folder and called niente.conf. A default parameter file is downloaded from this website whenever you first install Niente. It can be edited at any time using your own preferred text editor (or by taking Option 9 from Niente's Main Menu screen, which opens the file in whatever text editor the EDITOR environment variable has been set to). Changed parameters will usually be applied immediately, but sometimes exiting and re-launching the program will be required before they take effect.

Whenever you edit the persistent configuration parameter file, it's important that you make no changes whatsoever to the first 10 lines (the ones bounded by a double-lined box). Niente validates the configuration file by assessing these ten lines. If you add so much as a full-stop or comma to any of the lines contained within that box, the configuration file will be declared invalid. If you accidentally invalidate your configuration file, you can simply delete the file completely: next time Niente runs, it will download a fresh copy of the default configuration file, and you can start clean from there. [...] 

Continue Reading

Niente Reports

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 merely concludes a check by re-displaying the main menu, which seems somewhat anti-climactic! Nevertheless, during an integrity check, the data is collected which allows all of Niente's reporting options to disclose which files are suspected of being physically corrupt or logically inconsistent. It's by running reports that you at last get to understand the health and status of your music collection. [...] 

Continue Reading

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

Installing Niente on macOS

1.0 Introduction

Niente has been tested to work on a physical Sierra Mac Mini, a physical Catalina iMac, the same iMac with Monterey installed and a Big Sur installation on a VirtualBox. I am therefore pretty confident that Niente will run on any version of macOS (i.e., from 10.12 [Sierra] upwards), though I haven't tested every single one of them and I have no idea whether things still work on Ventura, which I simply cannot run. However, anything which claims to be macOS and isn't one of the versions I've just listed has not actually been tested and I do not have the physical resources required to provide support on those macOS versions (unless you'd like to donate hardware that's capable of running those other versions: please get in touch if you do!) For similar reasons, I cannot say whether Niente will run on M1 Macs: I've only ever used Intel chips.

Niente has several package dependencies -that is, programs which must also exist on your Apple computer for it to be able to work. The simplest way of ensuring all those dependencies are installed correctly is to install them with a package manager called 'MacPorts'. Once MacPorts exists, installing almost any other piece of software is just a matter of issuing an appropriate 'port install... ' command. Note that if you have already installed MacPorts in order to get Giocoso (or Semplice) working, you do not need to re-install it and can basically skip Sections 2 and 3 below and move straight on to installing Niente and its software dependencies itself (see Section 4 below). [...] 

Continue Reading

Physical Corruption (aka "Bit Rot")

1.0 What and Why is 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 unchangedly 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

Installing Niente on Raspbian for Raspberry Pi

1.0 Introduction

The Raspberry Pi single board computer is a remarkable piece of computing technology: about the size of a 2.5" solid state hard disk, the Pi 4B I'm using manages to pack in an ARM processor, 4GB RAM, gigabit Ethernet, twin USB 3 ports, twin USB 2 ports and twin HDMI outputs. It has, in short, everything required to be a capable (if slightly slow) home PC... for about £55. (That's the usual list price when the midget computers are actually in stock: they are currently in short supply worldwide right now, so prices have sky-rocketed to £150+, which makes them much less desirable as daily driver PCs). I think that's a good deal (when you can get it!) and what the Pi perhaps lacks in raw speed and CPU power, it greatly makes up for by running entirely silently: whilst you can certainly fit fans to keep things cool, a good case can keep the temperatures down entirely passively. In a music room, silence is definitely golden!

By design and default, a modern Raspberry Pi is generally kitted out with 'Raspbian' or 'Raspberry Pi OS', which is an ARM-specific port of Debian, packaged with an allegedly user-friendly front-end that makes Fisher-Price look advanced. I am not a fan of it, put it that way! On the other hand, it is lightweight enough to make the Pi feel quite 'snappy'. That maybe because it uses the LXDE desktop environment by default, rather than a heavyweight, 'conventional' desktop such as KDE. [...] 

Continue Reading

Installing Niente on Windows 11

1.0 Introduction

I find myself in a bit of a dilemma as far as running Niente on Windows 11, because I lack any hardware that is capable of running it in a supported fashion... yet, I do run it on a vintage 2012 spare laptop and Niente runs on it perfectly well. It remains, however, a problem to offer support for doing something on a platform that remains, for me, technically unsupported! Therefore, I won't: if you want to run Niente on Windows 11, I'll give you instructions which have worked for me, but I cannot vouch for them in the long-run and I won't offer support for it. You're on your own, basically! Of course, if you are a well-off classical music enthusiast who loves using Windows and wants to donate Windows 11-supported hardware on which I can continue to develop Niente for Windows 11 in a properly supported manner, do please get in touch!

Those preliminaries out of the way: whilst Niente itself merely sips PC hardware resources, the Windows Subsystem for Linux version 2 (WSL2) that makes it possible to run Niente at all is a bit of a resource hog. It works, fundamentally, by co-hosting a virtual Linux PC alongside and simultaneously with the running Windows one. That sort of virtualisation immediately demands a 64-bit operating system and reasonable quantities of memory and CPU grunt -though we are not in ludicrously-overspecc'd monster gaming PC territory! I mentioned my 2012-vintage HP Folio13 onto which I've managed to crow-bar a working version of Windows 11, despite its ancient and unsupported hardware: it manages on 8GB RAM, a 500GB solid state hard disk and a 2nd generation Intel i5, 2-core CPU running at a sedate 1.6GHz. That seems at least adequate. [...] 

Continue Reading

Installing Niente on Windows 10

1.0 Introduction

Running Niente on Windows is not exactly difficult, but it's not trivially to document either! The basic premise is that Niente is a Bash script and so Windows needs to be able to run Bash scripts for it to work on that platform. There are various ways that can be arranged, but in these days of Windows 10 and 11, the simplest is probably to install and run the Windows Subsystem for Linux, Version 2 -or 'WSL2' for short.

WSL2 is a fairly transparent way to run a real Linux distro 'within' Windows -and, in its most recent incarnations, it's fairly easy to get Linux programs that output graphics to 'pipe them' onto the Windows desktop. All that needs to be present on Windows for that to happen is an X server. [...] 

Continue Reading

Niente Runtime Parameters

1.0 Introduction

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

Continue Reading

Niente: A Quick Start Guide

1.0 Introduction

Niente's main program display, when you finally get it running, appears generally as follows:

I say it 'generally' looks like this: the specific option numbers may change over time, as new functionality is added to the program, or old options are retired.  Regardless of the specifics, however, the program display will always consist of three distinct areas, as follows: [...] 

Continue Reading