import sys import readcd import aiff import AL import CD Error = 'cdaiff.Error' def writeaudio(a, type, data): a.writesampsraw(data) def main(): if len(sys.argv) > 1: a = aiff.Aiff().init(sys.argv[1], 'w') else: a = aiff.Aiff().init('@', 'w') a.sampwidth = AL.SAMPLE_16 a.nchannels = AL.STEREO a.samprate = AL.RATE_44100 r = readcd.Readcd().init() for arg in sys.argv[2:]: x = eval(arg) try: if len(x) <> 2: raise Error, 'bad argument' r.appendstretch(x[0], x[1]) except TypeError: r.appendtrack(x) r.setcallback(CD.AUDIO, writeaudio, a) r.play() a.destroy() main()