def __init__(self, stream=None, **kwargs): super(Visualisation, self).__init__(**kwargs) self.stream = stream if self.stream == None: self.stream = InputStream() self.stream.start() self._last_tick = time.time()
class Visualisation(MTWidget): #----------------- # Give it a stream if you have one already, otherwise it will create its own. #----------------- def __init__(self, stream=None, **kwargs): super(Visualisation, self).__init__(**kwargs) self.stream = stream if self.stream == None: self.stream = InputStream() self.stream.start() self._last_tick = time.time() def draw(self): temp = time.time() self.visualise((temp-self._last_tick)*1000) self._last_tick = temp #------------------ # Override this method to make your own visualisation # ticks is millis since last call (float) #------------------ def visualise(self, ticks): pass
from pymt import * from audio_input import InputStream from visualisation import * import pygame from OpenGL.GL import * # -------------------- # If you have windowing issues you need to fix your config file. # Apparently a new "feature" with 0.4 is to create a window with import (how exciting) # so to fix windowing issues do: # python -m pymt.tools.config -n # -------------------- stream = InputStream() stream.start() i = 0 visualisations = [BasicVisualisation, ParticleVisualisation, WaveVisualisation, BalloonVisualisation] # visualisations = [BasicVisualisation, CircleVisualisation, ParticleVisualisation, GarethVis, WaveVisualisation, ThreedVis] ThreedVis breaks drawing at the moment # b = MTScatterWidget(width = int(pymt_config.get('graphics', 'width')), height = int(pymt_config.get('graphics', 'height'))) # v = GarethVis(width = int(pymt_config.get('graphics', 'width')), height = int(pymt_config.get('graphics', 'height')), stream=stream ) v = BasicVisualisation( width=int(pymt_config.get("graphics", "width")), height=int(pymt_config.get("graphics", "height")), stream=stream ) container = MTWidget() container.add_widget(v) change = MTButton(label="Change Visualisation", pos=(20, 20), size=(100, 50)) root = MTWidget() root.add_widget(container) root.add_widget(change)