cdplayer.ini |
|
common questions, common answers :-) |
|
Are there any limits to cdplayer.ini? | |
Oh yes, there are. The current WIN95 version can only handle *.ini files
up to 64 KByte. In some circumstances, cdplayer.ini files beeing greater were
accidentually cut to 64 K. Microsoft released an
update file
dated 11-Apr-96. It is said, that this update solves some winsock problems.
Besides this I think, the 64 K cut-off there no longer occurs. If you have a cdplayer.ini file > 64 K and you insert a cd whose
information is above this limit, you get a 'new artist' display instead of the stored information.
Delphi programmers may like to take a look at my delphi corner with BigIni Unit which handles *.ini files greater than 64 K. |
|
What is BigCdplayer.ini? | |
This is the ini-file which can hold masses of entries for the CD player maximus. | |
How do I import tracklists from other programs to cdplayer.ini? | |
Please check out PLC, my Play List Converter. It supports several file formats. | |
Other import tools known? | |
CDMerge is another freeware tool and can be found at members.tripod.com/~CdMerge/. | |
What happens to these files if they contain 2 of the same entry? | |
Generally, the second entry is ignored. If you want to merge two or more *.ini files,
you should paste the better ones (yours of course) first. In my cdplayer.ini project, I try to merge the entries manually using the best data for each cd. Afterwards, they are split again into files for several countries. You'll have to merge them into your own file. |
|
Does the file get sorted out by cdplayer.exe when it is first loaded after a merge? | |
No. As far as I found out, the Win95 kernel routines ignore the duplicate sections in *.ini files when
reading, but don't erase them when writing the *.ini file. Note: in cdplayer.ini, the section is the cd-identifier e.g. [137EBFA]. |
|
Are all tags in the ini-file necessary? | |
Obviously not. I removed the EntryType= order= numplay= tags from my files. First, I've never seen an Entrytype other than "1" (whatever it is). Second, if you play your cds in standard order, then the order and numplay tags contain redundant data. All player programs I know run without this three tags, too. However, if you have your playlist reordered, the remove of the Entrytype-line causes a lost of your playlist. In my Guest House there's a simple program to erase unnecessary lines. |
|
Know anything about Deluxe CD Player? | |
More and more. :-) Please visit my threeTIX page and the articles section there. |
|
Is there any additional information? | |
If you did not get your infos yet, it's hard to find them. MS had released a short article How to Move CD player Settings from One Computer to Another but there is not much we did not find out ourselves... | |
The following answers are for programmers mostly |
|
As you must know, the cdplayer identifies each CD by generating a
header for each cd. My question is: how are those headers (index) generated? Is it coded onto each CD, or is it generated by cd-player? |
|
Obviously there is no unique id on every cd medium (think of the ISBN number
for printed books which are unique, or see ISRC-discussion below).
Thus the id is soft-generated. In case of Microsoft-based systems, the system does the work for you
(I think MSCDEX does).
How? The section checksum techniques of this document shows a solution approach based on the track start
positions. This soft-generated id is also known as the "volume serial number": use the DIR command to see what I mean. Note that sometimes it even happens that two differend cds generate the same id. On the other way we know that there are some releases of pop-cds which have different ids in different countries (eg. US vs. Europe). |
|
Programmers can get the id using the call
which you can find in the help files of your C(++) or Delphi compiler.
Convert the field lpVolumeSerialNumber to an hex string - so you get the
result which can be found in cdplayer.ini. Note: this method fails on
cds with less than two or three tracks. |
|
You can use the mciSendCommand function with parameter mci_Info and flag
MCI_INFO_MEDIA_IDENTITY . Convert the result string to an integer and then to a hex string. See Delphi example for details.
|
|
Visual Basic users might prefer the code example found in the article
Recognizing an Audio CD (external document - originally released by 'VB Online Magazine', issue 12/96). |
|
I found out another trick to get the serial number. Within Windows 95, a pseudo file is assigned to each audio track. These files are named Track01.cda, Track02.cda and so forth. You can access them with commands like dir and copy. Within your self-written programm you can "open" and read the file. Look at this sample dump of Track01.cda with some VB code. | |
checksum techniquesHere we have the first example, written in Delphi wich accumulates all TrackPosition values in a specific way to get the ID used in cdplayer.ini.Another example is now available for Visual Basic. more checksumsI found some (neary identical) articles from MS knowledge base, called How to Get or Create a Unique Audio CD Volume Label and VB 3: How to Get or Create a Unique Audio CD Volume Label.Steve Stasiw wrote me that these IDs are not identical to cdplayer.ini's. |
|
If you are a UNIX-user, take a look at the cddb / xmcd-project. Note that they use a different way of creating a 'unique' id: they are different to cdplayer's. Look at the extracted sample code here. | |
How can I use MCI_INFO_MEDIA_UPC to get the UPC? |
|
To get the universal product code (UPC) use
mciSendCommand function with parameter mci_Info and flag MCI_INFO_MEDIA_UPC .Again here one Delphi example. Remember, nearly every product you can buy has a Universal Product Code (UPC). You find the UPC printed as barcode on your goods.
Actually, a test series resulted in different values returned on each call to |
|
What is ISRC? | |
The International Standard Recording Code is a code to give a unique id
to audio tracks. This serial number consists of twelve bytes and is structrured as follows:
|
|
How can I use IOCTL_CDROM_READ_Q_CHANNEL to get the ISRC? |
|
Does anyone have an idea? I found some fragment documentation in MS Win NT DDK but I have no idea
how to use it. The story is: According to the red book standard for CD-DA (compact disc digital audio) the Q channel may contain a "disk unique catalogue number" or a "music-track unique catalogue number". The SubCode channel Q is (among others) part of the cd organisation, not of the user data itself. As far as I know, not every manufacturer uses these unique ids. Nevertheless we'd like to know how to access to them. |
|
Is there any correlation between MEDIA_IDENTITY, UPC and ISRC? Can one be calculated from another? |
|
Please mail me if you know more. | |
For additional information | |
[comp.publish.cdrom] CD-Recordable FAQ compact disc digital audio |