VCC - Virtual CD Changer for Windows

VCC is the custom frontend software that I wrote specifically for my car computer. It consists of three different programs:
 - VCC.exe - A front-end program which handles the directory navigation and controls MPXPlay
 - VCConfig.exe - Configuration program setting the various settings in VCC
 - VCCShut.exe - A shutdown utility which monitors the CTS line on a serial port and shuts down Windows when CTS line goes low

The music is organized in a two-level directory structure. From the music directory I use a directory for each letter of the alphabet. Inside the directories is subdirectory for each album:

                 /          \
                A    ...     Z
               /              \
          ACDC1      ...       ZZTOP3
         /     \              /      \
       01.wav...10.wav    01.mp3...10.mp3

The music directory can be in any place, but requires this structure for the software to function properly. The navigation is entirely directory-based. This eliminates the need for playlists and the hassle of maintaining them. This system works like a 26-cartridge CD-changer would, assuming the CDs are grouped alphabetically. Short filenames are used for both the music directories and the sound files.

Track and disc info are stored in two text files: fileinfo.txt and discinfo.txt. Discinfo.txt is used for disc naming. Fileinfo.txt is optional. If the file is present is will be used for track naming. If it's missing, track naming will still work if the music files are tagged.

An example fileinfo.txt is as follows:
01.FLA AC/DC:Jailbreak
02.FLA AC/DC:You Ain't Got a Hold on Me
03.FLA AC/DC:Show Business
04.FLA AC/DC:Soul Stripper
05.FLA AC/DC:Baby Please Don't Go

While putting the band name on each line is a bit redundant, MPXPlay doesn't see it as a valid list-file without it.

Likewise, discinfo.txt looks like this:
'74 Jailbreak

The advantage to using text files is that no special utilities are needed to update any of disc / track information. Your favorite text editor will do the job.

Hardware Requirements:
USB gamepad (recommended) or a numeric keypad (limited support)
Matrix Orbital 2041 (or similar) serial LCD display

Software Requirements:
Windows (tested on Windows 10 and Win10XPE)
MPXPlay v1.67 for Windows, the "small" version

[Gravis Gamepad Pro USB]


The following info is displayed, by default, on a 20X4 LCD:

[20X4 LCD in action]  Line1: Band Name
 Line2 : Album Title
 Line3: Track #  /  Track Title
 Line4: Time / Spectrum Analyzer / Bitrate or compression percentage



The configuration program has two sections. The first provides the means for configuring a game controller. The second configures the LCD. There LCD types are provided by vcclcd.ini. I included two different Matrix Orbital LCDs. Serial LCDs from other manufacturers will probably work after modifying the ini file.

[VCC Configuration Program]

The shutdown utility's configuration is stored in vccshut.ini. It's simple enough that it wasn't worth writing a configuration program for it.

[Shutdown Utility Configuration]

Shutdown Utility:

The shutdown utility starts minimized. It has a very basic user interface. It shuts down Windows when the CTS signal goes low for a full second (low for four quarter-seconds in a row). In Windows it does this by running the "shutdown /p /f" command. In Win10XPE it does so by sending keystrokes to the start menu.

[VCC Shutdown Utility]

Last Update: 5-27-2024