# Play old style sound files (Guido's private format) import al, sys, time import AL BUFSIZE = 8000 def main(): if len(sys.argv) < 2: f = sys.stdin filename = sys.argv[0] else: if len(sys.argv) <> 2: sys.stderr.write('usage: ' + \ sys.argv[0] + ' filename\n') sys.exit(2) filename = sys.argv[1] f = open(filename, 'r') # magic = f.read(4) extra = '' if magic == '0008': rate = 8000 elif magic == '0016': rate = 16000 elif magic == '0032': rate = 32000 else: sys.stderr.write('no magic header; assuming 8k samples/sec.\n') rate = 8000 extra = magic # pv = [AL.OUTPUT_RATE, rate] al.setparams(AL.DEFAULT_DEVICE, pv) c = al.newconfig() c.setchannels(AL.MONO) c.setwidth(AL.SAMPLE_8) port = al.openport(filename, 'w', c) if extra: port.writesamps(extra) while 1: buf = f.read(BUFSIZE) if not buf: break port.writesamps(buf) while port.getfilled() > 0: time.millisleep(100) try: main() except KeyboardInterrupt: sys.exit(1)