Semplice : What's New?

1.0 Introduction

Semplice is (at the time of writing: August 2022) a version 1.0 product, so in one sense, everything about it is 'new'!

More fundamentally, however, it combines the CCDT, MAXV, AUAC and CAO scripts into a single product -and, in the process, each of those 'source scripts' underwent considerable revision on their various ways into becoming a part of Semplice. Those changes will be documented below, with the 'source product' they deviate from being indicated in each case. As newer versions of Semplice are produced in the future, only the differences from the immediately prior version will be listed.

Changes since CCDT Version

1. There is a new 'Make general notes' option (Semplice option 7) as compared to the original CCDT. My Axiom 1 from the Principles of Classical Music Tagging make it clear that there are only a handful (actually, 8) of tags that we should generally use when tagging classical music files. Various people over the years have claimed this limited set of 'approved' tags prevents them from documenting important information (such as the recording engineer). The new 'General Notes' option permits the addition of any amount of free-form text information to any FLAC file. I've used it myself just recently to distinguish between my original CD version of Britten's War Requiem and the high resolution remastered version produced in 2013, for example, by adding a note that reads, simply, '2013 remaster'. There is no practical limit to the length of the text you can add to the NOTES tag (technically, a 4GB limit applies, but you'd have to be writing War and Peace to hit it!)

Be aware that the notes you add are not likely to be usable by any music player (by way of filtering or searching, for example). Most won't even be able to make what amounts to a custom tag visible. Nevertheless, the data is there 'inside' the FLACs and can be revealed by taking Semplice's own option 10, or by using any other graphical tagging program. The tag created by Semplice for this purpose is called NOTES.

2. Album Art: Semplice now asks you supply a folder name that contains the album art you want to encapsulate within your FLACs, rather than for a full path and filename to the album art itself. You then select the piece of album art by typing in the number associated with the file lists Semplice then displays. This doesn't require you to type quite as perfectly as the old CCDT way of specifying album art!

3. Album Art is now re-sized automatically to nearest-square dimensions, with four possible results: 1400x1400; 900x900; 500x500 or 300x300. The aim is to achieve consistency in size of album art, whilst not breaking players when they are confronted with enormous embedded album art sizes. If the source image is larger in one dimension than 1400 pixels, it is reduced to 1400x1400. If it's smaller than 1400, but larger in one dimension than 900 pixels, it's reduced to 900x900, and so on. When resizing album art in this way, the (deliberate and designed!) result is always a square image, no matter how much squeezing or stretching in one dimension or another is required to achieve that. In other words, the aspect ratio of the original artwork is not preserved.

4. Album Art: there is a new persistent configuration file parameter which specifies whether you expect to embed JPG or PNG inside your FLACs. Semplice will then only list files of that type. Regardless of what what type of image (PNG or JPG) is specified for tagging purposes, however, Semplice internally converts the image to a JPG for consistency reasons. The JPG is 100% high-quality, so Semplice will still preserve as much image quality as possible, but without the large file sizes that are generally associated with PNGs.

6. General screen layout: Semplice now takes a more consistent approach to what the screens that prompt you to supply tagging information look like and where they position their dialogs and so on. Use of horizontal lines (using proper IBM Line Drawing characters) makes for a more coherent look-and-feel, too.

7. Quick Exit v. Quit: In CCDT, Quit meant all the tags got cleaned and the information typed in during a CCDT session was 'remembered' to be used in your next run of the program and CAO and MAXV could be invoked to further process your audio files; whereas the Exit option would not remember anything and would never invoke CAO or MAXV. Even a quick exit in CCDT would, however, still trigger the cleaning of the tags stored in your FLACs. Semplice now considers that a quick exit should mean you should simply be able to exit the program and nothing at all should be written to your music files. The Quit option still does tag cleaning -but, of course, as the functionality previously provided by CAO and MAXV is now included within the Semplice program itself, it no longer invokes those programs as it quits. Be aware that options 1 to 9 write to tags as they are individually invoked, so 'Exit' doesn't mean 'your FLACs go back to the way they were before you used Semplice to edit them'. It simply means that whatever state they are currently in, the program exit process won't change them further.

Short version: Quit now tidies up the tags embedded in your FLACs; Exit simply quits the program without doing any further tag writing at all.

8. Semplice now runs on macOS (Sierra to Monterey) and Windows 10 and 11 (thanks to the Windows Subsystem for Linux 2), plus on Raspberry Pi using either Ubuntu, Manjaro or Raspbian. CCDT only ever really ran on Linux and on Raspbian.

9. CCDT allowed you to set various environment variables to control behaviour. For example, CCDT_AUTORETITLE=1 would mean CCDT would assume you wanted to replace any existing track TITLE tag, without asking you to confirm you did or didn't for every track. Those environment variables have now been abolished, and replaced by parameters in the persistent configuration file. The Semplice equivalent of CCDT_AUTORETITLE, for example, is AUTOREPLACE=1 in the persistent configuration file ($HOME/.local/share/semplice). CCDT_AUTOMAXV and CCDT_AUTOCAO have been simply abolished, as MAXV and CAO functionality are now core parts of Semplice and do not need to be separately invoked, automatically or otherwise.

10. There is now no separate, standalone option to 'clean metadata' (CCDT's old option 10). Metadata tags are 'auto-cleaned' (that is, pruned back to the 'standard' set of tags required by my Axioms of Classical Tagging article, plus NOTES) by quitting the program using the 'q' option.

11.  When displaying the tags already present in tags (CCDT's option 9), CCDT only ever displayed the metadata associated with the first file in a folder. Semplice now offers you the chance to step through each FLAC in a folder and see each file's metadata separately. If you press 'n', you move onto the 'next' file, and see its metadata, until all FLACs have been stepped through, at which point you are returned to the main menu. If you press [Enter] or any other key, however, then Semplice behaves much as CCDT would have done: it simply stops displaying further metadata completely and returns directly to the main menu.

12. Semplice checks the size of the terminal window it is running in. If it detects a geometry of less than 103 characters wide by 28 rows tall, it will warn you. However, a terminal size of less than 103x28 doesn't terminate the application: it simply means it will display things more garbled than it would otherwise manage to do!

13. When quitting, Semplice performs an integrity check on the FLAC files. CCDT did too, but if any file failed the test, CCDT just quit in a huff. Semplice will now at least offer you an opportunity to attempt an auto-fix of the files.

14. CCDT remembered prior tagging sessions, so that if you'd said the composer was 'Britten' on run 1, when you tagged something in run 2, you'd be offered 'Britten' as a suggestion for the composer name. However, if on run 3 you only typed in a composition name, on run 4 you'd find no suggestion for the composer name, because run 3 wiped run 2's suggestion, without replacing it. Semplice now always prompts with a prior run's suggestion, only replacing it when a new entry is made. For example: run 1 says composer=Britten; run 2 says Composition=Something; run 3 will be suggested by composer=Britten and Composition=Something. If run 4 goes on to say Genre=orchestral, run 5 will see suggestions for composer=Britten, Composition=Something, Genre=orchestral and so on.

15. Since the prior tagging sessions' answers are now always remembered in a cumulative state, there is no longer a need for the --nostore switch. That was there so that if you quickly fired up CCDT to add a correct recording year (say), that action wouldn't wipe all your previous tagging answers. Since that situation would now not wipe previous tagging answers anyway, the --nostore switch has been abolished.

16. In fact, Semplice's continual remembering of prior tagging sessions, whilst nice to have, can sometimes become a problem, and therefore there is occasionally a need to come from the opposite direction: rather than --nostore's instruction to 'not remember what tags I supply this session', there's sometimes a requirement to 'start with a clean slate', where every tag entry starts from nothing, with no prior tagging suggestions mentioned. That is now provided by a new --cleanslate runtime parameter. It's effect is temporary: it doesn't change what tagging history has already been stored, it simply means Semplice won't use that tagging history on this particular tagging session.

17 When tagging, the previous tags used are displayed in cyan (light blue). Pressing [Enter] accepts the previous tag as the current tag. Semplice now trims the previous tag to be no more than 100 characters long, so that it doesn't push the entire display out-of-whack by taking up too much space. It indicates this truncation by ending the previous tag suggestion with an elipsis: "…". The underlying previous tag is not truncated however. Pressing [Enter] means the entire previous tag is applied to the new music, not that some sort of truncated tag is applied. The elipses are there only for display purposes, in other words.


Changes since AUAC

18. The audio-conversion functionality built into Semplice (main menu option 16) now prompts for input and output formats via menu options, rather than expects to be told them by -i (or --input) and -o (or --output) runtime parameters, as was true for AUAC 2.10.

19. The persistent configuration parameter AUDIOIN_DELETION now controls whether or not source files are deleted post-conversion, or left on disk for you to sort out manually. Set the parameter to 1 to have automatic source deletion take place. Set it to anything else (or comment it out) to have the source files persist on disk even after conversion. This replaces the -d (or --delete) runtime parameters in AUAC 2.10.