1
2
3 """When run as a script:
4 python ~/lib/wavio.py [-g gain] -wavin|-wavout infile outfile
5 Reads or writes .wav files from any format supported by
6 gpkimgclass.py .
7
8 As a library, allows reading of class gpk_img data from a .WAV
9 file, and writing class gpk_img to a .WAV file.
10 """
11 import wave
12 import numpy
13 import gpkimgclass
14 from gmisclib import wavio
15
16
17 if __name__ == '__main__':
18 import sys
19 arglist = sys.argv[1:]
20 gain = None
21 if len(arglist)==0:
22 print __doc__
23 sys.exit(1)
24 if arglist[0] == '-g':
25 arglist.pop(0)
26 gain = float(arglist.pop(0))
27 if arglist[0] == '-wavin':
28 x = wavio.read(arglist[1])
29 if gain is not None:
30 numpy.multiply(x.d, gain, x.d)
31 x.write(arglist[2])
32 elif arglist[0] == '-wavout':
33 x = gpkimgclass.read(arglist[1])
34 rxd = numpy.ravel(x.d)
35 mxv = max( rxd[numpy.argmax(rxd)], -rxd[numpy.argmin(rxd)] )
36 print "# max=", mxv
37 if gain is None:
38 gain = 32000.0/mxv
39 wavio.write(x, arglist[2], gain)
40 else:
41 print __doc__
42 sys.exit(1)
43