added external files
This commit is contained in:
parent
8b9ce52833
commit
06dd156027
4 changed files with 80 additions and 0 deletions
|
@ -0,0 +1,28 @@
|
||||||
|
|
||||||
|
#!/usr/bin/env python
|
||||||
|
from struct import calcsize, unpack
|
||||||
|
from sys import argv, exit
|
||||||
|
|
||||||
|
def word_iter(f):
|
||||||
|
while True:
|
||||||
|
_bytes = f.read(2)
|
||||||
|
|
||||||
|
if len(_bytes) != 2:
|
||||||
|
raise StopIteration
|
||||||
|
|
||||||
|
yield unpack("=h", _bytes)[0]
|
||||||
|
|
||||||
|
try:
|
||||||
|
with open(argv[1], "rb") as f:
|
||||||
|
wav = "=4ci8cihhiihh4ci"
|
||||||
|
wav_size = calcsize(wav)
|
||||||
|
metadata = unpack(wav, f.read(wav_size))
|
||||||
|
|
||||||
|
if "".join(metadata[:4]) != "RIFF":
|
||||||
|
print "error: not wav file."
|
||||||
|
exit(1)
|
||||||
|
|
||||||
|
print sum(abs(word) for word in word_iter(f))
|
||||||
|
except IOError:
|
||||||
|
print "error: can't open input file '%s'." % argv[1]
|
||||||
|
exit(1)
|
|
@ -0,0 +1,12 @@
|
||||||
|
|
||||||
|
data = ARGF.read
|
||||||
|
keys = %w[id totallength wavefmt format
|
||||||
|
pcm channels frequency bytes_per_second
|
||||||
|
bytes_by_capture bits_per_sample
|
||||||
|
data bytes_in_data sum
|
||||||
|
]
|
||||||
|
values = data.unpack 'Z4 i Z8 i s s i i s s Z4 i s*'
|
||||||
|
sum = values.drop(12).map(&:abs).inject(:+)
|
||||||
|
keys.zip(values.take(12) << sum) {|k, v|
|
||||||
|
puts "#{k.ljust 17}: #{v}"
|
||||||
|
}
|
|
@ -0,0 +1,28 @@
|
||||||
|
|
||||||
|
#!/usr/bin/env python
|
||||||
|
from struct import calcsize, unpack
|
||||||
|
from sys import argv, exit
|
||||||
|
|
||||||
|
def word_iter(f):
|
||||||
|
while True:
|
||||||
|
_bytes = f.read(2)
|
||||||
|
|
||||||
|
if len(_bytes) != 2:
|
||||||
|
raise StopIteration
|
||||||
|
|
||||||
|
yield unpack("=h", _bytes)[0]
|
||||||
|
|
||||||
|
try:
|
||||||
|
with open(argv[1], "rb") as f:
|
||||||
|
wav = "=4ci8cihhiihh4ci"
|
||||||
|
wav_size = calcsize(wav)
|
||||||
|
metadata = unpack(wav, f.read(wav_size))
|
||||||
|
|
||||||
|
if "".join(metadata[:4]) != "RIFF":
|
||||||
|
print "error: not wav file."
|
||||||
|
exit(1)
|
||||||
|
|
||||||
|
print sum(abs(word) for word in word_iter(f))
|
||||||
|
except IOError:
|
||||||
|
print "error: can't open input file '%s'." % argv[1]
|
||||||
|
exit(1)
|
|
@ -0,0 +1,12 @@
|
||||||
|
|
||||||
|
data = ARGF.read
|
||||||
|
keys = %w[id totallength wavefmt format
|
||||||
|
pcm channels frequency bytes_per_second
|
||||||
|
bytes_by_capture bits_per_sample
|
||||||
|
data bytes_in_data sum
|
||||||
|
]
|
||||||
|
values = data.unpack 'Z4 i Z8 i s s i i s s Z4 i s*'
|
||||||
|
sum = values.drop(12).map(&:abs).inject(:+)
|
||||||
|
keys.zip(values.take(12) << sum) {|k, v|
|
||||||
|
puts "#{k.ljust 17}: #{v}"
|
||||||
|
}
|
Loading…
Reference in a new issue