annotate Lib/stdwin/VUMeter.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 8331076cfe15
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
99
e0c8efee76bd *** empty log message ***
Guido van Rossum <guido@python.org>
parents: 63
diff changeset
1 # Module 'VUMeter'
55
7a01dbcee9bc Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2
7a01dbcee9bc Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
3 import audio
7a01dbcee9bc Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
4 from StripChart import StripChart
7a01dbcee9bc Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
5
7a01dbcee9bc Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
6 K = 1024
7a01dbcee9bc Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
7 Rates = [0, 32*K, 16*K, 8*K]
7a01dbcee9bc Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
8
531
8331076cfe15 New class syntax.
Guido van Rossum <guido@python.org>
parents: 99
diff changeset
9 class VUMeter(StripChart):
55
7a01dbcee9bc Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
10 #
7a01dbcee9bc Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
11 # Override define() and timer() methods
7a01dbcee9bc Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
12 #
63
61311506f2cd *** empty log message ***
Guido van Rossum <guido@python.org>
parents: 55
diff changeset
13 def define(self, parent):
61311506f2cd *** empty log message ***
Guido van Rossum <guido@python.org>
parents: 55
diff changeset
14 self = StripChart.define(self, (parent, 128))
61311506f2cd *** empty log message ***
Guido van Rossum <guido@python.org>
parents: 55
diff changeset
15 self.parent.need_timer(self)
55
7a01dbcee9bc Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
16 self.sampling = 0
7a01dbcee9bc Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
17 self.rate = 3
7a01dbcee9bc Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
18 self.enable(0)
7a01dbcee9bc Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
19 return self
7a01dbcee9bc Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
20 #
7a01dbcee9bc Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
21 def timer(self):
7a01dbcee9bc Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
22 if self.sampling:
7a01dbcee9bc Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
23 chunk = audio.wait_recording()
7a01dbcee9bc Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
24 self.sampling = 0
7a01dbcee9bc Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
25 nums = audio.chr2num(chunk)
7a01dbcee9bc Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
26 ampl = max(abs(min(nums)), abs(max(nums)))
7a01dbcee9bc Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
27 self.append(ampl)
7a01dbcee9bc Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
28 if self.enabled and not self.sampling:
7a01dbcee9bc Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
29 audio.setrate(self.rate)
7a01dbcee9bc Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
30 size = Rates[self.rate]/10
7a01dbcee9bc Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
31 size = size/48*48
7a01dbcee9bc Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
32 audio.start_recording(size)
7a01dbcee9bc Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
33 self.sampling = 1
7a01dbcee9bc Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
34 if self.sampling:
63
61311506f2cd *** empty log message ***
Guido van Rossum <guido@python.org>
parents: 55
diff changeset
35 self.parent.settimer(1)
55
7a01dbcee9bc Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
36 #
7a01dbcee9bc Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
37 # New methods: start() and stop()
7a01dbcee9bc Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
38 #
7a01dbcee9bc Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
39 def stop(self):
7a01dbcee9bc Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
40 if self.sampling:
7a01dbcee9bc Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
41 chunk = audio.stop_recording()
7a01dbcee9bc Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
42 self.sampling = 0
7a01dbcee9bc Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
43 self.enable(0)
7a01dbcee9bc Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
44 #
7a01dbcee9bc Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
45 def start(self):
7a01dbcee9bc Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
46 self.enable(1)
7a01dbcee9bc Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
47 self.timer()