blob: 85a157d2ad2886f81d1a7ee8413cf5fd818ab990 [file] [log] [blame]
Guido van Rossum50692d61991-09-15 21:05:15 +00001# Play old style sound files (Guido's private format)
2
3import al, sys, time
4import AL
5
6BUFSIZE = 8000
7
8def main():
9 if len(sys.argv) < 2:
10 f = sys.stdin
11 filename = sys.argv[0]
12 else:
13 if len(sys.argv) <> 2:
14 sys.stderr.write('usage: ' + \
15 sys.argv[0] + ' filename\n')
16 sys.exit(2)
17 filename = sys.argv[1]
18 f = open(filename, 'r')
19 #
20 magic = f.read(4)
21 extra = ''
22 if magic = '0008':
23 rate = 8000
24 elif magic = '0016':
25 rate = 16000
26 elif magic = '0032':
27 rate = 32000
28 else:
29 sys.stderr.write('no magic header; assuming 8k samples/sec.\n')
30 rate = 8000
31 extra = magic
32 #
33 pv = [AL.OUTPUT_RATE, rate]
34 al.setparams(AL.DEFAULT_DEVICE, pv)
35 c = al.newconfig()
36 c.setchannels(AL.MONO)
37 c.setwidth(AL.SAMPLE_8)
38 port = al.openport(filename, 'w', c)
39 if extra:
40 port.writesamps(extra)
41 while 1:
42 buf = f.read(BUFSIZE)
43 if not buf: break
44 port.writesamps(buf)
45 while port.getfilled() > 0:
46 time.millisleep(100)
47
48try:
49 main()
50except KeyboardInterrupt:
51 sys.exit(1)