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 Next
Dim 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 drive
2) 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
|