Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/TurtleArt/talogo.py
diff options
context:
space:
mode:
authorWalter Bender <walter@sugarlabs.org>2010-10-30 12:20:00 (GMT)
committer Walter Bender <walter@sugarlabs.org>2010-10-30 12:20:00 (GMT)
commitb5054e7596ae4abe99e2fc5a4a5510103a14d5e0 (patch)
treea6db6a17de8bfce1f5147454a5c8f565100c64d7 /TurtleArt/talogo.py
parent2e41bda0a23a5e41d2319dac2ff026dc7bec6f00 (diff)
added sound block for raw mic input
Diffstat (limited to 'TurtleArt/talogo.py')
-rw-r--r--TurtleArt/talogo.py15
1 files changed, 12 insertions, 3 deletions
diff --git a/TurtleArt/talogo.py b/TurtleArt/talogo.py
index a6b78d0..5dde533 100644
--- a/TurtleArt/talogo.py
+++ b/TurtleArt/talogo.py
@@ -301,6 +301,7 @@ class LogoCode:
'(': [1, lambda self, x: self._prim_opar(x)],
'and': [2, lambda self, x, y: _and(x, y)],
'arc': [2, lambda self, x, y: self._prim_arc(self.tw.canvas.arc, x, y)],
+ 'audio': [1, lambda self, x: self._play_sound(x)],
'back': [1, lambda self, x: self._prim_move(self.tw.canvas.forward,
-x)],
'black': [0, lambda self: BLACK],
@@ -403,7 +404,7 @@ class LogoCode:
'showaligned': [1,lambda self, x: self._show(x, False)],
'showblocks': [0, lambda self: self.tw.showblocks()],
'skin': [1, lambda self, x: self._reskin(x)],
- 'sound': [1, lambda self, x: self._play_sound(x)],
+ 'sound': [0, lambda self: self._get_sound()],
'sqrt': [1, lambda self, x: _sqrt(x)],
'stack1': [0, self._prim_stack1, True],
'stack': [1, self._prim_stack, True],
@@ -1084,9 +1085,9 @@ class LogoCode:
def find_sensor_blocks(self):
""" Find any sensor blocks and set the appropriate sensor type """
- for name in ['volume', 'pitch', 'resistance', 'voltage']:
+ for name in ['sound', 'volume', 'pitch', 'resistance', 'voltage']:
if len(self.tw.block_list.get_similar_blocks('block', name)):
- if name in ['volume', 'pitch']:
+ if name in ['sound', 'volume', 'pitch']:
self.tw.audiograb.set_sensor_type()
return
elif name == 'resistance':
@@ -1388,6 +1389,14 @@ class LogoCode:
else:
return 0
+ def _get_sound(self):
+ """ return raw mic in value """
+ buf = self.ringbuffer.read(None, self.input_step)
+ if len(buf) > 0:
+ return float(buf[0])
+ else:
+ return 0
+
def _get_pitch(self):
""" return index of max value in fft of mic in values """
buf = self.ringbuffer.read(None, self.input_step)