projects
/
naja.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
3443cae
)
Add volume parameter to gen_sound
author
Neil
<neil@dip.sun.ac.za>
Thu, 15 May 2014 18:58:01 +0000
(20:58 +0200)
committer
Neil
<neil@dip.sun.ac.za>
Thu, 15 May 2014 18:58:40 +0000
(20:58 +0200)
tools/gen_sound.py
patch
|
blob
|
history
diff --git
a/tools/gen_sound.py
b/tools/gen_sound.py
index 6efc05ebff69587062fe13d326db171a9b28ab5a..bf2c10d0b728612269777913e5aaa533fe6f299a 100644
(file)
--- a/
tools/gen_sound.py
+++ b/
tools/gen_sound.py
@@
-13,14
+13,14
@@
import struct
OUTPUT_RATE = 8125
MAX = 95
OUTPUT_RATE = 8125
MAX = 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
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
data.extend([struct.pack('<i', y)] * 4)
output = open(filename, 'w')
# This is correct because OUTPUT_RATE = CDDA rate / 4 and we repeat
@@
-33,9
+33,10
@@
def gen_sine(freq, secs):
def usage():
print 'Unexpected input'
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 ' 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' % MAX
if __name__ == "__main__":
if __name__ == "__main__":
@@
-45,10
+46,25
@@
if __name__ == "__main__":
secs = float(sys.argv[2])
else:
secs = 0.25
secs = float(sys.argv[2])
else:
secs = 0.25
+ if len(sys.argv) > 3:
+ volume = int(sys.argv[3])
+ else:
+ volume = MAX
except Exception, exc:
usage()
print 'Error was', exc
sys.exit(1)
except Exception, exc:
usage()
print 'Error was', exc
sys.exit(1)
- gen_sine(freq, secs)
+ 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, volume)