Happy Benjamin Britten Day ...in advance!

It being the 22nd November tomorrow, I would usually spend all day listening to nothing but the music of Benjamin Britten, who was born on that day in 1913. It's something of an annual tradition in these parts, faithfully observed since at least 2007.

Unfortunately, family matters have intervened this year and instead of sitting down and enjoying the delights of Paul Bunyan, Peter Grimes or the Cello Symphony, I shall instead be driving towards the nearest airport and picking up a relative for a couple of days of home cooking and more alcohol than is probably good for you. Which isn't, of course, unfortunate in the least ...but does rather mean Britten has, for once, to go on the back-burner this year. No doubt I will squeeze in as much of his music as I can next week. And there is always December 4th, for example, which is the anniversary of his death. [...] 

Continue Reading

Behold! I tell you a mystery... Adventures with ffmpeg

The tool which my Giocoso classical music player uses to actually produce audio output is called ffmpeg, a command line audio and video de-coder and player. It is something of a truism to say that it is an absolute nightmare to use! It's command structure is truly ghastly, with a typical example looking like this:

ffmpeg -i example.mp4 -i LM_logo.png -filter_complex "[1:v] scale=150:-1 [ol], [0:v] [ol] overlay=W-w-10:H-h-10" -codec:a copy example_marked.mp4 [...] 

Continue Reading

A note on Dave Hurwitz and ClassicsToday.Com

Dave Hurwitz is, as he repeatedly tells us, the "Executive Editor of ClassicsToday.com". Classicstoday is an excellent classical music resource (and I'll refer to it hereafter as ct.com) and is worth your time to investigate their reviews and critiques. Unfortunately, a lot of their content is behind a paywall: meaning, sign up with credit card details and the like, to reveal all. I have no problem with the 'pay to view' proposition ...but it behoves a site that takes your money and your credit card details to demonstrate that they care about security and preservation of personally identifiable information -and ct.com does none of those things.

You can assess a website's security standards in a number of ways. Me: I check the Mozilla Observatory and SecurityHeaders[...] 

Continue Reading

Semplice Version 2.03 Released

It's only been a week since version 2.02 of Semplice was released, but today I've released yet-another-new version: 2.03.

The new version contains two small enhancements, which I describe in the Changelog, but which can be summarised as 'SuperFLACs get automatically cleaned when first created' and 'More information is provided when performing volume boosts on FLACs'. [...] 

Continue Reading

Semplice Version 2.02 Released

I wasn't particularly aware that this was a thing, but JPGs, PNGs and other image files are constructed using particular 'colourspaces'. A colourspace is simply a way of internally representing colours. There are basically two principal means of doing this with digital artwork: use an additive colour model (where red+green gives yellow), or a subtractive colour model, where red is what you get when taking the difference between magenta and yellow. The additive model we call the RGB model (because you add red, to green, to blue to get the full gamut of possible colours). The subtractive model is called the CMYK model, because you use cyan, magenta and yellow, plus black (the 'K'!) to construct the gamut.

Generally speaking, computers and their monitors should use the RGB model, because LCDs monitors are generally natively black or dark and have individual 'lights' (LEDs) projecting shades of red, green or blue to construct complex colours on top of a dark background -so adding colours to a dark background is right up their street. Printers, on the other hand, tend to use the CMYK model, because they work with inks which are manufactured in cyan, magenta, yellow and black hues and which are laid on top of a usually pure-white background (i.e., a sheet of paper!), so printers need to start bright white and remove colours from that to construct a colour image. [...] 

Continue Reading

Giocoso Version 3.08 Released

A tiny enhancement (or, possibly, a bug-fix... I can't quite decide which!) has been made to Giocoso and its version bumps to 3.08 as a result.

The fix is that during playback, Giocoso would display a tiny and mostly-inconspicuous cursor marker somewhere along the bottom-right of the program display. Now it doesn't. Details, such as they are, are in the changelog[...] 

Continue Reading

Reaching the limits

The graph at the left tells a tale! The context for that tale is that since June 3rd 2021, I've been using Giocoso to play (almost exclusively) only those recordings which have not previously been recorded as having been played, in an attempt to ensure that by the time I come to kick the bucket, I can say, hand-on-heart, that I've listened to every recording I ever bought. On the one hand, the tale is of good news: the graph shows that only 7.1% of my entire collection has not yet been played by Giocoso. So, I've played around 93% of it, which is pretty good going.

It's even better going when you consider that for much of the time since June 2021, I've had time restrictions on my plays: in other words, I've told Giocoso 'play unplayed recordings that last less than 20 minutes' or something similar. As a result, I haven't listened to Wagner's Ring cycle with Giocoso, but I know for certain I've played those recordings multiple, multiple times in the years before 2021. Which is to say: even the 7.1% I haven't 'officially' played contains substantial chunks of recorded music which I know I've played using different tools... so the amount of my collection which is truly unplayed is significantly less than 7%. [...] 

Continue Reading

Work in Progress: Semplice Version 2

It's finally time to mention what I've been up to for the past couple of months: re-writing Semplice, my digital music file manager. It's the tool that lets you tag your FLACs, volume boost them, merge them into 'SuperFLACs' (and split them back out into per-track FLACs if you prefer), convert them into MP3s or most other audio formats, analyse them to make sure they're really high resolution FLACs, and much more besides.

To be honest, I didn't think there was a lot wrong with the original version of Semplice (currently sitting at version 1.02). There wasn't a huge amount of functionality that was missing, in other words: it was more that the user interface was a bit klunky and old-fashioned, particularly in light of the user interface advances I'd implemented when developing Giocoso Version 3. So, Semplice Version 2 was going to be more of a user interface refresh than anything else... but, as I suspected it would, mission creep has resulted in a few additions to Semplice functionality that it turns out I'm rather fond of! [...] 

Continue Reading

Further Giocoso News

Version 3.04 of Giocoso has just been released. It's a small bug fix and a minor addition.

Dealing with the bug fix first: Giocoso has always checked that, if you say you're using a database called (say), classical_music.db, a file of that name actually exists in the appropriate folder on your hard disk. If it didn't (perhaps because you hadn't created it yet!), it would display a nice error message and quit cleanly. Unfortunately, and unbeknownst to me, some database commands cause sqlite to create a zero byte file of the right name which isn't, internally, a database. That means Giocoso's file check passes, because a file of the right name exists. However, that means Giocoso goes on to query it for music to play -and since the file is just a blank file, those queries fail horribly: [...] 

Continue Reading

Is AccurateRip Accurate?

I mentioned last time that when ripping an audio CD to digital files, it's important to know that this optical drive reads the first audio sample from (say) sample 103, whereas that optical drive reads the same first audio sample from sample 6. The inability to precisely and accurately read the first audio sample from, er... the first audio sample is, unfortunately, inherent in the design of the audio CD standard in the first place (which has no absolute positioning information encoded in the data stream) and in the vagaries of hardware manufacturing, where tolerances vary between manufacturers, designs and even batches of the same design by the same manufacturer!

On the whole, however, a given optical device product will be consistent about its failings. If one specific ASUS DRW-20B1 device reads its first sample from actual sample -6, then you can be fairly sure that almost all ASUS DRW-20B1's will do the same thing. You can therefore build up a database of known optical device models with a record of what their read positioning errors are -and this is exactly what the AccurateRip database of CD drive offsets is. Knowing these 'offset corrections', you can then tell your device to read (say) sample 103 knowing that this will actually make it read sample 0 (computers usually start counting at zero!), which means you now know you're actually reading the correct 'start of audio'. Thus, once you know the read offset that applies to each make of optical drive, then the same audio CD can be read from the same absolute starting position in the audio signal no matter which make of drive is doing the reading. AccurateRip therefore lets you produce consistent rips with different optical drives, because applying the read offsets always ensures each drive can read the start of the audio data on the CD correctly. The story of me doing precisely this (once my code was correct and tools like EAC and dbPowerAMP were configured correctly!) is what my last blog post was all about, after all. [...] 

Continue Reading

Cataloguing Schubert Symphonies

Schubert's symphonies are surprisingly tricky things to catalogue correctly, although as someone who hasn't exactly been been a huge a fan of the man or his works, it's taken me quite a long time to realise the extent of the problem!

I noticed it today, though, as Giocoso decided to randomly select Schubert for a couple of plays: [...] 

Continue Reading