| import sys | 
 | import readcd | 
 | import aifc | 
 | import AL | 
 | import cd | 
 |  | 
 | Error = 'cdaiff.Error' | 
 |  | 
 | def writeaudio(a, type, data): | 
 | 	a.writeframesraw(data) | 
 |  | 
 | def main(): | 
 | 	if len(sys.argv) > 1: | 
 | 		a = aifc.open(sys.argv[1], 'w') | 
 | 	else: | 
 | 		a = aifc.open('@', 'w') | 
 | 	a.setsampwidth(AL.SAMPLE_16) | 
 | 	a.setnchannels(AL.STEREO) | 
 | 	a.setframerate(AL.RATE_44100) | 
 | 	r = readcd.Readcd() | 
 | 	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.close() | 
 |  | 
 | main() |