Module gpk_wavio
[frames] | no frames]

Source Code for Module gpk_wavio

 1  #!/usr/bin/env python 
 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