Version: 0.46
-> Quick start -> Submitting -> Download -> History -> Known issues -> Reference -> Details -> ContactThis
font indicates things you can
type in.
Italic
in
addition indicates parameters, which
have to
be replaced by meaningful values.
- automatically:
- Copy the CMD scripts and the .DLL files[1] and optionally this documentation to some directory you like[2].
Execute install.cmd from there and follow the instructions. Note that the install script is not very well tested so far.- manually, via Internet:
- Copy the CMD script and the .DLL files[1] to some directory you like[2].
Set up the CDDB server once: CDDBMMCD -w -sserver, where server is the name of the CDDB server.
Example: CDDBMMCD -w -sfreedb.freedb.org
or CDDBMMCD -w -shttp:\\freedb.freedb.org -Pproxyserver behind a firewall- manually, with a local database:
- Copy the CMD script and the .DLL files[1] into the directory of the local CDDB database (where the folders misc, rock etc. resides)[2].
Use the program objects created by the install script or run CDDBMMCD manually:
- with a dial up connection:
- with audio CD in your CD-ROM drive: CDDBMMCD -oc
later, when you are online: CDDBMMCD -oQo- otherwise:
- Simply execute the script with a audio CD inside the CD-ROM.
Notes:
Submitting CDDB records is somewhat different from the other stuff. First of all it usually does not work in batch mode. The procedure is always in three steps:
Initiate a new
(1) or updated
(2) CDDB
record by either
(1) entering the disc information in the OS/2 CD-player after
you a CDDB lookup for this CD was unsuccessful
or
(2) modifying the previously loaded information in the OS/2 CD-Player. CDDBMMCD
supports revision automatically.
Create the submit records with CDDBMMCD using the
Before creating any submit record be sure to enter the information in the OS/2 CD player according to the rules for cddb entries. They are roughly:
Additionally there exists a special, CDDBMMCD-specific syntax extension to access some meta information:
These meta information is always parsed when creating a submit record. It will be kept in case of update records.
The DGENRE field of cddb protocol level 5 is not supported. However, it is kept in case of updates.
Submit the created CDDB records with CDDBMMCD -os or CDDBMMCD -oS. The first one will send you an e-mail with the result of your submission without modifying the freedb database. Only the latter one will really update the database, if the information is accepted by the server, of course.
It is strongly recommended to perform a test submission if you use the submit feature first. Also keep in mind that this software is still beta and you are responsible for your submissions. So it is a good advise to view the submit records manually before you send them to a freedb server. To force a resubmission use -oU.
Note that CDDB submissions
to the 'official' freedb servers must
use the http
protocol.
cddbp submits are always rejected.
ZIP file with source and this guide: Version 0.46
Problem
|
Work around
|
Comment
|
---|---|---|
The OS/2 CD-player may crash with an error message if CDDBMMCD is accessing a CD device during the OS/2 player recognizes a new CD. | Restart the CD player. | This is a problem of the OS/2 CD-player and may not be fixed here. |
When the CD player's database contains a large number of entries CDDBMMCD becomes very slow. | Always start the OS/2 CD player before executing CDDBMMCD. | The problem is the way how the REXX function SysIni works. It always opens and closes the file every time it is called. Only if another application holds the profile open the corresponding OS/2 API call is fast. |
The options apply according to the following (decreasing) precedence:
option
|
description
|
default
|
||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
-ddevice
or --device=device |
MCI name of the CD-Audio
device to query (for TOC). Multiple devices may may be separated by comma. |
cdaudio | ||||||||||||||||||||||||
-lpath
or --local=path |
Path to a local CDDB. This path should point to the directory where the subdirectories rock etc. are located. -l- or --nolocal disables the use of a local CDDB. | . current directory |
||||||||||||||||||||||||
-ttype
or --type=type |
Type of the local CDDB. S[tandard]
or W[indows]
or [auto]. see also standard version vs. windows version |
standard | ||||||||||||||||||||||||
-sserver
or --server=server |
Name or IP of the CDDB
server. Multiple servers may be entered comma delimited (without blanks). The entries have the form: [protocol:\\]server[:port][1]. |
no server | ||||||||||||||||||||||||
-Pproxy
oder --proxy=proxy |
Name or IP of the HTTP
proxy.
A Proxy puthentication is currenty not supported. Syntax: proxy[:port]. Port defaults to 80. |
no proxy | ||||||||||||||||||||||||
-uusername
or --user=username |
User name for cddb hello. | %USER% | ||||||||||||||||||||||||
-hhostname
or --host=hostname |
Host name for cddb hello. | %HOSTNAME% | ||||||||||||||||||||||||
-eemail
or --email=email |
Your e-mail address for submits via http protocol. | none | ||||||||||||||||||||||||
-o[+|-]op-codes
or --op=[+|-]op-codes |
One or more of the
following actions may be specified:
|
cqQo | ||||||||||||||||||||||||
-zpath
or --uploadpath=path |
Path for temporary storage of the upload files. This must include the trailing path separator. | .\ | ||||||||||||||||||||||||
-vlevel
or --verbose=level or -v or --verbose |
Set output detail level.
|
2 | ||||||||||||||||||||||||
-w or --write |
Save all settings (unless otherwise noted) as new defaults to the profile. This setting will not perform any other action than updating the profile.[3] | |||||||||||||||||||||||||
--reset | Reset all configuration options in the profile. This will not effect the meta information about your CDs. | |||||||||||||||||||||||||
advanced option
|
description |
default
|
||||||||||||||||||||||||
-pfile
or --profile=file |
Profile for CDDBMMCD. Of course, this may not be saved using -w. | scriptpath\ CDDBMMCD.INI[2] |
||||||||||||||||||||||||
--ext | Enable translation of
extended information in the xmcd
records.
Extended information will be appended in {}
brackets. See syntax
extensions.
Use --ext=0
to disable the translation explicitly. This option applies to the CDDB lookup and the creation of update records. In the latter case the previous information from the last xmcd revision is kept. Change this option with care, because if you perform a CDDB lookup with this option disabled and then create the upload packet of the same CD with this option enabled the extended information get lost in the public database. |
disabled | ||||||||||||||||||||||||
--codepage=CP | Codepage for the cddb database and/or server. All information is translated from CP when parsing an xmcd structure and translated to CP when creating an upload package. | 1004 | ||||||||||||||||||||||||
-fthreshold
or --fuzzy=threshold |
Execute fuzzy search, if no exact match is found. The threshold defines the number of frames which each TOC entry may deviate. -f0 disables fuzzy search. This does only apply to local database lookups. | 41 | ||||||||||||||||||||||||
--windbdelta=num | If the windows database version is selected by --type this parameter defines the maximum hash range of one database file. Example: with --windbdelta=1 a lookup for the disc id e311f20f will search for files named e3toe3, e2toe3 and e3toe4 but not for e.g. e2toe4 or e0toe3, because they use a larger range. | 6 | ||||||||||||||||||||||||
--hddvscpu=bytes | Threshold in bytes where the binary search algorithm of the Win database lookup turns into a linear search. Increasing this value from the default (10k) will increase the CPU load while decrease the HDD seek load and vice versa. | 10000 | ||||||||||||||||||||||||
--cdextra=bool | Enable/disable the CD-Extra work around. When enabled CDDBMMCD looks beyond the number of tracks reported by the CD-ROM manager. These are usually non-audio tracks. Normally there is no reason to turn this option off. | 1 (enabled) | ||||||||||||||||||||||||
--caseadj | Convert all titles to
upper-/lowercase automatically before
storing them in the CD player's database.
This is intended for CDDB records which are completely in lower- or
uppercase.
Usually this option does it's job well.
But you should always have a look to the result, because on acronyms
and some other stuff it is likely to fail. It is a good idea to upload an update after you corrected the (wrong) information. This option cannot be saved permanently in the profile with -w. |
|||||||||||||||||||||||||
--trackfix=level | Apply fixes to each
track title before storing them in the CD
player's database.
This is intended for malformed CDDB records, most commonly compilations
with various artists. The following level values are supported:
It is a good idea to upload an update after you corrected the (wrong) information. This option cannot be saved permanently in the profile with -w. |
|||||||||||||||||||||||||
--special=command | This option is used to
take some special actions, mainly for
maintance purposes.
When used the normal operation (-o)
is not
executed at all.
The commands
may be followed by additional
arguments separated with comma.
If the command or the arguments contain spaces the whole option must be
quoted, e.g.: "--special=UpdateWinDB,'freedb-update-20030201-20030302.tar.bz2'"
The folowing commands are supported:
|
|||||||||||||||||||||||||
--client=string | Overwrite client string at cddb hello. | cddbmmcd/2 version | ||||||||||||||||||||||||
--proto=level | cddb protocol level. You should neither play with this option nor expect it to work in all circumstances. |
5 |
Notes:
There are two versions of the freedb. The native and a Windows version (freedb-win*).
In the original each file is one CD. The filenames are 8 digit hex numbers, e.g. d70b6b11. It contains folders with 70000 and more files. This overloads every FAT file system. OS/2 (with HPFS) is capable of this, but you may use the Win version, too.
In the Win variant files with similar initial digits are consolidated. They have the form 00to01 ...
original Windows variant + incremental update quite fast - incremental update slow[1] - significant file system overhead
(even with HPFS which has 512 bytes per allocation unit)+ space saving + significantly faster access - slow access, especially in case of fuzzy searches[2]
+ possible on FAT volumes Notes:
- CDDBMMCD can perform incremental updates using the --special option. There is also an incremental update utility for Windows available. However, I don't know if this is helpful with OS/2. Maybe it works using ODIN.
- Because the files of the windows database version are grouped by the hash value, it is much likely that a fuzzy search will scan about 10% of the hole database. I do not recommend the windows database for fuzzy searches unless you have a very fast PC.
The MMPM CD player stores the information about CDs in the file CDP.INI in the MMOS2 folder. This file is in binary OS/2 profile format and should be accessed by the suitable profile functions.
The applications are the CD keys, calculated as follows:
MMSSmmss.ff Example: 46043612.40Within this applications the following values are defined:CDs with only one track have mmss.ff = 0000.00.
- MM
- total length of the CD, minutes [00..99]
- SS
- total length of the CD, seconds, truncated [00..59]
- mm
- total length of the CD minus length of the last track, minutes [00..99]
- ss
- total length of the CD minus length of the last track, seconds [00..59]
- ff
- total length of the CD minus length of the last track, frames (1/75 s) [00..74]
Beyond this built-in keys CDDBMMCD stores some additional meta information here. This keys are ignored by the MMOS2 CD player. There are no known interactions.Note that there are other keys which are not touched by CDDBMMCD to store e.g. the last continue point.
IMMCDDiscTitle CD title, ASCII 1 title track 1, ASCII 2 title track 2, ASCII ...
CDDBCategory category of the cddb data. Discontinued since version 0.42, see CDDBmeta. CDDBRevision revision of the cddb record. Discontinued since version 0.42, see CDDBmeta. CDDBMD5 MD5 checksum of the cddb record. Discontinued since version 0.42, see CDDBmeta.
This information is used to determine updates through the CD player's GUI automatically. The hash is created from the information as stored in the CD player's database. The CD title and the track titles are concatenated with a null byte as delimiter.CDDBmeta Summary of meta data. Since CDDBMMCD version 0.42 all of the above informations is stored in one key. The format is:
MD5-Hash category revision
The field delimiter is a null byte. Informations from older versions will be converted silently on demand. The old style information will be removed in this case.
Application key: Settings
Application key: PendingCDs
Value Meaning Command line option CDAudioDevice Space separated list of CDaudio device names. -d CDDBservers List of CDDB servers, delimited with blanks. -s CDDBType Kind of CDDB query
L local database lookup S server lookup LS both -l, -s CDExtraWA CD extra work around, boolean {0|1} --cdextra CDPiniLocation Path to the internal database of the MMOS/2 CD player. ClientString Name and version of the client program used at cddb hello, delimited by a blank. --client Codepage Codepage of xmcd records. --codepage Email address for submissions. -e EXTFields Enables the bidiretional converion of the extended fields in the xmcd records, boolean {0|1}. -ext FuzzyThreshold Threshold for fuzzy search. -f HDDvsCPU Threshold in bytes where the binary search algorithm of the Win database lookup turns into a linear seach. --hddvscpu Hostname Hostname used at cddb hello. -h LocalCDDBPath Path to the local CDDB. -l LocalCDDBType Type of the local CDDB. -t OperationCodes List of functions to execute. -o ProtocolLevel Protocol level for cddbp and http. --proto ProxyServer HTTP proxy address -P UploadDataPath Path where the upload files for submissions are stored. -z Username Username used at cddb hello. -u Verbose Level of detail for screen output. -v WinDBDelta Maximum range of hash values in one file of the Win database version. --windbdelta
Here is the state information about previously checked CDs stored. The name of the values is the table of contents of the CD. The assigned data is the state information.Application key: InternalThe TOC is coded as follows:
The items are delimited with blanks.
· number of audio tracks · total CD length in frames · first frame of track 1 · first frame of track 2
... · first frame of track n · last frame of track n +1
In case of CD Extra the number of tracks is only the number of audio tracks. The real number of tracks is the number of words in the string -3.The state is one of:
1 CD is to be queried. 2 time CDDB query was unsuccessful at time.
(Unix time format = seconds since 01/01/1970)3 CD information successfully stored. 4 filename Upload packet is ready.
Value Meaning CDDBMMCDVersion Last used version of CDDBMMCD.
If CDDBMMCDVersion is less than the current CDDBMMCD version, the profile is migrated to the new version, if neccessary.
If CDDBMMCDVersion is higher than the current CDDBMMCD version, a warning is generated. A back conversion is not supported. The application may not work as expected.
Suggestions, help, complaints (but not too much:-):
Original homepage: http://www.maazl.de/project/cddbmmcd/index.html