User Tools

Site Tools


The Classical CD Tagger (CCDT)

1.0 What is CCDT?

If you've ripped an Audio CD using the Classical CD Ripper (CCDR), then you already possess FLAC files on your hard disk that have been tagged with metadata describing the Composer, the name of the composition involved and its genre: those 'core' tags are part of CCDR's fundamental functionality.

But CCDR won't have been able to write meaningful metadata into the track name, performer(s) and Album Art tags: so, all your ripped music will be called things like “track01.flac” without a lot to distinguish it from the “track01.flac” that was ripped earlier for the other Symphony or Concerto on that CD of yours.

CCDT therefore steps into the picture in order to be able to complete the set of tag metadata that completely describes a piece of classical music.

2.0 What does CCDT do?

CCDT runs entirely as a command-line tool, from a terminal session window. It will prompt you to supply Track titles, Performers and Album Art metadata. You can supply just one of those three things; any choice of two of them; or all three in one sitting, as you prefer.

Whatever you type in, it writes as Vorbis Comments -the correct form of tag for a FLAC file (we don't believe in ripping classical music to MP3 files, which need ID3 tags to store their metadata).

It won't fetch any data from the Internet (since it's always wrong as far as classical music is concerned). What you type in, typos and all, is what gets stored in the relevant tags.

At the end of the tagging process, CCDT will open the music files it's just processed in either Easytag or Puddletag GUI metadata tagging tools, just so you can review what it's done and correct any minor mishaps that may have been made at the command line. If you don't have one or other of those GUI tools installed, of course, then CCDT skips this last step. (Incidentally, if you have both programs installed, CCDT will launch Easytag in preference to Puddletag, for reasons explained here). Both GUI tools are capable of writing proper Vorbis Comments tags to FLAC files.

3.0 Obtaining CCDT

CCDT is supplied as a simple Bash script (so you can open it in a text editor and make sure it's not doing anything it's not supposed to do!), and can be obtained simply by clicking this link.

Once downloaded and saved somewhere, it just needs to be turned into an executable script by issuing the command:

chmod +x

You can then invoke the application by issuing the command:


To make launching the program easier and a tiny bit faster, I then do the following two things (which are entirely optional):

sudo mv /usr/bin/
sudo ln -s /usr/bin/ /usr/bin/ccdt

The first of these commands moves the shell script into the /usr/bin directory, so that it's in your PATH and can therefore be invoked from anywhere on the file system, rather than only in a specific directory.

The second command creates a symbolic link in the /usr/bin directory called just “ccdt”, so that you can launch the program by typing just:


…rather than having to remember the “.sh” bit at the end.

If you choose not to do either of these things, then you will only be able to launch the program by first cd-ing to a directory containing music files and then typing the exact and full path+filename to the executable (so you'd end up having to type something like '/home/username/Downloads/', for example).

CCDT technically depends on having metaflac installed before it can do its 'thing', so it will begin by checking that is installed on your system. If it can't find it, it will prompt you to install it and quit.

CCDT must be launched in a folder that contains FLAC files (otherwise, there's nothing for it to do!). If it doesn't detect the existence of any files with a .flac extension when launched, it will give you a warning about the need for FLACs to exist and then quit.

4.0 Example of Use

Let us suppose I have downloaded to /home/hjr/Downloads. Assume I have NOT copied it to /usr/bin or created a symbolic link to it. Finally, assume I have previously ripped audio tracks to /home/hjr/Music/Symphony_No.1.

Here's how I would then tag those files:

cd /home/hjr/Music/Symphony_No.1

That is, I would first physically locate myself within the directory containing the Symphony's files. I would then have to spell out the full path and filename of the CCDR shell script.

I could alternatively specify the script's path using relative naming, like so:


A set of two periods (..) each mean “move up one directory from my current directory”. So given I'm in /home/hjr/Music/Symphony_No.1, the two sets of dots takes me to /home/hjr -from which I can then reference the Downloads directory and the shell script it contains relatively.

Now suppose that I HAVE moved the shell script to /usr/bin and HAVE created the symbolic link to it. The same outcome would be obtained with these commands:

cd /home/hjr/Music/Symphony_No.1

The need to move to the place where the music files exist is still there, but because the shell script is now in my path and has been aliased to a short-form name that lacks the “.sh” extension, I can launch the program much more simply and without having to spell out full paths or relative paths at all.


CCDT was devised and written by Howard Rogers ([email protected]).


CCDT is copyright © Howard Rogers 2019, but is made available freely under the GPL v2.0 only. That license may be downloaded here.

Bugs Tracking, Feature Requests, Comments

There is no formal mechanism for reporting and tracking bugs, feature requests or general comments. But you are very welcome to email your comments to [email protected]

wiki/software/ccdt.txt · Last modified: 2019/05/31 15:53 by dizwell