From 36c2ab9023493c3cf38651006f587ba0b9b009ce Mon Sep 17 00:00:00 2001 From: Joshua Minor Date: Sat, 22 Dec 2007 00:51:04 +0000 Subject: More code cleanup. Re-built the .xo package. --- diff --git a/Speak.activity/mouth.py b/Speak.activity/mouth.py index bca2813..2a42833 100644 --- a/Speak.activity/mouth.py +++ b/Speak.activity/mouth.py @@ -16,39 +16,35 @@ from FFT import * class Mouth(gtk.DrawingArea): def __init__(self, audioSource): - + gtk.DrawingArea.__init__(self) self.connect("expose_event",self.expose) self.buffers = [] - self.str_buffer='' - self.integer_buffer=[] + self.main_buffers = [] + self.integer_buffer = [] audioSource.connect("new-buffer", self._new_buffer) self.peaks = [] - self.main_buffers = [] - + self.y_mag = 0.7 self.freq_range=70 self.draw_interval = 1 self.num_of_points = 105 - - self.details_show = False self.stop=False self.fft_show = False self.fftx = [] - self.y_mag_bias_multiplier = 1 #constant to multiply with self.param2 while scaling values - + self.y_mag_bias_multiplier = 1 #constant to multiply with self.param2 while scaling values + self.scaleX = "10" self.scaleY = "10" - + def _new_buffer(self, obj, buf): - self.str_buffer = buf - self.integer_buffer = list(unpack( str(int(len(buf))/2)+'h' , buf)) + self.integer_buffer = list(unpack( str(int(len(buf))/2)+'h' , buf)) if(len(self.main_buffers)>6301): del self.main_buffers[0:(len(self.main_buffers)-6301)] self.main_buffers += self.integer_buffer @@ -57,91 +53,91 @@ class Mouth(gtk.DrawingArea): def processBuffer(self, bounds): self.param1 = bounds.height/65536.0 - self.param2 = bounds.height/2.0 + self.param2 = bounds.height/2.0 + + if(self.stop==False): + + if(self.fft_show==False): - if(self.stop==False): - - if(self.fft_show==False): - ######################filtering#################### - weights = [1,2,3,4,3,2,1] + weights = [1,2,3,4,3,2,1] weights_sum = 16.0 - + for i in range(3,len(self.integer_buffer)-3): - self.integer_buffer[i] = (self.integer_buffer[(i-3)]+2*self.integer_buffer[(i-2)] + 3*self.integer_buffer[(i-1)] + 4*self.integer_buffer[(i)]+3*self.integer_buffer[(i+1)] + 2*self.integer_buffer[(i+2)] + self.integer_buffer[(i+3)]) / weights_sum + self.integer_buffer[i] = (self.integer_buffer[(i-3)]+2*self.integer_buffer[(i-2)] + 3*self.integer_buffer[(i-1)] + 4*self.integer_buffer[(i)]+3*self.integer_buffer[(i+1)] + 2*self.integer_buffer[(i+2)] + self.integer_buffer[(i+3)]) / weights_sum ################################################### - - self.y_mag_bias_multiplier=1 - self.draw_interval=10 - + + self.y_mag_bias_multiplier=1 + self.draw_interval=10 + #100hz if(self.freq_range==30): self.spacing = 60 self.num_of_points=6300 - + #1khz if(self.freq_range==50): self.spacing = 6 self.num_of_points=630 - + #4khz if(self.freq_range==70): self.spacing = 1 self.num_of_points = 105 - - self.scaleX = str(self.spacing*.104) + " msec" #.104 = 5/48; 5 points per division and 48 khz sampling - + + self.scaleX = str(self.spacing*.104) + " msec" #.104 = 5/48; 5 points per division and 48 khz sampling + if(len(self.main_buffers)>=self.num_of_points): del self.main_buffers[0:len(self.main_buffers)-(self.num_of_points+1)] self.buffers=[] i=0 while i= bounds.height): temp_val_float = bounds.height-25 if(temp_val_float <= 0): temp_val_float = 25 val.append( temp_val_float ) - + self.peaks = val ################################################# - + def expose(self, widget, event): """This function is the "expose" event handler and does all the drawing.""" - + bounds = self.get_allocation() - + self.processBuffer(bounds) - + #Create context, disable antialiasing self.context = widget.window.cairo_create() self.context.set_antialias(cairo.ANTIALIAS_NONE) @@ -150,14 +146,13 @@ class Mouth(gtk.DrawingArea): self.context.rectangle(event.area.x, event.area.y,event.area.width, event.area.height) self.context.clip() - # background self.context.set_source_rgb(.5,.5,.5) - self.context.rectangle(0,0, bounds.width,bounds.height) + self.context.rectangle(0,0, bounds.width,bounds.height) self.context.fill() # Draw the waveform - self.context.set_line_width(10.0) + self.context.set_line_width(10.0) count = 0 for peak in self.peaks: self.context.line_to(count,bounds.height - peak) diff --git a/dist/speak.xo b/dist/speak.xo index 2e83056..9ee0ec3 100644 --- a/dist/speak.xo +++ b/dist/speak.xo Binary files differ -- cgit v0.9.1