| 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() |