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.

The fun starts when someone using a computer produces a piece of artwork which is intended to be physically printed: on the computer, they'll use artwork products (usually from Adobe!) which work in the RGB colourspace and then convert it to CMYK before sending it to be printed. Nothing wrong with that: generally, the artwork won't look any different to a computer user, regardless of which colourspace is in use.

But today, this happened:

That's me playing a recently-catalogued bit of Rodrigo in Giocoso, which displays embedded album art on the right-side of the screen. Looking at the result here, you might notice something is a bit 'off' about this particular artwork! It appears more like a colour photographic negative would do. I couldn't initially understand what was going on here, but the talk of colourspaces has probably tipped you off to what I eventually discovered. First, let's have two images, side by side:

I think you'll agree that it's very difficult to spot any difference between these two images -but the one on the left is using the CMYK colourspace and the one on the right is using the RGB colourspace (technically, the sRGB colourspace, which is essentially the same thing for the current discussion). We can verify this at the Linux command line:

The 'identify' utility correctly detects that one image is "8-bit CMYK" and the other is "8-bit sRGB".

So, internally they are handling colour quite differently, but they look the same to the naked eye... but not to Giocoso, as you saw above, which displays the CMYK-using image poorly. It also turns out that Semplice is completely stumped by JPGs and PNGs which are using the CMYK colourspace internally, too: it has always tested for the presence of the sRGB colourspace, so that you can't accidentally attempt to embed a PDF or EXE file within a FLAC file. Confronted with a CMYK image, however, its test fails and it does the correct thing of not embedding the provided artwork at all.

I knew nothing about this until today, when a Naxos digital FLAC I'd purchased turned out to contain a piece of CMYK album art. Semplice wouldn't touch it with a bargepole (for reasons I didn't initially understand), and when I used another program to forcefully embed the artwork in the FLAC, the result was the ghastly Giocoso display you saw earlier. However, some research later made me realise the problem was related to colourspaces and I therefore added a bit of new functionality to Semplice: if it detects that a JPG or PNG is using CMYK it silently converts it to sRGB and then embeds the sRGB version of the artwork within the FLACs. This new enhancement (or bug-fix, I suppose) is now therefore released as Semplice Version 2.02.

Upgrading is simple, as usual: take the Miscellaneous menu, Option 3 and follow the prompts, supplying your sudo password when prompted. Following the upgrade, quit out of Semplice completely before re-launching it: this will allow the program to pick up the fact that its components have been upgraded. Any error messages you see as you quit the program can be safely ignored.

After the upgrade, you can embed CMYK artwork without drama (except that it will have become sRGB artwork behind the scenes). The conversion shouldn't really be noticeable to you, but it makes a difference to Giocoso:

Now the album art displays correctly and all is well with the world once more! Technically, the conversion from CMYK to sRGB could noticeably alter the colours in an image, but any such changes should be practically undetectable or, at least, be incredibly subtle. Whether noticeable or not, however, it's simply essential to do it for Semplice and/or Giocoso to work correctly... so I recommend you upgrade Semplice as soon as practically possible.

Edited to add: To be completely clear: the update is to Semplice and the way it embeds album art within FLACs as part of its tagging. It happens that the Giocoso music player benefits from this change to Semplice, but there is no update to Giocoso itself. Were you to embed CMYK images in your FLACs using tagging software which isn't Semplice, Giocoso will still probably garble the display of the album art for such FLACs.