home *** CD-ROM | disk | FTP | other *** search
- # 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, parent):
- self = StripChart.define(self, (parent, 128))
- self.parent.need_timer(self)
- 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.parent.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()
-