Where we're at...

I thought maybe a 'year in review' as regards to listening to music might be in order. It has been almost a year since I wrote and started using the 'Absolutely Baching Music Player' or AMP, beginning on January 9th 2021. On June 1st, AMP was superseded by Giocoso. But, using one or the other, I've been playing my music in more-or-less randomised form for the best part of a year.

I say 'more or less', because -by means of Giocoso's run-time switches- I've been tweaking and influencing what 'random' means. For example, when I started playing things in Giocoso on 1st June, it turned out that some 87% of my music collection was listed as having not been played in either player. That is, AMP or Giocoso between them only had records of having played a mere 13% of my music collection. [...] 

Continue Reading

A Musical Guessing Game?

I don't know about you, but if I tune into the radio randomly as a piece of classical music is playing, I then like to test myself and see if I can guess the composer of the piece before the announcer returns to give away the crucial information. I'll maybe even try guessing the name of the piece, if I'm feeling particularly confident. Once or twice, I've even gone for a guess as to who the conductor or soloist might be: those ones usually don't pan out so well, but I'm pretty good with composers and not so bad at the piece-names.

Anyway: I've been using Giocoso since June 2021 (and AMP for six months before that) to play all my classical music and thus have built up a 'listening history' of some 6000+ recordings in just over 9 months, as you can see from the bottom of my 'all time graphs' listening history page. And since Giocoso says I've listened to all those pieces of music, I ought to be able to recognise them when I hear selections from them again, right? [...] 

Continue Reading

Another Giocoso Update

Just when I thought I'd got away with not having to do lots of updates to Giocoso, I found another bug in the Stats report. This time, it's a really silly one, based on a flawed piece of selection logic in the program's code.

The short version is: the Stats report was computing the number of things that have yet to be played by looking for composition names known to exist, but which haven't yet been recorded as played. That *almost* works (because we're talking about the 'extended composition name', which therefore includes the actual composition name, plus the 'significant artist' making the recording, plus the year of recording... so that combo is fairly unique). But it's not perfect, under edge cases I won't bore you with. [...] 

Continue Reading

Giocoso - A New Randomising FLAC Player

Today, I'm announcing the initial release of Giocoso, the randomising FLAC player for Linux, which is a replacement for my old AMP program. Giocoso is built on much the same code-base as AMP, but with quite a few changes. The most significant differences between Giocoso and AMP are, probably:

  • AMP scrobbled by default and had to be told not to; Giocoso does not scrobble by default, and has to be told to do so if it's required.
  • AMP scrobbling required the installation and running of a separate 'amp-scrobbler' script. Giocoso uses no external functionality to scrobble: it's all built-in to the main program.
  • AMP had acquired a bunch of 'statistical overrides' (such as --levelup, --xlevelup and --xxlevelup); those are now gone from Giocoso.
  • AMP could only apply --minduration and --maxduration filters after selecting something to play. This could result in a significant pause before stumbling across something randomly selected that happened to have the correct duration. Giocoso now knows the durations of pieces from the get-go, so duration-based selections are done successfully within fractions of a second.
  • AMP only displayed album art; when Giocoso displays album art, it adds a 'caption' to it, with its text derived from the ALBUM tag of the music being played: the album art can therefore now visually provide you with all information about what, precisely, is being played.

There are lots of other differences, detailed in Appendix A of Giocoso's User Manual, which is available for download on Giocoso's new product page[...] 

Continue Reading

Progress...

May has been a month of progress on something I made a New Year's resolution to do (but then put off for four months!): catalogue the enormous pile of ripped CD files I've built up over the past year or so. Click on the graph at the left and you'll see how I've done: I started the month with 485.1GB of music files sitting in the 'temporary' area of my hard disk (which has been pretty permanent for at least 2 years now!), in the form of 10,007 individual FLAC files. As of this afternoon, I'm down to 13.6GB and just 625 files. Most of that is a 'collected works of Messiaen' box set, which will take ages to catalogue and tag-up properly, because French is slow to type, what with all its accents (but maybe not as slow as German. And definitely way faster than Czech!)

Undertaking all this cataloguing has meant using my own CCDT tagging program, of course. As a result, I decided to make a couple of little changes to CCDT. The important one is a new run-time switch, called --namereplace. Run CCDT with that in the launching command and CCDT changes the way it handles music files that already have a track title tag. [...] 

Continue Reading

CPU Shenannigans

Fresh from my war with a new mini PC (which I lost, you'll recall), I remained determined to do something to upgrade my old workstation-class desktop PC. I bought it second-hand a few years ago: it's a Dell Precision T3610, which is a bit of a monster, and was originally constructed (I think) in around 2012 or 2013: its warranty says it started in February 2014 and expired in February 2017, so it's somewhere in that ball-park.

It shipped with a Xeon E5-1620 v2 CPU CPU, which was launched in the third quarter of 2013, so that also helps date the machine. That CPU has (inevitably, as far as Intel was concerned back then!) 4 cores and thus 8 threads when hyperthreading was enabled. Nothing too remarkable, but not exactly shabby, either. I think when I bought it, it came with 16GB of RAM: I soon bumped that up to 96GB. So, it's not memory constrained either! It also shipped with an Nvidia Quadro K4000, which was cutting edge at the time, but has long since been eclipsed by newer graphics cards: since I don't play games beyond Solitaire, however, I don't particularly care how out-of-date my graphics capabilities are! [...] 

Continue Reading

Mishaps and Minisforum Mayhem

Yesterday was not a happy day!

At the end of April (the 23rd, to be precise), I took delivery of the small form factor PC you see at the left. It's a "Minisforum UM250" and comes with 16GB RAM, a 512GB M2-SSD hard drive and an AMD Ryzen 8-core processor. It is my first brush with an AMD Ryzen processor, which I've been keen to get my hands on for quite some time... so I was pretty excited. I was concerned at how noisy a small form factor PC might be: the thermals in such a small space are not great, and my intention was to use this as my main music-playing PC, so quietness is quite important. A review I read on Ars Technica suggested the sound levels were acceptable, so I bit, paid up, and took delivery the very next day. [...] 

Continue Reading

AMP: Are we there yet?

I am aware that as new AMP feature follows new AMP feature, it can feel like a never-ending ride to who-knows-where, prompting the 'Oh God, not another one!' reaction, as well as the 'Will it never end?' one -as well as the one alluded to in the thumbnail at the right!

For the record, I think we are closing in on a feature-complete AMP that needs no major bug-fixes nor has use for substantial new pieces of functionality. [...] 

Continue Reading

Another round of AMP enhancements...

Let's start with a warning: this is quite a long post and covers quite a lot of ground! I don't normally 'section up' my posts, but I will on this occasion, to try to make things clearer. So, this time we have:

  • Two new override switches for AMP
  • The removal of a switch
  • The fixing of quite a nasty bug
  • The introduction of a new composition-specific selection switch
  • An increase to the number of play 'selections' you're allowed

Taking each of those in turn, therefore... [...] 

Continue Reading

Hi-Res Audio - Part 56

I hate to keep banging on about hi-res audio formats (especially when I am not keen on them myself), but now that AUAC can do DSF as well as ISO conversions (see my last post), some interesting things have come out of the woodwork that needed tackling. It's also the case that as lockdown finally eases, this will likely draw to a close a period of time in which I obsess about software and not a lot else... so, it's probably best to get these things out of the way whilst there's not a lot else to be doing!

First off is the question of why AUAC treats SACD ISOs differently from SACD DSFs. In other words, when you say auac -i=iso, you have to specify -o=hires if you want high resolution FLAC files extracted from the source SACD ISO (otherwise you get standard resolution ones)... but, if you say auac -i=dsf, you don't (you'll get hi-res ones by default). [...] 

Continue Reading

Hi-Res Audio

Let's begin by defining what 'hi-res audio' is, and then I'll explain why it's marketing baloney and no-one should touch it with a barge-pole... and why I've just enhanced my various software offerings to work with it anyway!

So, to begin at the beginning: there's a thing called the Nyquist-Shannon Sampling Theorem. It says that a continuous wave-form can be perfectly reproduced as a set of fixed, discrete samples if the waveform being sampled has a finite bandwidth, and your sampling rate is twice the maximum signal frequency. That is, so long as you can say 'this audio signal has a fixed upper-limit of (say) 20KHz', then it is mathematically provable that a sampling rate of 40KHz can capture that wave form perfectly. When the Sony and Philps engineers were developing the Compact Disc audio format in the 1970s, they relied on this theory to determine the characteristics of CD audio. Since the best human ear can really only hear up to 20KHz (and even then, you've got to be young and genetically-blessed to hear that high), we can record an orchestra and chop off any part of the audio signal above 20KHz and no-one will be any the wiser: we're disposing of frequencies no-one of mortal woman born can hear anyway. Then, once we have a continuous audio signal with a firm upper cut-off of 20KHz, we can digitise that by sampling the signal at 40KHz and be mathematically sure of being able to perfectly re-create the original analogue audio signal. Being clever people of the 1970s, however, the Philps and Sony engineers also realised that cut-off filters aren't linearly perfect. Tell them to cut off at 20KHz, and they'll maybe kick in a bit early and chop some sub-20KHz signal off, too; they'll alternatively knock-off a bit early and leave some 20KHz+ signal behind that ought to have been removed. Frequency filters being imperfect, therefore, the CD developers decided to cut a little slack for the filtering process and thus decided to cut off the audio signal at 22.05KHz, rather than at precisely 20KHz. The extra 2005Hz were there to deal with the electronic filtering imperfections of the time. The consequence of that is that for Nyquist-Shannon to remain applicable, the sampling rate had to be twice this higher 'highest frequency' - and that's why CDs have a sampling rate of 44,100 Hertz. [...] 

Continue Reading