pep8 cleanups
[naja.git] / tools / gen_sound.py
index 6efc05ebff69587062fe13d326db171a9b28ab5a..6e524e850f05fa1660126dbd161f2ace1bb62b4d 100644 (file)
@@ -1,5 +1,5 @@
 # Generate imperfect sine waves
-# 
+#
 # Design notes. Produces ~= (user requested) s of raw audio
 # We're aiming for an 8-bit'ish effect, so we're going with
 # 8125 Hz, 8 bit sampling, but faking it out to
@@ -11,16 +11,17 @@ import math
 import struct
 
 OUTPUT_RATE = 8125
-MAX = 95
+DEFAULT_VOL = 95
 
-def gen_sine(freq, secs):
+
+def gen_sine(freq, secs, volume):
     filename = 'beep%s.pcm' % freq
     # We generate freq cycles and sample that OUTPUT_RATE times
     per_cycle = OUTPUT_RATE / freq
     data = []
     for x in range(per_cycle):
         rad = float(x) / per_cycle * 2 * math.pi
-        y = 256 * int(MAX * math.sin(rad))
+        y = 256 * int(volume * math.sin(rad))
         data.extend([struct.pack('<i', y)] * 4)
     output = open(filename, 'w')
     # This is correct because OUTPUT_RATE = CDDA rate / 4 and we repeat
@@ -33,22 +34,37 @@ def gen_sine(freq, secs):
 
 def usage():
     print 'Unexpected input'
-    print 'Usage gen_sound <freq> [<length>]'
+    print 'Usage gen_sound <freq> [<length>] [<volume>]'
     print ' where <freq> is the frequency in Hz (int)'
-    print ' and [<length>] is the time in seconds (float) - default 0.25'
+    print ' [<length>] is the time in seconds (float) - default 0.25'
+    print (' and [<volume>] is the volume (integer between 0 and 127)'
+           ' - default %s' % DEFAULT_VOL)
 
 
 if __name__ == "__main__":
     try:
-       freq = int(sys.argv[1])
-       if len(sys.argv) > 2:
-          secs = float(sys.argv[2])
-       else:
-          secs = 0.25
+        freq = int(sys.argv[1])
+        if len(sys.argv) > 2:
+            secs = float(sys.argv[2])
+        else:
+            secs = 0.25
+        if len(sys.argv) > 3:
+            volume = int(sys.argv[3])
+        else:
+            volume = DEFAULT_VOL
     except Exception, exc:
-       usage()
-       print 'Error was', exc
-       sys.exit(1)
+        usage()
+        print 'Error was', exc
+        sys.exit(1)
+
+    if volume > 128 or volume < 0:
+        usage()
+        print 'Invalid volume: %s' % volume
+        sys.exit(1)
+
+    if freq > 2000 or freq < 100:
+        usage()
+        print 'Invalid freq: %s' % volume
+        sys.exit(1)
 
-    gen_sine(freq, secs)
-      
+    gen_sine(freq, secs, volume)