
CDDA32 Version 0.9 (build 0x0062)
This is the first full release of CDDA32
Homepage:  http://www.ncf.carleton.ca/~aa571/index.html

CDDA32 - What is it?
--------------------
CDDA32 is a Shareware command line utility that runs in a DOS window
under Win95 and WinNT that allows the user to extract digitally perfect
copies of samples from audio CDs. It supports both SCSI and
ATAPI drives.  This process is often referred to as Digital
Audio Extraction (DAE).

What is included in the demo version?
-------------------------------------
The demo version that is freely available for download is a fully
functional version except for a couple of things.
1) The software is limited to accessing the first 5 tracks from
   any CD.
2) The ADLC, SPEED, and performance display functions have been
   disabled.
Everything else is fully functional.  When you register, you will
be sent a key to unlock these features.  This way you are able
to fully evaluate the software before registering it.

Some History
------------
In February 1993, we needed to get some audio samples into digital
form on my PC.  Toshiba had just released the 3401 CDROM drive
which allowed reading of DA frames across the SCSI bus.  Because
there were no programs available to do this, we had to write our
own.  We used it to get the samples, and then left it alone because
we had no idea anyone else wanted to do this.  Some months later
CDGRAB came out, but they wanted much too much money for their
program, so we cleaned up the program and released it as CDDA09A.ZIP.

Over the last 4 years there have been a great number of feature
additions.  We have added support for a great number of drives.  Now
the software has matured into a Win32 compliant application.

What drives support DA?
-----------------------
This is a very good question.  In order to support reading DA,
a number of things have to happen.  The first is that the drive
itself has to support the function.  Second, the device drivers
have to support it, and third the software has to support it.

CDDA32 takes care of the third part.

To determine the first part (drive supports DA), you will likely
have to rely on the word of others on the net, or try the software
for yourself.  If you have an ATAPI drive then you can run another
program of mine called ATAINF.  It will display a lot of information
about your drive and will tell you if it can read digital audio.  The
file is available from Simtel in msdos/cdrom/atainf13.zip.  There are
also pointers to the most recent version of ATAINF on my homepage:
http://www.ncf.carleton.ca/~aa571/index.html

The second part (drivers support DA) is often a problem.  We have
done a lot of work on trying to get an understanding of these drivers.
Look in the configuration section under DRIVEAPI for a description
of the various driver options supported by CDDA32

Please don't email us and ask what drives should you buy.  We don't
know.  Models come and go in a matter of weeks, and since almost no one
ever sends us email saying the software works well, we don't keep
a list of good and bad drives.

How to install the software?
----------------------------
In the interest of keeping the distribution small, we have not put
together an install program.  This is something you will have to
do yourself.  If we can find a very small installer package for
windows that doesn't cost an arm and a leg, then maybe this
will change.

Part of the licensing for this software requires that the contents
of the ZIP file remain unchanged.  If you are passing this around
don't change the files.
The distribution contains the following files:


They should be put in the following directorys:

For a complete description of how to use the ASPI drivers, have a
look at the CDDA32 web page: http://www.ncf.carleton.ca/~aa571/index.html

Once you have installed all the files, you can use the program CDDAINIT
to try to configure the software for your machine.  It will go and
try to read audio from a CD and then set up the INI file.


How do I use this program?
--------------------------
There are a number of command line options that can be used to control
CDDA32.  As well there is a file called CDDA32.INI that contains a
number of entries that are rarely changed, and would otherwise
clog up the command line.

Command Line Options
--------------------
The following are the available command line options:
/ID /NJC /P /FORMAT /T /F /O /V /Q

Track Selection
---------------
To extract audio from the CD you select the track you want by number
using the /T option.  If you wanted to extract track 3 then you would
use the /T 3.

Copyright Protection Override
-----------------------------
Every track on every CD has a bit which identifies if the track is
"Copy Prohibited" or "Copy Permitted"  CDDA32 will not let you save
a copy prohibited track to disk unless you use the /O option to knowingly
override the copy protection.  Anything you copy using this option
is up to you and the copyright holder.

Verbose Output
--------------
When running CDDA32 the amount of text output is limited by default.
If you are interested in seeing more information then you can add the
/V option.

The "don't extract" mode
------------------------
You can run CDDA32 and it will do every thing up to the point where
it starts extracting audio.  This is useful in the debugging process.
You just have to add the /Q option to the command line.

Drive ID
--------
The /ID option allows you to manually set the SCSI ID of the CDROM
drive you want to use.  This is useful if my software incorrectly
guesses your drive's ID, or if you have more than one CDROM drive
in your system.  It is used to give the host adapter number, the drive
ID and the logical Unit Number (LUN).  For example if your drive
is on the second controller and is ID 4, then the option would be
/ID 1:4:0
Note that the host adapter number, the drive ID and the LUN are values
starting at 0.

Jitter Correction
-----------------
Since virtually every drive out there does a bad job of accurate
seeking, it is necessary for the software to compensate for
this sampling jitter.  This is accomplished by reading overlapping
blocks of data from the CD and 'knitting' them back together.
Some machines have no jitter, so using the /NJC option will increase
the performance.  Other drives have so much jitter that the software
cannot compensate.  In that case you could use the option to get
the software to run, although the output audio quality may not be
very good.

The /NJC option forces the software to not do any jitter correction
to the data read from the CD.  This means that the program will run
faster, but that the files created cannot be guaranteed to be 100%
perfect copies. 

Play Audio
----------
The /P option starts the CDROM drive playing the selected range of
audio out either the headphone jack on the front or out the line level
jack on the back.  The running of the option will not give any
information as to whether the software will successfully extract digital
audio, it just uses the audio play feature that is in every drive.

Output file format
------------------
The /FORMAT command is used to select the output file format of the
audio data.  You can set this to either WAV or RA.  WAV will give standard
Microsoft style WAV files.  RA will give RealAudio compressed files.
When using RA, you need to also specify the output bit rate.  You can
used the accompanying program RA_MODES to display a list of all
available bit rates.  For example to set the audio to RealAudio
'flavour' 7 you would use /FORMAT RA 7
The default format is WAV.


The CDDA32.INI file
-------------------
The CDDA32.INI file contains a number of configuration values that
are used by CDDA32.  If you remember the program CDDA, there were often
a large number of command line options that were needed to run
the program.  In CDDA32 we have moved the options that are likely
to change very little into the INI so that you don't have to type
them over and over again.
Here is an example of the INI file:

[CDDA32]
BLOCK=20
OVERLAP=3
DRIVEAPI=ASPI
MAX_MISMATCHES=0
MULTIPASS=NO
ADLC=6000
QUIET=NO
SPEED=0
START=10000
END=11000
DRIVELETTER=I
CONFIG_OK=YES
CONFIG_ERR_NUM=26
FILENAME=d:\temp\LongFileName

The options kept under [CDDA32] in the file are:

DRIVELETTER
-----------
The software will do its best to build a list of drives on your
system and attach the drive letters to those drives.  You can
use this option to force the software to run with a specific
drive letter other than the first one found.  For example to set
the drive to I:
DRIVELETTER=I


DRIVEAPI=ASPI
The first releases of CDDA32 were written to talk exclusively
through the ASPI interface.  This has caused a lot of trouble
for a number of people.  Since then we have added two more
interfaces for the software to talk through to talk to the drive.

The difficulty in using ASPI is that if you install updated
drivers from ADAPTEC on your machine, then you will lose the
ability to use CDDA32 with ATAPI drives.  Under 95 the solution
can be to re-install the old drivers that came with the OS, or
you could use the MSCDEX option.  Under NT, your solution is
to either install the really old drivers that are full of bugs,
or to use the WINSCSI option.

The first is MSCDEX.  If you set DRIVEAPI=ASPI, then CDDA32 will
only talk to the drive through the MSCDEX interface.  This will
only work under Win95 and WILL NOT WORK under NT.  You would
typically use this option if your drive is ATAPI and you are
having trouble with the ASPI option.

The second option is WINSCSI.  It is an alternative interface
to talk to the drives.  Under NT it is a quick and easy way
of using both SCSI and ATAPI drives without having to find
and install the drivers from ADAPTEC.  Under Win95 it doesn't
buy you much.


BLOCK=20
OVERLAP=3
The BLOCK option allows you to set the number of blocks to be read
from the CD at a time.  You can set the BLOCK as high as 26
(assuming no overlap) to increase the performance of CDDA.  This magic
number of 26 is the same as 64K of memory which appears for many systems
to be a magic number for the maximum number of frames you can read at a time.
Associated with this option is the OVERLAP option which allows you
to specify the number of blocks overlap at the start and end of 
each read from the disc to be used in the jitter correction.  Before
Many of the newer drives can run with an overlap of 1 to give higher
performance, and many of the old drives often need an overlap of 3 or
higher.  If you are getting jitter values which are always less than
275 then you should be able to use a jitter value of 1 or 2.  If you
are getting too large jitter errors, then you can try making the overlap
larger than 3 to see if that fixes the problem.  Remember that the memory
buffer for reading frames is 26 blocks long.  The formula for BLOCK and
OVERLAP is  (overlap*2)+block <= 26.  You may have to play with the BLOCK
values to find ones that work optimally on your machine.

ADLC
The Average Digital Level Control (ADLC) command is used to
electronically set the volume levels of audio data before saving to disk.
The HEX number given is used to scale the output audio.  The value itself
is a number from 0000 to 7fff, and represents the maximum output level for
the track.  The software will automatically go and find the levels for
the track, and then adjust the volume to match the value entered.

If you want to have approximately the same volume levels from 
audio tracks taken from different CDs, you have to make sure that
the output files are all set to the same ADLC.  A typical example
would be ADLC=5fff

QUIET
The quiet option is used to determine if the software will pause
after issuing warning messages.  If it is set to YES, then the
software will not pause when a warning message is issued.
To pause on warning messages, you would set the line to: QUIET=NO

SPEED
The speed command is used to manually set the speed of the drive.
By default most drives are set to their highest speed, so trying
to use this command will likely not help performance.  The normal
use of this command is to slow down a drive that is running too
fast and is producing errors.  The value set is a multipling factor
for the speed.  For example to set the drive to 8x speed the command
would be: SPEED=8

START
END
These two commands are used to manually override the start and
end times of extraction.  Normally, the start and end times are
determined by the /T option, however the user might want more
specific control.  The values entered are in Logical Block Address
(LBA) mode.  This translates from the Minute Second Frame (MSF)
mode by the following equation:
LBA = Minutes*75*60 + Seconds*75 + Frames
An example of extracting LBA 10000 to 11000 would be:
START=10000
END=11000

FILENAME
This option is used if you are interested in making use of Windows
long file names.  Thanks to the compiler, any filenames entered on
the command line are all in capitals.  This entry in the INI file
appears to be the only way to get bot capitals and lower case letters
for the file name.  An example would be:
FILENAME=d:\temp\LongFileName


MAX_MISMATCHES
MULTIPASS
Thanks to an apparent bug in the Oak Technologies OTI911 chip set,
there are real problems running and CDDA like program on some
machines.  It seems that this bug that is in many drives from
many manufacturers such as Hitachi, Goldstar, and NEC, randomly
screws up the data samples coming from the drive.  If you are 
interested in more information on this, have a look at our webpage
http://www.ncf.carleton.ca/~aa571/index.html

Typically this bug is only found in ATAPI drives, so you shouldn't
have to use this option for SCSI drives.  If you also get the program
CDROMCHK from our website, it will tell you if your drive likely has
the bug.  If it does, then you might consider trying the following
settings:
MAX_MISMATCHES=256
MULTIPASS=YES


Examples
--------
CDDA32 /t 2 /f test
this copies track # 2 to a file called test.wav  It used the first found
cdrom drive by default

CDDA32 /t 2 /f test /o
this does the same as the previous one except that it uses the /O option
to force you to knowingly override the copyright protection on the CD

CDDA32 /t 2 /format RA 7
this copies track # 2 to the file name listed in the CDDA32.INI file
and also compresses the audio into a RealAudio flavour 7 file


Copying and Registration (does he mean this costs $$$?)
-------------------------------------------------------

We are allowing full freedom to copy this program.
Registered users will receive a key file to "unlock" all of the
features that are disabled in the demo version.
There is NOT a pro version available for an unreasonable sum of money.

The license for this software is very simple.  You may use the demo
version of the software for a month.  If you decide you like it and
want to register it, great.  If it doesn't work on your machine, or
you don't want to register it, that is fine too, you are limited to
using for a month.

Quite simply: If you use it, then you need to register it.

The registration fee for CDDA32 is $20 US.  We believe that
this is a fair amount given the amount that the program does.

We won't be asking for a fee every time a new version comes out.
There will be fees for completely new programs.  For example CDDA32
is a completely different program than CDDA.  CDDA users don't
magically get to use CDDA32.

The fee will give you a lifetime (or as long as we bug fix and add features)
of free updates via the Internet.  We will also notify registered users 
by email of any new versions for a year.

The mail address is:
      Jim McLaughlin
      337 Nautica Ct.
      Indian Harbour Beach, FL, USA
      32937

If you have any questions, my email address is aa571@freenet.carleton.ca,
but RTFM before you start sending me then questions.

How to get hold of us for help.
-------------------------------
If you want to mail me about problems or to tell me I'm going to rot in
HE double hockey sticks for helping to copy music, put your message in
a file and copy it to the NUL device. :>

If you want to make suggestions or want to send compliments you can contact
me at the address below.

Before you send email, do us a favor.  Go over to
http://www.dejanews.com
Once you are there, look up your problem to make sure that no one
else has posted to the net with the same proble.

Make sure you look through the FAQ of questions and answers on our
web site.

If you would like assistance in solving problems, please include all
dumps from all the related programs.  You should be able to
run the programs like this and get the dumps in a text file:
CDDA32 /T 2 /O /F /V testfile >dumpfile.txt

It is always helpful to add the /V option when doing the dump.
This dump may appear a little mixed up, but all the information we
need to help you will be in that file

we have real difficulty in tracking down problems without these
dumps.  In the past the majority of people asking for help just send
along a short note telling us our program doesn't work, and what
they remember the error messages saying.  This just doesn't cut it.
we have to have the dumps to help.

The bottom line - RTFM before writing us.  Also read the alt.cd-rom
FAQ.  many of your questions can be answered by reading.
EMAIL: aa571@freenet.carleton.ca


Known bugs:
Some alpha users have reported problems using the software under NT4.0
with SP3.  I know there is something wrong in the WinSCSI DLL file
and I can't get them to fix it.  For the time being you will
be out of luck.  I'm looking into alternatives.

Other than that the software is very stable.


Some notes on using the software:
---------------------------------

It appears that using CDDA32 on a machine that has Auto Insert
Notification enabled may not work.  It is always a good idea
to turn off this feature any way.

Here's how to turn auto-insert notification off in Win95:

1. In Control Panel, double-click the System icon. 

2. On the Device Manager tab, double-click CD-ROM, and then double-click 
the installed CD-ROM device. 

3. On the Settings tab, click the Auto Insert Notification check box to 
select it. 

4. Click the Close button. When you are prompted to restart your 
computer, do so. 


Here's how to turn auto-insert notification off in NT 4:

You have to edit the registry manually:
1. Open your registry editor by selecting Start and Run, then type
"regedt32".
2. Select the "HKEY_LOCAL_MACHINE on Local Machine" window.
3. Double click on "System."
4. Double click on "CurrentControlSet."
5. Double click on "Services."
6. Scroll down to "Cdrom" and single click it.
7. On the right side of the window, double click on "Autorun."
8. In the box that pops up, change "Data" from "1" to "0" and click OK.
9. Close the registry editor.


The "tweakui" util from MS powertoys (free) can disable the autorun for
both NT4 and Win95.

