Mercurial > cpython-lru_cache-weakref
annotate Lib/stdwin/Soundogram.py @ 5817:48b94de85bf3 legacy-trunk
Extensive changes by AMK.
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Thu, 17 Jul 1997 16:29:42 +0000 |
| parents | 1d06b1499eb9 |
| children |
| rev | line source |
|---|---|
| 33 | 1 # Module 'Soundogram' |
| 2 | |
| 3 import audio | |
| 4 from Histogram import Histogram | |
| 5 | |
| 531 | 6 class Soundogram(Histogram): |
| 33 | 7 # |
|
1110
1d06b1499eb9
* Got entirely rid of path.py.
Guido van Rossum <guido@python.org>
parents:
531
diff
changeset
|
8 def define(self, win, chunk): |
| 33 | 9 width, height = corner = win.getwinsize() |
| 10 bounds = (0, 0), corner | |
| 11 self.chunk = chunk | |
| 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))) | |
| 15 # | |
| 16 def setchunk(self, chunk): | |
| 17 self.chunk = chunk | |
| 18 self.recompute() | |
| 19 # | |
| 20 def recompute(self): | |
| 21 (left, top), (right, bottom) = self.bounds | |
| 22 width = right - left | |
| 23 self.step = (len(chunk)-1)/width + 1 | |
| 24 ydata = _make_ydata(chunk, self.step) | |
| 25 self.setdata(ydata, (0, 128)) | |
| 26 # | |
| 27 | |
| 28 | |
| 29 def _make_ydata(chunk, step): | |
| 30 ydata = [] | |
| 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)) | |
| 35 ydata.append(y) | |
| 36 return ydata |
