Link to home
Start Free TrialLog in
Avatar of mortonsw
mortonsw

asked on

Ripping audio using mscdex or winaspi?

I have some basic winaspi routines for ripping audio from mmc compliant cd-rom drives. However, instead of further developing it, I wondered if it would be easier simply to thunk mscdex calls since then I could easily support all cd-rom drives (not just mmc ones). Plus using mscdex, I'm able to coorelate the drive letter (winaspi... no hope for such). I found the following links to MS knowledgebase which discusses this:

http://support.microsoft.com/support/kb/articles/Q137/8/13.asp

http://support.microsoft.com/support/kb/articles/Q138/4/34.asp?LN=EN-US&SD=gn&FR=0

The above 2 links talk about reading cd-rom sectors under win95 and NT. However, I found the following info that talks about some problem reading red book audio sectors under win95 using mscdex Read Long:

http://support.microsoft.com/support/kb/articles/Q180/1/15.ASP?LN=EN-US&SD=gn&FR=0

However, should I be concerened with the above since the win95 example (1st link in my quest) does not use Read Long (1510h), it uses Absolute Read (1508h)?

I guess my question is: Can I rip audio data from audio cd's by thunking mscdex calls under win95/98/2000?

Avatar of NickRepin
NickRepin

>>should I be concerened with the above since the win95 example (1st link in my quest) does not use Read Long (1510h), it uses Absolute Read (1508h)?

I think you shoudn't because it's a problem of the AbsoluteRead that it cannot read the partucular format, but not the problem of the thunking method itself.

>>Can I rip audio data from audio cd's by thunking mscdex calls under win95/98/2000?

Yes, why not. But I'm afraid that you cannot do it under Win2000.
Avatar of mortonsw

ASKER

Why won't it work under w2000? Does the CDFS not include the mscdex layer anymore?
ASKER CERTIFIED SOLUTION
Avatar of chensu
chensu
Flag of Canada image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Why not use MCI & WaveIn* functions ? MCI works good under 9x/NT.
rayofunreal> Why not use MCI & WaveIn* functions ? MCI works good under 9x/NT.

???
ripping audio from mmc compliant cd-rom -> get audio data...

So, if I'm right, mortonsw want to get PCM data from audio track. As he wrote, he can read sectors etc. But most CD-ROM will turn motor to high speed, like normal readig (for ex. if I'll do read sector by sector motor will run on max speed). When I'll 'play' CD-ROM will run in 'slow' mode (enough to read PCM data).

But I assume he need to do some effects runtime, If not, I'm miss, sorry.
hi rayofunreal: Yes, I can pull audio data from cd-rom (if it's connected to sound card) using wavein. However, I can only do it at 1x speed and the audio will be digital>analog>digital. However, I want to pull the audio directly from cd-rom the same way data is pulled from cd-rom so that it doesn't have to go through the DA / AD conversion and it can be done much faster (usually 8X speed). My app (SuperSonic) already incorporates std recording to do the above. However, I want to allow user to rip audio (just like audiograbber and other programs). I already have a std ripper in my beta version including some cool features like playing a cd-rom digitally with real time control over playback speed/pitch (since the CDDA method will allow you to do such things). My dilemna is that I want to support as many cd-rom drives as possible and currently I only support mmc compliant ones via winaspi interface. I'm looking for the easiest solution across win95/98/2000/NT. When I heard about the mscdex approach, I was very interested since I don't have to do drive specific coding and plus I desperately need to know the drive letter that goes with the scsi haid,tgt,lun and getting such is proving hard via winaspi method. Plus the winaspi method requires NT users to install such (usually). Therefore, I was hoping that the mscdex method would work across w95/98/2000.

chensu: are you sure mscdex calls aren't available on w2000? I know that mscdex isn't used on w95/98, it's just emulated via the CDFS. Are you sure there's no such emulation anymore on w2000? (I don't have w2000 to test with yet).
Ok... You need the second thing than I assume :) We were doing 'runtime' things, where we're effecting CD audio track, not 'recording' for l8r use....

I'm afraid, you will not find common way for NT (including 2000) and 9x...

Maybe is solution (don't know if someone tell it here) drivers. I'm using 'freeware' driver for CDFS, which will create for you 'file system' and you can access file in form: Stereo\16\44.1\1.wav (so, use 'normal' functions). You can also access mono and 22 KHz. This small thing exist for 9x and NT (2 different drivers ofcourse).

Try too look in help for IFS articles.
And under NT/2000 a lott of users can't add driver in any form - because they haven't rights to do it.... [like ppl in work, school, ...]

So, if you want to be 'ready for all' you probably will need to implement more methods....

Good luck :)
>are you sure mscdex calls aren't available on w2000?

Not so sure.

Have you tried my suggestion?
Ya, most of my current rip routines are based on info from akrip. I was just looking for an easier way to do it. I guess I'll just use akrip.dll (hopefully it can do multiple ripping streams which I need). However, I've heard that w2000 can be ripped from just like NT (CreateFile method) so maybe I can do MSCDEX on w95/98 and CreateFile on w2000/NT. Time to go to work. Thanks for your help!