4 from Histogram
import Histogram
6 class Soundogram(Histogram
):
8 def define(self
, win
, chunk
):
9 width
, height
= corner
= win
.getwinsize()
10 bounds
= (0, 0), corner
12 self
.step
= (len(chunk
)-1)/(width
/2+1) + 1
13 ydata
= _make_ydata(chunk
, self
.step
)
14 return Histogram
.define(self
, (win
, bounds
, ydata
, (0, 128)))
16 def setchunk(self
, chunk
):
21 (left
, top
), (right
, bottom
) = self
.bounds
23 self
.step
= (len(chunk
)-1)/width
+ 1
24 ydata
= _make_ydata(chunk
, self
.step
)
25 self
.setdata(ydata
, (0, 128))
29 def _make_ydata(chunk
, step
):
31 for i
in range(0, len(chunk
), step
):
32 piece
= audio
.chr2num(chunk
[i
:i
+step
])
33 mi
, ma
= min(piece
), max(piece
)
34 y
= max(abs(mi
), abs(ma
))