mirror of
https://github.com/python/cpython.git
synced 2025-08-03 08:34:29 +00:00
Initial revision
This commit is contained in:
parent
6acc1b539a
commit
36ddc9e318
4 changed files with 226 additions and 0 deletions
46
Lib/stdwin/VUMeter.py
Executable file
46
Lib/stdwin/VUMeter.py
Executable file
|
@ -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()
|
Loading…
Add table
Add a link
Reference in a new issue