For reasons I won't go into, I had need to re-install a laptop with (cough!) Windows 10. I am fortunate to have a license for the Enterprise Edition of that, so I can switch off most of the telemetry that causes a lot of concern for some people. I also am able to configure updates to happen in such a way that my laptop won't suddenly decide to reboot on a whim of its own and take two hours to install updates it thinks are more important than my work, which is the other main concern most people seem to have about Windows.
Take the telemetry and update issues out of Windows 10, though, and it's actually not a bad client operating system. I wouldn't store data I cared about on it (because it doesn't yet have a properly-functioning ZFS file system, so cannot prevent bit-rot. ReFS looked like it might be able to do an equivalent job, but its future is a bit hazy, given Microsoft's yanking of the ability to create new ReFS volumes out of Windows 10).
Anyway: cutting to the chase, I find myself using a Windows 10 operating system for the first time in a long while and what's one of the first programs I miss being able to run on it? My very own Classical CD Tagger, that's what.
I will add parenthetically that I don't miss the Classical CD Ripper on Windows, because there are excellent free CD rippers for Windows that put accuracy over speed, such as the completely free-of-charge xact Audio Copy or dBpoweramp, which costs money to buy, though a free trial is available. CCDR is a bit redundant on Windows, therefore, I think.
So anyway: the issue soon became: can I get CCDT running on Windows 10? I specifically didn't want to use the Windows Subsystem for Linux, because in its new Version 2 guise, that's just a Linux virtual machine running on a Windows host, which is too heavy for the purpose. I similarly didn't want to run VirtualBox virtual machines, because the transition between Linux and Windows is neither seamless nor transparent… and it's a too-heavy solution for the purposes of running a simple shell script!
I accordingly used that old standby, Cygwin, which provides a 'Linux compatibility layer' for Windows, much as Wine is a Windows compatibility layer for Linux. When you navigate the file system in Cygwin, you are actually navigating the true content of your C: drive -so, it's lightweight and very transparent to use: you see a file in Cygwin, in a Linux 'context', and you can immediately open up Windows Explorer and see exactly the same file in its native Windows 'context': there's no copying or transferring files between two different and distinct environments. Perfect and lightweight enough for a shell script!
It is therefore now possible for this to happen:
…which is, hopefully obviously enough, CCDT running on a Windows 10 desktop.
To make this even more a cross-platform tool than that, I've also very slightly tweaked the script itself (so it's now up to version 2.06). On ext4, ZFS, XFS or any other 'Linux-y' file system you care to mention, it's perfectly possible to create a file called (for example) 01 - Finale: Allegro.flac. You can see me doing this here:
That's on a CentOS 7 file server that's sharing its files out with Samba… so what does it look like in Windows Explorer? Er… not good:
The nice file name I previously supplied has been turned into something weird and not very nice at all! This is because Windows doesn't like certain characters in file names and thus converts them when it sees them, on-the-fly. In this case, the problem is the colon in the original file name. Linux didn't mind it, Windows does… as I can demonstrate by renaming the file on the Linux server as follows:
That's me moving the file so that it acquires a new name that has an underscore where the original had a colon. And what does Windows make of this revised file name?
Well, Windows is now happy too and displays the file name correctly -and, because it now understands the file has a .flac extension, it even knows to display it with the icon of the program I use to play flac files on Windows (VLC, in my case).
The point is, in other words, that whilst CCDT was happily renaming music files to match what their track title had been set to, it was doing it in a Linux-specific manner that would not allow the resulting files to be transported easily to a Windows machine. The new 2.06 version of CCDT converts all 'unacceptable' characters in the original file name to NTFS-friendly equivalents -which is a nice way of saying that question marks, colons, greater-than, less-than, double-quotes, pipes, back-slashes and asterisks will all be converted to underscores. The tags themselves do not get this treatment, so a file will still correctly identify as What: are you going to kill me? in a music player, but on disk will appear with a physical file name of 01 - What_ are you going to kill me_.
So the short version of this blog is: because I was forced to work in a mixed Windows/Linux environment, CCDT is now NTFS-naming-convention friendly. And, I've got CCDT working on Windows directly, thanks to Cygwin.
In consequence of that, firstly: the new version (2.06, for the curious) of CCDT is available in the usual place. Upgrading to it simply involves downloading the new version, deleting the old version from wherever you stored it, and copying the new version back into the same place. And secondly: I've written a new article about how to get CCDT working on Windows.