VCC

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:

                   MUSICDIR
                 /          \
                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. I'm using relatively short directory names. They're named the way that they are, in order to put the albums in the proper order.

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 it'll 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:
AC/DC
'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


Operation:
[Gravis Gamepad Pro USB]


Regular / Shift functions:
Play: Plays from the beginning of the first track when a new album is selected; plays from where it left off, otherwise
Select + Play: Availble while an album is playing. Skips to the last known track number and track position from history
Previous Disc: Navigates to the previous album. Note: the album starts playing automatically after a 3-second timeout. You can press "Play" if you don't want to wait the full 3 seconds.
Next Disc: The same, but for the next album.
Select + Previous Disc: Navigate to the previous album from the play-history. The 3-second timeout starts after releasing the select button. This also provides a quick way to get back to the album/track that was playing when a trigger button gets bumped, by mistake.
Select + Next Disc: The same, but navigating in the opposite direction through the play history.



Display:
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


Installation:


Configuration:

The configuration program has three sections. The first provides the means for configuring a game controller. The second configures the LCD. Two 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. The configuration program also provides the means to configure the serial port used by the shutdown utility.

[VCC Configuration Program]


Win10XPE and other variations of Windows PE do a poor job of initializing the serial ports.

[Windows PE Device Manager]


Versions 4.1 and later handle this by using a lower-level hardware ID. This eliminates the need to perform "fix-up" on the serial ports, significantly improving boot time.

[VCC Config Program in Windows PE]



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 uses the "wpeutil shutdown" command.

[VCC Shutdown Utility]



Last Update: 12-22-2024