diff options
author | Guido van Rossum <guido@python.org> | 1990-10-31 11:24:22 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 1990-10-31 11:24:22 (GMT) |
commit | 36ddc9e31884d0143d9b23b7f72ddf4f3d45145f (patch) | |
tree | 97a5050b9050dbf0579a3bf8762f1032249a6616 /Lib/lib-stdwin/VUMeter.py | |
parent | 6acc1b539aa007ad6896783031f473c2ebe11bc2 (diff) | |
download | cpython-36ddc9e31884d0143d9b23b7f72ddf4f3d45145f.zip cpython-36ddc9e31884d0143d9b23b7f72ddf4f3d45145f.tar.gz cpython-36ddc9e31884d0143d9b23b7f72ddf4f3d45145f.tar.bz2 |
Initial revision
Diffstat (limited to 'Lib/lib-stdwin/VUMeter.py')
-rw-r--r-- | Lib/lib-stdwin/VUMeter.py | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/Lib/lib-stdwin/VUMeter.py b/Lib/lib-stdwin/VUMeter.py new file mode 100644 index 0000000..65c018b --- /dev/null +++ b/Lib/lib-stdwin/VUMeter.py @@ -0,0 +1,46 @@ +# Module VUMeter + +import audio +from StripChart import StripChart + +K = 1024 +Rates = [0, 32*K, 16*K, 8*K] + +class VUMeter() = StripChart(): + # + # Override define() and timer() methods + # + def define(self, (win, bounds)): + self = StripChart.define(self, (win, bounds, 128)) + self.sampling = 0 + self.rate = 3 + self.enable(0) + return self + # + def timer(self): + if self.sampling: + chunk = audio.wait_recording() + self.sampling = 0 + nums = audio.chr2num(chunk) + ampl = max(abs(min(nums)), abs(max(nums))) + self.append(ampl) + if self.enabled and not self.sampling: + audio.setrate(self.rate) + size = Rates[self.rate]/10 + size = size/48*48 + audio.start_recording(size) + self.sampling = 1 + if self.sampling: + self.win.settimer(1) + # + # New methods: start() and stop() + # + def stop(self): + if self.sampling: + chunk = audio.stop_recording() + self.sampling = 0 + self.enable(0) + # + def start(self): + self.enable(1) + self.timer() |