| This function
 uses the multimedia control interface
 (MCI) to control the CD drive. 
 Public Sub RecordWave(TrackNum As
 Integer, Filename As String)' Tracknum: track to record
 ' Filename: file to save wave as
 
 On Local Error Resume NextDim i As Long, RS As String, cb As Long, t#
 RS = Space$(128)
 
 i = mciSendString("stop
 cdaudio", RS, 128, cb)i = mciSendString("close cdaudio", RS, 128,
 cb)
 
 Kill filename 
 RS = Space$(128)i = mciSendString("status cdaudio position track
 " & TrackNum, RS, 128, cb)
 i = mciSendString("open cdaudio", RS, 128,
 cb)
 i = mciSendString("set cdaudio time format
 milliseconds", RS, 128, cb)
 i = mciSendString("play cdaudio", RS, 128,
 cb)
 i = mciSendString("open new type waveaudio alias
 capture", RS, 128, cb)
 i = mciSendString("record capture", RS, 128,
 cb)
 
 t# = Timer + 1: Do Until Timer > t#: DoEvents: Loop
 
 i = mciSendString("save capture " &
 filename, RS, 128, cb)
 i = mciSendString("stop cdaudio", RS, 128,
 cb)
 i = mciSendString("close cdaudio", RS, 128,
 cb)
 
 End Sub
 
 The method is
 quite easy: 
 1) Stop everything in
 the CD drive2) Start playing track
 3) Record a new wave with the information
 from the CD (note: it also records MIDI
 and microphone sounds: in fact anything
 coming out of the speakers)
 4) Save the wave file
 5) Stop the CD again
 
  |