CDDA Version 1.5 (build 133) - This is the tenth release of CDDA. **** NOTE **** Release 1.0h was the last free release of CDDA. Since then I have made some drastic changes to the program to include XA and most importantly CDi. It is because of the fact that Phillips in their infinite wisdom want to "license" their CDi technology, that I must now turn CDDA into shareware. I am not happy about having to shell out several hundred dollars to get ahold of their "GREEN" and "WHITE" books. The new registration fee is small, and I don't intend to screw the user with paying a more than $100US fee before knowing if it may or may not work for them. I know I've said it before, but this could be the last release of CDDA. I have so little time to work on it now, that it is taking months just to get a small bug fix released. As far as I can tell, it seems to work fairly well on most machines now, and there is not a lot I can add in the way of new features. Unless there is a life threatening bug found, I can't expect to have the time to put into this program for a while. The amount of email I get now is getting to be a problem. If you want help make sure you send me all the info about it, if you expect me to respond quickly. I don't give high priority to messages like - "Please help. I can't get your program to work." If you don't tell me a LOT more than this, don't expect much in the way of help. PS: I have been getting a lot of mail from people who are having trouble running CDDA. It turns out most of them are running it in a DOS box under Windows. This is usually a bad thing. I have added a check to see if either disk caching or Windows is running, and if so will warn you of the potential problems. Again I really don't expect to have a version that will run reliably under Windows any time soon. CDDA has been running very well for the last few months, and it would appear that it is stable enough not to need any more updates. I just don't have any more things I can fix. CDDA - What is it? ------------------ CDDA is a DOS PC based utility that allows the user to extract digitally perfect copies of samples from audio CDs. It also allows the user to extract MPEG streams from CDi Digital Video CDs, and VideoCDs, and XA frames from CD-XA CDs. Some History ------------ In February 1993, I 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, I had to write my own. I used it to get the samples, and then left it alone because I 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 I cleaned up the program and released it as CDDA09A.ZIP. Note: Some time later I heard from a very irate person who told me I couldn't use the name CDDAxxx.zip because he was already using the name. I've looked everywhere, used ARCHIE, and asked people who seem to know every program on the net, and no one has seen this guy's program. However, in the interest of keeping peace on the net, I have changed the distribution file name to DA2WAV1G.ZIP. The program itself will still be called CDDA. NB: I finally found this elusive CDDA. It turns out to be a CD Duplicate Analyzer to search for duplicate files on two different CDROMs. The first release fully supported the Toshiba 3401 CD-ROM drive. I have since added a whole bunch more including MSCDEX only. I have given prerelease versions of my program to people who have to some degree had success with other drives. I have no guarantees that this program will work with your drive. Since the release of 1.0a I have heard from people who were having trouble with the NEC 74-1/84-1 drives. So, I went out and borrowed one for a few days. To my surprise the 84-1 didn't work. The next thing I did was get the data sheets for the drive sent to me from the NEC faxback. There is no mention of being able to read DA frames on that data sheet. Next, I reread the NEC programming manual. It says about the 74-1/84-1 drives "Read CD-DA is under consideration of content in the SCSI support commnds". This suggests that it may or may not be supported. Next I called NEC tech support. They told me that "reading digital audio through the SCSI port is NOT supported on the 74-1/84-1 drives. It is supported on the 3x and 4x drives." So, for the time being, I will leave in the code to support the 74-1/84-1 drives. If I don't hear from someone who gets it to work in the next while, I will remove the support and mention it in this file. I have also heard from someone who has a NEC 211 drive. I have no idea what this drive is other than it is a 2X drive. This person has had good success running CDDA. I have also heard from someone with NEC 210 who has not had success. If anyone knows more about programming for NEC drives please let me know. To add to the NEC confusion, NEC tech support is still telling people that the 74-1 and 84-1 drives CAN read DA frames. This is just not true. If NEC can't get their own tech support staff trained, can you imagine the quality of their drives? I wanted to be sure that I had full support for all the NEC drives, so I called tech support again. This time I had to wait on hold for over an hour to talk to a tech droid tell me that he didn't know the answer, but would call me back later in the day with an answer. That was six+ months ago and I haven't heard from him. Next, I tried the email tech support for NEC. I got an email back saying that they would look into it and get back to me right away. I have sent follow up emails, and again I haven't heard from them in over six months. I am not going to try any more NEC support. Period. If they can't get their act together to support their users/developers, then everyone should buy drives from another vendor. With all the trouble over the OEM'd 3x drive, I would think that no one would ever buy a NEC drive again. BTW, has anyone heard of a NEC drive since the final version of the 74/84 that actually works correctly? I know I haven't, and that includes all the new 4x and IDE drives. I you know otherwise let me know. In the mean time I might suggest another vendor. There has been a lot of talk about the Mitsumi drives and whether they will work with CDDA and like programs. The bottom line is this: I talked to an engineer in the CDROM group at Mitsumi, and he told me that none of their drives will read DA frames, and that none of their drives ever will. It appears that Mitsumi is concerned about the copyright issues of CDDA. I know we have all heard rumours about people getting the drives to work, but I trust the word of the head s/w designer for CDROM drives over a fourth hand rumour. If your drive has a part number like FX001D or FX400, then you have a Mitsumi drive and you won't get DA from your drive. The reason I have left the Mitsumi in the program is that the Mitsumi drives WILL read XA/CDi frames. For that reason, you can extract your MPEG movies, but you can't extract DA. Different ROM revisions cause the drives to do things differently. One version may work just fine and others might not. It is very tough for me to help with drives that don't work, when I don't have one of those drives to work with. If your drive revision is on the bad list, I don't know what to tell you. Perhaps you can make a really big stink with the manufacturer and have them upgrade your rom. Here is a list of known good and bad rom revisions. I will add to this list as I receive reports from the field. Hint: that means if you get this program working, please, please, please send me dumps of the output, so I can update these docs. You will notice no changes to this list since the last version of CDDA. This is because I haven't received any dumps from people that have the program working. good bad ---- --- Sony 561 rev 1.9a Sony 561 rev 1.7x Sony 561 rev 1.8p Sony 561 rev 1.8f Sony 8012 rev 3.1e Sony 55s 1.0q Toshiba rev 0283 Toshiba rev 2732 Toshiba rev 3593 NEC 211 rev 1.0 NEC 84-1 rev 1.0 NEC 210 (note: I'm giving up on this list because so few people report back with decent descriptions about what works and what doesn't. Don't expect any new additions to this list.) What drives support DA? ----------------------- I have heard from many different people who say such-and-such drive will read DA frames. The following is a list of which drives which I understand have the ability to read DA frames, and that I have included support in CDDA: (thanks to bwilliam@iat.holonet.net for starting this list). Note: My including suport for a drive does not mean that it is guaranteed to work on your machine. It means that I have either heard from someone who has managed to get it to work or I have the programming manual for the drive and have included the code to support it. Certainly don't go out and buy a specific drive on this list just because I said CDDA might work. Be sure to try the drive before you buy. Apple 300, 300i, 300e (Sony CDU-8003, CDU-8003A, CDU-8012) Apple CD300+ Chinon CDS-535 COMPAQ CR503/CDU561 DEC RRD42 Goldstar GCDR-540 IDE HP 4020 NEC CDR 200, 300, 400, 500, 600, 900 series NEC CDR 84-1/74-1 (rumoured with special firmware) (NEC told me that it didn't exist) Panasonic CR-562B/563B/572/574/581 Pinnacle RCD1000/5030 Pioneer 124/624 Plextor 4Plex/6Plex Sanyo C3G IDE Sony CDU-561, CDU-31A, CDU-33A, CDU-55S, CDU-55E, 76E/76S Toshiba XM3301 (Silicon Graphics) Toshiba XM3401, XM4101, (XM3501 with 0925 and later firmware), 3601, 5302 Hitachi Matshita (Panasonic) 503 Yamaha CDR100/102 Kodak PCD225,6x/Philips CDD522/Plasmon RF4100/JVC XRW2001 The code to support the Pinnacle RCD1000 is included in CDDA. However, as of this writing, there is a problem with the drive itself that prevents CDDA from running. I have heard from tech support that they will have a ROM revision real soon now that will fix the problem. If you have one of these drives I suggest that you call Pinnacle and scream at them for the fix. There are a whole slew of new drives coming out with the ATAPI. A lot of rumours are floating around as to whether they will work or not. Toshiba especially is coming out with a new drive every other week it seems. Until I can get more detailed results, I will not enter them in the supported drive list. You may want to run CDROMINF.EXE and have a look at the output. If there no mention of being able to read RAW frames, and/or the RAW READ SIZE is not 2352, there is no chance that CDDA will work using the MSCDEX interface. Also, if it reports that your drive supports reading RAW, that DOES NOT mean that CDDA will work. It all depends upon the person who wrote the driver for your drive. If he/she passes DA frames to MSCDEX, you're laughing. Otherwise, you're out of luck. If you have an ATAPI drive then you might also want to 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/atainf10.zip There are rumors that the Mitsumi LU055 drive will work using the MSCDEX interface, but I have yet to hear specifically what version drive, and what version driver works. NO OTHER Mitsumi drives are supported. It is not my fault, it is Mitsumi's fault. Complain to them not me. If you know or think you know of other drives, let me know and I will do some investigating. What is this new CDi support? ----------------------------- Phillips has developed a standard for storing about an hour of video and audio on a standard CD. The data is really a long MPEG I stream. CDDA will allow you to extract either the raw MPEG stream, or just the video stream. You can then play back the movies with any of the standard MPEG file players. Have a look at the included file CDIFAQ.TXT. This gives a very basic run down of what CDi is all about. Phillips has two disc standards: WHITE book and GREEN book. Green book was the first standard, but was really only any use if you were using a real CDi player. It has a proprietary file system and most CDROM players won't accept the discs. Phillips finally smartened up and decided that they wanted to expand their market so they came up with the White book standard. The only difference is that these new discs come with the file system built around ISO 9660. This way most every CDROM drive in the world will allow you to look at the directory structure. To get at the movie data you still need a drive that supports CDi. Fortunately, as far as my program is concerned, if your drive supports XA and you have a White book disc, then you are probably ok. When you have a White book CD installed, CDDA detects this and will attempt to display a list of MPEG streams contained on the disc. They should be displayed as file names from the CD in the form of /MPEGAV/AVSEQ*.DAT. It should also give you an idea of the starting block of the stream if you want to use the /LBA option. Have a look at the included file CDCOMPAT.TXT. It is a list from Sigma Designs (the people who make the RealMagic MPEG card) as to what CD-ROM drives work with CDi movies and what don't. Have a look at this list before yelling at me because your drive doesn't work. How do I use this program? -------------------------- This is a command line utility which allows the user to specify the start and end points of the data transfer and the output type. The start and end points may be entered in one of three modes,: LBA, MSF and T (track). Make sure that you don't use more than one of these modes in the command line because it really confuses the parser in CDDA. Logical Block Address mode is the number of the frame from the start of the disc. Minute, Second, Frame mode specifies the time from the start of the disc in actual time. Track mode allows you to dump an entire track (or song) to disk. The LBA and MSF are related by the following formula: LBA = Minutes * 60 * 75 + Seconds * 75 + Frames - 150 The lead in track is usually 150 because there are usually 2 empty seconds at the start of a CD, but it can also be any number +- 75 frames from 150. A commmon number other than 150 is often 182 or 183. The Toshiba, NEC and MSCDEX programming manuals define the LBA equation to be as above with -150 at the end. The Sony manual is very vague, and it could be interpreted as either -150 or as -(lead in track). Since two of the three manuals say clearly -150, I have chosen -150 for the Sony as well. I managed to do a fair bit of testing on a Sony 561 drive, and it appears that the -150 figure is correct. If anyone has more precise information on the Sony please pass it along. The /ADAPTER option allows you to manually set the number of SCSI Adapter that has the CDROM drive you want to use. This is useful i if my software incorrectly guesses which adapter your drive is using, or if you have more than one adapter in your system. 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. The /LUN option allows you to manually set the SCSI LUN of the CDROM drive you want to use. This is useful if my software incorrectly guesses your drive's LUN, or if you have a multi-CD drive in your system like the 6 Pack from Pioneer. The /MSC option allows you to manually set the MSCDEX drive letter 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. This option does not force the software into the /M option. The /M option forces the software to use only MSCDEX commands. This may or may not work with your drive. If you don't have a SCSI CDROM drive with ASPI drivers, this is your only hope. This option would be used with the Panasonic CR-562/563, Sony CDU-31A/33A drives. The /ATAPI option is to bypass the device driver and MSCDEX for the DA specific portion of CDDA. This new code is very preliminary and will probably hang your ATAPI drive once and a while. I wrote this code to show that a drive can or cannot read DA, regardless of what the driver says. If you find that using the /M option does not work with your ATAPI drive, try using the /ATAPI. If it runs, even for a few frames, then your drive is not the problem when using /M, it is your device driver. It is at this point that you need to start screaming to your vendor about crappy software. If /ATAPI doesn't work, and you have looked at the output of ATAINF which says your drive doesn't support DA, then you are really out of luck. ATAPI is followed by two parameters the IO address of the controller card, and the device number. eg. /ATAPI 170:1 The IO address can be one of the following 1f0 170 1e8 168, and the device can be either 0 (master) or 1 (slave). You need to remember to use the /M option in addition to the /ATAPI option otherwise CDDA assumes that you are using a SCSI drive. 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. 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 /BLOCK option allows you to set the number of blocks to be read from the CD at a time. Before version 1.4a this was fixed at 10. You can set it as high as 56 (assuming no overlap) to increase the performance of CDDA by as much as 40%. This magic number of 56 is the same as 128K 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 version 1.4a the overlap was fixed at 3. 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 56 blocks long. The formula for /BLOCK and /OVERLAP is (overlap*2)+block <= 56. You may have to play with the /BLOCK values to find ones that work optimally on your machine. When you are using CDi or XA modes the maximum value for /BLOCK has been fixed to 26, and the /OVERLAP values are always 0. Since there is no need for jitter correction with CDi and XA the extended block size for DA is not necessary. The magic number of 26 also applies to Windows 95. If you use anything more than that it tends to crash. Play with values larger than 26 under Win95 at your own risk. The /CDIVIDEO and /CDIRAW options are to be used when you have a CDi movie disc. /CDIVIDEO allows you to extract just the video portion of the MPEG stream. /CDIRAW allows you to extract the entire MPEG audio/video stream. If you use a program like VMPEG, or have a RealMagic card, then you will be able to play the movies from hard disk instead of from the CD. One thing to remember when using the CDi options: CDDA must hunt through the disc to find the start of the stream. A good way to figure out where the streams start is to look at the dump from CDROMINF. If you have a White book disc, then the streams start at the same point as the tracks 2 and up. Track 1 is for the file system and support files, and tracks 2 and up are for the MPEG. If you have a Green book disc, then you will have to choose a start point which is early enough in the disc to find the stream start. Often the streams start around LBA 3400. There may be more than one stream on a Green book disc. If you are using a White book disc, your best bet is to use the /T option, if you have enough disc space. When you want to play the MPEG files that you have extracted, your best be is to use a program like VMPEG. The latest version now also plays the audio. Remember that you are going to need a lot of computing muscle to do the MPEG decoding. Have a look at the following news post about CDi. From: davido@aimla.com (David Oseas) Newsgroups: comp.multimedia Subject: Re: Wanted:CD-i mpeg files viewer without mpeg card Date: 11 May 1995 17:38:08 GMT Organization: Philips Media Lines: 23 Distribution: world Message-ID: <3oti21$f6f@silver.aimla.com> References: <3od40u$pqj@ufrima.imag.fr> Reply-To: davido@aimla.com NNTP-Posting-Host: gneiss.aimla.com In article pqj@ufrima.imag.fr, ageay@turing.imag.fr (Alexandre GEAY) writes: >i want to play sound from CD-i mpeg files with the video! > I want the Cray-X/MP you're planning on running it on! Seriously, I don't know of any computer system that is capable of demultiplexing the bitstream off disc & decoding the video and audio in sync (i.e. real time) using a software-only solution. Your best bet is a hardware decoder. Prices are dropping fast. I've seen boards with a MSRP of $179. Alternatively, get a CD-i player with a DigitalVideo cartridge-- then you'll be able to play all CD-i discs, including the ones we're showing at E3 this week. ;-) --- David Oseas, (davido@aimla.com) [CD-i, MPEG & Amiga guru] Sr. Software Engineer, InSight Entertainment Group Philips Media, Los Angeles, CA Tel: (310) 444-6150 [OPINIONS ARE MY OWN & DO NOT NECESSARILY REFLECT PHILIPS POLICIES] One last thing about CDi. You may see messages during the dump about unknown subheaders. This is fairly normal. If you do get these messages, dump them to disk and send them to me. I will include checking in a later version of the program. There is a very long list of subheaders, and I have only added the ones I have seen in the 3 CDi discs I have. For the options /S /E /F which expect a following parameter, remember that there needs to be a space between the letter and the parameter. ie if you enter /S01:10:10, it would come up as an error, but if you entered /S 01:10:10, it would be correct. For the MSF mode, there need to be 2 digits for each of minutes, seconds and frames or it will come up as an error. When entering the filename with the /F, don't include an extension, as the software automagically adds the extension for you. At there are several file formats supported. WAVE (.WAV) and Binary (.CDA) are the types for DA, .XA for XA, and MPG for raw CDi and MPV for MPEG video. There is also the option to dump the data in HEX format out to the STDOUT device. The binary format has the audio samples stored in the order Left LSB, Left MSB, Right LSB, Right MSB. The samples are 16 bit 44.1 KHz stereo. I am not expecting to add options to output files in 8-bit or 22.05 KHz. This is not as simple as just throwing away samples, as this causes aliasing in the output files. Correcting this is way beyond the scope of this program. I am not planning to add many more formats because there are plenty of other programs out there that will do the conversions much better than I can. Besides, the whole purpose of this program was to get the raw data out to the hard disk, not duplicate SOX. On every CD there is a bit which defines if copying a particular track is permitted or prohibited. CDDA checks this bit and will not continue with the dump to disk. I have included an override option /O which forces the user to explicitly specify and to knowingly copy a copy prohibited song. Have look at the file ROYALTY.TXT included in this distribution, which was honourably pinched from the program CDGRAB. It is a list of most country's contacts for paying royalties. I have heard from a couple of people who have actually tried to pay the royalites. They have had nothing but trouble. My understanding is that the producer has the final say on royalties, and that you must deal with him/her as well. One thing to remember is that audio/video fills up the hard disk fast. It takes between 9 and 10 megabytes per minute. Because of this I put in a check to make sure that you will have enough space to put the requested samples. As well there is the /U option which will give you an estimate of how much disk space will be used without actually dumping the data to disk. Examples -------- CDDA /MSF /S 10:14:36 /E 13:55:11 /F outfile /W will dump using MSF mode from 10:14:36 to 13:55:11 to a WAV file CDDA /LBA /S 106232 /E 109443 /F outfile /B will dump using MSF mode from 106232 to 109443 to a Binary file CDDA /T 2 /F outfile /W /O will dump the entire track 2 to a WAV file with the override mode on CDDA /T 2 /U will display the estimated disk space for all of track 2 CDDA /T 2 /H will dump the entire track 2 in HEX to STDOUT CDDA /T 2 /M /F outfile /W /O will dump the entire track 2 using MSCDEX interface only CDDA /T 2 /F outfile /W /O /NJC will dump the entire track 2 using no jitter correction CDDA /T 2 /MSC G /ID 4 /F outfile /W /O will dump the entire track 2 from MSCDEX drive G, SCSI ID 4 CDROM drive CDDA /T 2 /CDIVIDEO /F outfile /O will dump the entire track 2 in MPEG video to outfile.MPV CDDA /T 2 /CDIRAW /F outfile /O will dump the entire track 2 in MPEG raw audio/video to outfile.MPG CDDA /LBA /S 2345 /E 3456 /XA /F outfile /O will dump track 2345-3456 in to outfile.XA CDDA /T 1 /F outfile /O /M /W /ATAPI 170:0 will dump track 1 to outfile.WAV using mscdex and atapi only modes What is this jitter business? ----------------------------- The following is a post made over a year and a half ago which discusses the technical reason for a CDROM drives difficulty in accurately positioning itself on an audio CD. -------------------------------------------------------------------------- Newsgroups: alt.cd-rom,aus.cdrom From: adrie@ica.philips.nl (Adrie Koolen) Subject: Re: Reading Audio CDs - Why is it so complicated? Keywords: cd, cd-rom, cdrom, audio, sampling, naivety Organization: Philips Consumer Electronics, Eindhoven, The Netherlands Date: Fri, 19 Feb 1993 08:23:53 GMT Lines: 63 In article dce@smsc.sony.com (David Elliott) writes: >In article <1993Feb17.213223.24058@isa.de>, schwarz@isa.de (Diemo Schwarz) writes: >|> What I don't understand is: >|> Why should it be so difficult to extract pure audio data from a CD? > >It isn't. The problem is that the SCSI controllers in most CD-ROM >drives simply don't support it. > >|> The medium is structured by tracks and indices, isn't it? > >Yes. Note that the `tracks' on a CD aren't layed out like tracks on a hard disk. The track and index are just numbers that are stored with each sector on the CD (in the Q-subchannel packet). The start address of a track is stored in the Table Of Contents on the CD, indices are not. Indices are normally not used, except index 0 for the 2 seconds pause at the start of each track. The REAL structure of the CD medium is a large continuous spiral, starting at the center of the CD (at 46mm diameter). Finding a specific sector is not as trivial as it is on a hard disk. You'll have to employ a kind of binary search algorithm. Finding the start position of a specific index is even more difficult as you don't even know where it starts. >|> And every CD player somehow manages to ship the data from the disc to >|> the D/A converter, doesn't it? But at the DAC, they don't know which sector the sample came from or what the relative position the sample takes in a sector. >|> So, what's the difference between reading data CDs and music CDs? > >The format of the data, to put it simply. Well, most decoders used in audio CD players, output a stream of samples and sub-channel data, mostly used for their time code. As the decoder has to adjust the spindle speed, it uses a FIFO to store the data. If the FIFO fills up, the spindle motor is slowed down, if it gets empty, the motor is sped up. The sub-channel data normally doesn't pass through the FIFO, but goes directly to a microcontroller. That way, the microcontroller can't be sure that it knows the exact address of the data, coming out of the FIFO. To circumvent this problem, the address of a sector is also stored in the data itself, together with a 12 bytes sync pattern. This way, one can determine the starting of a sector and its address just by looking at the data coming out of the FIFO. Here's the real problem: audio sectors don't have this sync pattern, nor the address of the sector, in the data area of a sector. Most CDROM drives use chips that are coming from audio players. The first CDROM drives were just modified audio CD players. To read audio sectors on a CDROM drive, you'll need a special decoder or you'll need to connect a standard decoder with some custom hardware to generate pulses to indicate the start of a sector and to synchronize the sub-channel packets with the real 2352 bytes of data. I hope that this explains it a bit. Adrie Koolen (adrie@ica.philips.nl) Philips Consumer Electronics, Eindhoven, the Netherlands -------------------------------------------------------------------------- Because of this, most every CDROM drive that can read DA frames cannot accurately return to the exact same location on the disc every time. It will usually return within a few samples either way. It took a lot of time and thought to write the code to correct for the "jitter" efficiently. My first try brought the transfer rate to a crawl. I have been refining the process to the point that it barely has any computing overhead, but still I have to read most every frame twice. I am still working on getting this to work faster. Some people have reported an 8x slowdown from 0.9a to 1.0a. I have no explaination for that large a difference. It is nowhere near that large on my machine, as I see only about 3x. I do agree that it is still much too slow. I have made a number of improvements in 1.0e and 1.0g that help with this slow down including making the receive buffer as large as possible (64K) when using real mode drivers like ASPI and MSCDEX. I have also added the /NJC option for those who cannot wait for their files to be created, or for those whose drives are generating "Jitter greater than 5 frames" errors. This error means that the software has become lost on the CD because the drive was unable to return to within 5 frames of its last postion. What kind of help is there? --------------------------- There is very limited help from the command line for CDDA. You can get the "USAGE" by just typing CDDA.e.g.: C:>CDDA Usage: CDDA /(mode) [/O] /S /E /F filename [/ID ][/MSC ]. modes are LBA, MSF, T, U, H, NJC, M, XA, CDIRAW, CDIVIDEO /MSF - times in minute, second, frame format (MM:SS:FF) /LBA - times in Logical Block Address format (xxxxxx) /T - send whole track to file /S - Start time /E - End time /P - play the selected range /U - estimated disk usage required for data /H - hex dump of sectors to stdout /B - write to file in Binary format /W - write to file in WAV format /O - override copy protection bit /M - override ASPI interface and use MSCDEX /NJC - do not perform jitter correction /MSC - override MSCDEX find first CD-ROM /ID - override ASPI find first CD-ROM /LUN - override ASPI find first CD-ROM /ADAPTER - override ASPI find first CD-ROM /BLOCK - override the number of blocks to read at a time /OVERLAP - override the overlap of blocks read for jitter correction /ATAPI - force drive to bypass device driver /XA - read raw CD-XA frames /CDIVIDEO - read plain MPEG video from a CDi disc /CDIRAW - read raw MPEG video/audio from a CDi disc Binary mode extension CDA will automagically added to the filename Wave format extension WAV will automagically added to the filename CDi raw format extension MPG will automagically added to the filename CDi video format extension MPV will automagically added to the filename XA format extension XA will automagically added to the filename e.g. CDDA /MSF /S 10:14:36 /E 13:55:11 /F outfile /W e.g. CDDA /LBA /S 106232 /E 109443 /F outfile /B e.g. CDDA /T 2 /F outfile /W /O Copying and Registration (does he mean this costs $$$?) ------------------------------------------------------- I am allowing full freedom to copy this program. It IS a fully functional version. It is NOT Crippleware! There is NOT a pro version available for an unreasonable sum of money. As I said at the start of this file, I am now forced to start asking for a small amount of money for this program. If you use it, then you need to register it. If you don't agree with the new shareware policy, then you can: a) use the program anyway and violate the copyright b) go back and use version 1.0h which will remain freeware c) don't use the program at all I would rather keep this program Freeware, but when it starts costing me money to develop new features, then I have to draw the line. The registration fee for using CDDA is now $15 US. I believe that this is a fair amount given the amount that the program does. As well, if you don't need the new features and bug fixes, then use the old version. I won't be asking for a fee every time a new version comes out. This fee will give you a lifetime (as long as I bug fix and add features) of free updates via the Internet. I will also notify registered users of any new versions for a year. My mail address is: Jim McLaughlin 449 Viewmount Dr. Nepean, Ontario Canada K2E 7P1 ****** Note: my email address has changed from the one in version 1.4 and earlier !!!! If you have any questions, my email address is jmclaugh@nortel.ca, but RTFM before you start sending me then questions. I would also like to try and keep all the files together and unchanged in the archive, so if you are passing this around don't change the files. In this distribution the files contained are: CDDA.EXE - the program itself CDDA.DOC - this document file ROYALTY.TXT - the list of people to whom you should pay royalties CDROMINF.EXE - the MSCDEX exerciser program CDROMINF.DOC - the text file describing CDROMINF MSCTEST.EXE - the test program for MSCDEX only access reading DA TOSHTEST.EXE - the test program for TOSHIBA drives reading DA TOSH_RST.EXE - the program to reset TOSHIBA drives after fatal errors TOSHREPR.EXE - the program to restore the sectors/track on a damaged HD NECTEST.EXE - the test program for NEC drives reading DA SONYTEST.EXE - the test program for SONY drives reading DA CHINTEST.EXE - the test program for CHINON drives reading DA SCSIPING.EXE - the program which uses ASPI to search for SCSI drives CDCOMPAT.TXT - a list from Sigma Designs of drives which support CDi CDIFAQ.TXT - the short CDi FAQ CDIMOVIE.TXT - the most up to date movie list from Philips SYWTBACD.TXT - so you want to buy a CDROM? my commentary on all the vendors VIDEOCD.TXT - the VCD FAQ from Philips XADRIVE.TXT - the list from Kodak of drives which support CD-XA If you are one of those Shareware houses, I don't want to see this program available for $6.99 plus shipping and handling. I don't like seeing the average Joe getting burned for a 10 cent disk, 1 cent label and 2 cents worth of labour to make the disk, especially when he can get 600+ Meg of really good stuff from something like the Simtel CD for $25 (thanks to Robert Bruce for starting the cheap archive business). How to get hold of me 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. If you encounter trouble with the program CDDA, try and run the included test program most suited to your drive. There are four test programs: one for each of the Toshiba, Sony and NEC type drives, and one which is a MSCDEX only version. These programs are scaled down versions of CDDA and use the command line to specify the drive letter and ID. The programs TOSHTEST, SONYTEST and NEC test take a single command line argument. It is -n, where n is the SCSI id of the drive. eg. c:>toshtest -3 This will run TOSHTEST on the SCSI drive id 3. Beware that selecting the wrong scsi id number for these test programs might (it has happened before) screw up your hard disk if 1) the hard disk is SCSI, 2) the id you use is the one for your hard disk, and 3) your hard disk supports permanently changing the sectors per track via software. To fix this problem, use the program called TOSH_RST. It is used to reset a Toshiba drive after CDDA has stopped with a fatal error. It uses the same command line argument as the TOSHTEST program. There is also the program SCSIPING. It searchs for are reports all devices connected to the SCSI controller. It uses the ASPI interface. 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: CDDA /T 2 /W /O /F testfile >dumpfile.txt I 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 me my program doesn't work, and what they remember the error messages saying. This just doesn't cut it. I have to have the dumps to help. The bottom line - RTFM before writing me. Also read the alt.cd-rom FAQ. many of your questions can be answered by reading. EMAIL: jmclaugh@nortel.ca Things on my wish list of new functions --------------------------------------- I want to add support for other CDROM drives that can read DA sectors over the SCSI, but I don't have access to these drives. If someone could supply me with the programming information, I could try and do up a new version of CDDA, if I ever get some spare time. Questions I have received since the release of 0.9a and 1.0a ------------------------------------------------------------ Why is the program so slow? This program is so slow because of any one or more of the following: 1. My poor programming skills. 2. Many of the CDROM drives only read DA frames in 1X mode even though they may transfer data at 2X or 3X or faster. 3. The amount of computing to do jitter correction. 4. Reordering the bytes from the CD to the WAV file. 5. Having to read 16 frames for every 10 actually written to disk to allow for up to three frames of jitter. This has been improved with the use of /block and /overlap 6. When there is more than three frames of jitter, I slightly shift the aim of the search and reread the problem frames. 7. My Toshiba seems to have a magic number of 10 frames, that if I read more than that at a time it takes 2-3 times longer than reading in bunches of 10 or less. I don't understand it. Since I have to read ahead 3 frames and behind 3 frames every time I read a block from the drive to correct for jitter, I can't very well keep my reads under 11 frames. Other drives may have similar thresholds. 8. If you are using MSCDEX only, make sure that the /m:xx option on the MSCDEX line of your autoexec.bat is set to at least 20. Any less than this, and CDDA will end up reading in 2 possibly discontinous chunks. This will add greatly to the time to read data. 9. Many drives are happy reading contiguous frames from the disc. If you ask it to move it's start point to a frame that it has just read, it may take a very long time to get itself all lined up to start reading again. A good example of this is the Philips CDR drive that reads with /NJC at 2x speed but takes 6 times longer than the range selected if it keeps having to resychronize itself. What is ASPI? ASPI stands for Advanced SCSI Programming Interface. It was developed by Adaptec, and has been adopted by many SCSI card manufacturers as a standard SCSI programming interface. If you want more information on ASPI call Adaptec (408) 945-8600. When I use /T, the start and ends of the track are a couple of seconds away from where I think they should be. Why is this? In version 0.9a, there was a deep rooted bug which caused this. I have fixed it (I hope), and this should no longer be a problem. When I play back my samples, why are there pops and clicks? These pops and clicks can come from two places: 1. version 0.9a did NOT handle the jitter problem, it is handled now. 2. your sound card can't handle 16-bit 44.1 KHz samples. Try using SOX or a similar program to change the sample to 22.05 or 11.025 KHz samples and try again. 3. Many CDs have been mastered from digital sources. In this case the source may have been synthesized digitally which gives absolutely perfect sounds which are very repetitive and exactly the same. When this happens, it may possibly confuse the jitter correction routines. There is not a lot I can do about it at the moment, and there is less that any of the other programs like mine can do. The program stops with the error xxx. What is wrong? The 0.9a release had very limited error reporting. I thought that if it worked on my machine it work on everybody's. This version has much more error reporting. As I understand it, CDDA will not necessarily work correctly if SMARTDRV is installed. This has been the source of a lot of trouble. As well some people have been having trouble using CDDA in a DOS window in Windows. I think there may be a problem when being used with a DPMI manager installed. So, the bottom line is DON'T run CDDA under Windows. When will you release an OS/2 version? I have no interest in writing a version for OS/2. Period. However, if you are running Warp, then you already have VASPI, and CDDA should run just fine. If you are using an earlier version, then there is a program from Adaptec called VASPI, which will allow you to run CDDA in a DOS window. I got the following email with the how-to for OS/2 from Stefan Eichner (Stefan-Eichner@k2.maus.de): > 1. Your CONFIG.SYS has to include the follow lines: > [...] > BASEDEV=TMV1SCSI.ADD > BASEDEV=OS2ASPI.DMD > REM DEVICE=C:\OS2\OS2CDROM.DMD /Q > E=C:\OS2\MDOS\VASPI.SYS > [...] > !If no OS2CDROM.DMD is loaded you can't read Data-CDs! > > 2. Add to the autoexec.bat the start-comand for MSCDEX2.EXE > (e.g. C:\MSCDEX2.EXE /D:MSCD001 /L:H /m:10 /v) > > 3. Change the settings of the DOS-Session on the WPS: > DOS_DEVICE=C:\TSLRCDR.SYS /d:mscd001 /p:3 > > Now CDDA works great!!! VASPIBET.ZIP is available from ftp.cdrom.com When will you release a Windows version? I have no interest in writing a Windows version. I don't have the time, and I don't think Windows is a particularly good OS (if you can call it an OS). I have had a couple of offers to help, but I have been too busy with the rest of my life to work on it. Don't hold your breath. The word from the beta testers is that CDDA runs just fine in a DOS window under Windows 95. When will you release a UNIX version? Never. Although I run LINUX on my machine, I have no interest in rewriting CDDA. There is a program called CD-DA for Linux, which should work with the Toshiba drives. It is available from Sunsite. When will you be writing a version for my CDROM drive? Getting the programming information from CDROM drive manufacturers is like pulling teeth. I've been hunting for this stuff for over two years, and have only managed to get the programming manuals for Toshiba, Chinon and Sony. If you have a drive and it does support DA frames, I need the programming manual. I also need about 5 or 6 extra hours in each day. I have a Toshiba drive. Why doesn't your program work? It appears that different ROM revisions cause the drives to work differently. For instance, my Toshiba 3401 is revision 0283. I have heard from people who have ROMs older and newer that can't use my program. I have also heard that Toshiba has changed the programming interface on newer drives, but it is not reflected in their SCSI programming manual. I just don't know what is wrong. Why doesn't your program work with my ASPI driver? Several vendors supply ASPI drivers for their SCSI cards. However, all drivers are not created equal. I have heard from people who have had trouble with just about every SCSI card on the planet. I only have Adaptec's EZSCSI to do my testing. I'll try and do my best on case by case basis, but I really don't have any spare time. I also hear from a number of people who have trouble using the Adaptec 1520/22 controllers. It appears that the delay in doing polled IO from this card screws up my view of how the controller and drive interact. Don't expect any fixes soon. CDROMINF works on my machine, so why doesn't CDDA? CDROMINF only uses MSCDEX calls, and CDDA also uses ASPI calls. It is these ASPI calls that do the meat of the program. If ASPI isn't on your machine, or doesn't work correctly, then CDDA will never work. Your only other choice is to try the /M option and use only MSCDEX commands. This is unlikely to help any SCSI drive owners. Before writing me and asking for your drive to be supported, do a little legwork first. Call the manufacturer and ask for the programming information. Second, run all the test programs included with this release. These programs don't check for the drive type before trying to read DA frames. If any of these pass, let me know and I can add your drive based on the programming information of an existing drive. It has happened before, so it might happen again. Why are there tons of zeros at the beginning and end of my track? Most every audio track has some silence at the beginning and end. This silence is actually digital silence which is all zeros for the samples. Can I use CDDA to read from DAT drives? As far as I know there are only a couple of DAT drives out there that allow reading of digital audio through SCSI. In theory, I could add that feature to CDDA, but since I don't have one of those drive, and I don't have the programming manuals either, I seems very unlikely that this will ever happen. It also seems that these drive vendors have taken out support for reading DA. Their story is that people were putting cheap quality audio tapes in the drives and screwing up the drives. So they took out the feature. My guess is that they were getting pressure from the record companies. If you really need to do this then get yourself a Silicon Graphics machine. They make sure that this feature is available in their package. Don't forget to mortgage your house to pay for it. The only other option at this point is to get a DAT player that has a digital out port and get a card for your PC that can handle the digital stream. These cards are widely available and shouldn't cost you more than a few hundred dollars. Sometimes CDDA doesn't work when I first put in a CD. Why? I don't know. Some people have reported that CDDA works better after a new CD is put in the drive if you use some other utility to play and then stop the CD. This seems to force some sanity into some drivers. Can you change CDDA to read the song titles from my audio CD? There are no song titles recorded on an audio CD. The following is a post which explains this better than I can. ---------------------------------------------------------------------------- From: dplatt@ntg.com (Dave Platt) Newsgroups: alt.cd-rom Subject: Re: Ascii Track data on Audio CDs Keywords: Audio CD Ascii Track Date: 23 Feb 93 19:16:03 GMT Organization: New Technologies Group, Inc. Palo Alto CA Lines: 41 >A friend told me that encoded on Audio CDs are the track titles, CD title, >credits and even a bitmap image of the cover art. Can anyone confirm or >deny this? If it is true, how does a programmer get to this information? In general, this is _not_ true. The disc table-of-contents has information about the total disc length, number of tracks, and the starting time of each track. It has no room for human-readable text and there is no provision in the standards for such, as far as I've ever been able to find out. The audio tracks have "subcode" information associated with each frame (75 frames per second). The P subcode bit is used for primitive track-signalling flags, and is rarely interpreted by modern CD players. The Q subcode contains some useful information: control (type, preemphasis, and copy-protect fields), address information, index numbers, and sometimes the disc catalog/barcode number or the ISRC code (serial number, country, year, owner ID) of the recording. Still, no room for text or artwork. The R,S,T,U,V,W bits in the subcode can be used in a variety of ways. The most popular de facto standard is for CD+G graphics. These provide a sort of slow-scan video (288x192 pixels, max of 4096 colors using an encoded color lookup table). The CD+G graphics can include almost anything... lyrics, still photos from concert footage, and copies of the cover artwork are all quite possible and have been done. Only a relatively small percentage of audio CDs have CD+G graphics. Some CD players have a "subcode out" jack which can be fed to an external decoder. Some CD-ROM drives allow the subcode data to be read over the SCSI (or other) communication bus while the drive is playing audio CDs through its built-in DACs. Some [fewer] drives allow both the audio data and the subcode to be retrieved over the bus and manipulated by the host computer. Details vary; see your drive reference manual. -- Dave Platt VOICE: (415) 813-8917 Domain: dplatt@ntg.com UUCP: ...netcomsv!ntg!dplatt USNAIL: New Technologies Group Inc. 2470 Embarcardero Way, Palo Alto CA 94303 ---------------------------------------------------------------------------- Changes in version 1.5 from version 1.4 - please note my new email address: jmclaugh@nortel.ca - I now have a web home page which should always have pointers to the most recent versions of my programs - it can be found at http://www.ncf.carleton.ca/~aa571 it also contains pointers to most drive manufacturers and to the most recent drivers - had a rewrite of the SCSI search routines - this means that I should be getting fewer emails about adding more drives for vendors I already support - added the checking for disk caching installed, and to see if the program is running in a DOS box under Windows - in general it is a bad thing to try and run CDDA in a DOS box. - fixed a couple of bugs that appeared in 1.4 when using the /p option - found that problems with CDDA and either Trantor controllers or Adaptec 1520 controllers are NOT my fault. - there appear to be problems with these cards - it seems that they were never designed to work with CDROM drives, just hard disks - yell at Adaptec - the problem with Philips CDR machines reading MPG streams from CDi discs appears to be cleared up - let me know if it is still a problem - found that the problem with CDDA aborting with a fatal error when reading audio CDs in the Yamaha 100 drive has been fixed by a firmware upgrade in the drive - again it was not my fault - yell at Yamaha - rewritten the SCSI search routines for drives - now can override the adapter, ID and LUN - fixed bug that caused errors when an audio CD was playing and CDDA was run to extract data Changes in version 1.4a from version 1.3a - made several changes to help the "quiet music" problem when there are stretches of very quiet music, the digital master often is cleaned up and digital silence is put in its place, or when a digital organ is used as the only instrument the repeating digitally perfect notes can confuse CDDA - added support for the DEC RDD42, the COMPAQ CR503/CDU561, the Kodak 6X writer, HP 4020 writer, Pinnacle 5030, Yamaha 102, Panasonic 572/574/581 - introduced the /block and /overlap commands to allow for customizing the recording on difficult machines - also has the side effect of cutting the record times by 40% - fixed a typo in the Plasmon drive name - added the /ATAPI command to try and bypass the device driver and MSCDEX on IDE drives - fixed a bug that caused incorrect disk free values when the drive letter was specified as a captial instead of lower case - added some more robust code to retry disc reads on some of the less fatal errors - rewrote the drive search routines in conjunction with adding the /ADAPTER command - fixed a bug which only appears when you use a CD Enhanced CD instead of the older style discs Changes in version 1.3a from version 1.2a - fixed a couple of bugs in the new Philips code - made several changes to the jitter correction routines to speed them, as well CDDA has a better chance of working now with drives with bad jitter problems - fixed a typo in calculating the end of disc - now compiled in 386 code mode instead of the old 8086 code mode Changes in version 1.2a from version 1.1a - fixed another memory allocation bug which cause the program to hang for no apparent reason on some machines - added support for Pioneer, Kodak, Philips, Pinnacle, Plasmon, Yamaha Ricoh and JVC drives - added doc files on movie lists, CDi compatible drives and XA compatible drives - added the /P option to allow playing out the head phone jack the select range of audio instead of saving to disk - added the /LUN option to override the LUN=0 default - useful when using the 6Pack from Pioneer - included my commentary on the purchasing of CDROM drives - is not very complimentary to most vendors Changes in version 1.1a from version 1.0h - a minor bug in the count of bytes written to disk has been fixed. - support for CDi discs - both white and green book - support for XA discs - no longer freeware - official word from Mitsumi says that they have not and will not ever support reading DA frames with their drives. Changes in version 1.0h from version 1.0g - bug in displaying the sense data has been fixed. - a major bug that caused the program to hang at random has been fixed. - Mitsumi 4x, Sony 55E, Sony 8012 drive types added - Plextor (Texel drives 3028 and 5028 have been removed. I included them based on a rumour I heard. I have since received the programming manual for these drives, and they do not support reading DA frames. Changes in version 1.0g from version 1.0e (version 1.0f was not formally released) - ISRC code display added - option NJC added - Hitachi, Teac, Matshita drive types added - bug in MSCTEST concerning empty buffers fixed Changes in version 1.0e from version 1.0a (versions 1.0b to 1.0d were not formally released) - UPC code display added for NEC drives - Toshiba mode select to return the drive to normal operation after reading DA frames had a conflict with EZSCSI drivers - this has been fixed - length of WAV file did not always match length contained in header - this has been fixed - added support for the Chinon CDS-535 drive (since I don't have one of these drives, this is untested) - added support for the Plextor 3028/5028 drives (since I don't have one of these drives, this is untested) - there was a bug which on some machines would allocate memory wrong when using the /M option, and would fill the file with zeros - this has been fixed - program TOSH_RST was added for users of the Toshiba drives who have CDDA exit with a major error. It resets the drive back to normal operation - there was a bug on some machines that would allow the user to run CDDA fine, but the respective test program would fail. It appeared mostly on the SONYTEST and NECTEST programs - this has been fixed - during running with NEC drives extra debug messages were printed - this has been fixed - the jitter correction routine has been rewritten - CDDA now runs about twice as fast as 1.0a did on my machine - a problem with one version of the Sony rom has a peculiar failure which may be corrected by a rewrite of the sector search routine - a problem with copy permitted discs sometimes required /O in order to dump to disk - when the last track of a disc or the last LBA or the last MSF was selected to be dumped, some drives actually only allow reading of the second to last frame, and not the last frame. since there is virtually no sound on the last frame of the disc, I have forced the program to stop at the next to last frame Known bugs: - someone has reported the program failing on a very large drive with very large amounts of disk space available. The specific example was a 250M drive with 235M free. It would appear that there is a bug in the Borland dfree routines. I will be looking into the problem, except for the fact that my drive is only 100M, so I can't duplicate it. - a couple of people have reported that the WAV files created are not compatible. I can't say much except that in one case the file size written in the WAV header was incorrect, and I don't know why. I have however found that really large WAV files (>10M) often confuse some players. I have seen a file work correctly on a couple of players, and not on others. My guess is that some players out there are not interpreting WAV files correctly, or are not expecting very large files. - one person reported that running the test programs on their machine and specifying a hard drive instead of a CD-ROM drive causes the number of bytes per sector to be changed permanently on the drive I don't know if this was just a fluke, but be careful. I have included the program TOSHREPR.EXE. This program will reset the sectors per track to 512 when you accidentally run TOSHTEST on a hard drive instead of the CDROM drive. This problem appears to manifest itself on hard drives manufactured by DEC. If you use these drives be careful when running TOSHTEST. - one person reported that having more than one CDROM drive means trouble for the /T mode. I'm looking into it, but don't have an answer yet. - there appears to be a problem with the LIT on some CDi Green book CDs. It seems that MSCDEX is getting confused as to when the CD starts which in turn confuses CDDA. I'm looking into the problem Wish list: (which may or may not get implemented) - add a /p mode to play the whole cd instead of just a range - have start and end times include offset from beginning of track - more CD-ROM drives supported - add a /I mode which will do an image of the entire disc to a file - add more support for intrepting hard error messages - add a /DUMP mode which will dump all screen output to a file as well for those who can't use the >