added external files

This commit is contained in:
Yann Esposito (Yogsototh) 2010-10-15 16:33:42 +02:00
parent 8b9ce52833
commit 06dd156027
4 changed files with 80 additions and 0 deletions

View file

@ -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)

View file

@ -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}"
}

View file

@ -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)

View file

@ -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}"
}