blob: b3b9bb07ae37ed701bda16c73d4246ad0214f327 [file] [log] [blame]
Guido van Rossumf8b7e921992-04-15 17:52:27 +00001# Dump CD audio on disk (in AIFF format; stereo, 16 bit samples, 44.1 kHz).
2#
3# Each argument is either a track to play or a quoted 7-tuple:
4# '(track, min1, sec1, frame1, min2, sec2, frame2)'
5# to play the track from min1:sec1:frame1 to min2:sec2:frame2.
6# If track is zero, times are absolute instead.
7
8import sys
9import string
10import readcd
11import aiff
12import AL
13import CD
14
15def writeaudio(a, type, data):
16 a.writesampsraw(data)
17
18def ptimecallback(a, type, (min, sec, frame)):
19 if frame == 0:
20 print 'T =', min, ':', sec
21
22def main():
23 a = aiff.Aiff().init(sys.argv[1], 'w')
24 a.sampwidth = AL.SAMPLE_16
25 a.nchannels = AL.STEREO
26 a.samprate = AL.RATE_44100
Guido van Rossumd9feb591992-04-22 13:39:10 +000027 r = readcd.Readcd().init()
Guido van Rossumf8b7e921992-04-15 17:52:27 +000028 l = []
29 for arg in sys.argv[2:]:
Guido van Rossumd9feb591992-04-22 13:39:10 +000030 x = eval(arg)
31 try:
32 l = len(x)
33 r.appendstretch(x[0], x[1])
34 except TypeError:
35 r.appendtrack(x)
Guido van Rossumf8b7e921992-04-15 17:52:27 +000036 r.setcallback(CD.AUDIO, writeaudio, a)
37 r.setcallback(CD.PTIME, ptimecallback, None)
Guido van Rossumd9feb591992-04-22 13:39:10 +000038 try:
39 r.play()
40 except KeyboardInterrupt:
41 pass
Guido van Rossumf8b7e921992-04-15 17:52:27 +000042 a.destroy()
43
44main()