# 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()