From f5fe60cf084d4f244b46efd2184f495721028438 Mon Sep 17 00:00:00 2001 From: Pete Shadbolt Date: Sun, 28 Dec 2014 17:38:18 +0000 Subject: [PATCH] Multichannel OSC --- chuck.ck | 65 --------------------------------- interface.py | 10 ------ osctest.py | 100 --------------------------------------------------- run.sh | 4 +-- 4 files changed, 2 insertions(+), 177 deletions(-) delete mode 100644 chuck.ck delete mode 100644 interface.py delete mode 100644 osctest.py diff --git a/chuck.ck b/chuck.ck deleted file mode 100644 index f155a02..0000000 --- a/chuck.ck +++ /dev/null @@ -1,65 +0,0 @@ -// Effects chain -adc => Gain g => dac; -g => Gain feedback => DelayL delay => g; - -// Delay parameters -10::second => delay.max; -5::second => delay.delay; -1 => feedback.gain; -1 => delay.gain; - -// Create our OSC receiver -OscRecv recv; -9000 => recv.port; -recv.listen(); -recv.event( "/test, f" ) @=> OscEvent oe; - -// Event loop -while (true) { - // Wait for event to arrive - oe => now; - - // Grab the next message from the queue. - while ( oe.nextMsg() != 0 ) { - float val; - <<>>; - oe.getFloat() => val; - val::second => delay.delay; - } -} - - -/* -// Listen for messages regarding ADC input -fun void oscListener( int port, string osctype ) { -// create our OSC receiver -OscRecv recv; -port => recv.port; -recv.listen(); - -int val; -string type; - -// create an address in the receiver, store in new variable -recv.event( osctype ) @=> OscEvent oe; - -while( true ) { -// wait for osc event to arrive -oe => now; - -while( oe.nextMsg() ) { -oe.getInt() => val; -osctype => type; - -if( type == leftraw ) { -val => raw.freq; -} -else if( type == leftavg ) { -val => avg.freq; -} - -me.yield(); -} -} -} -*/ diff --git a/interface.py b/interface.py deleted file mode 100644 index ce7e3e7..0000000 --- a/interface.py +++ /dev/null @@ -1,10 +0,0 @@ -from libs.simpleosc import * - -server = OSCServer (("127.0.0.1", 9000)) -server.addDefaultHandlers() - - -initOSCClient(port=9000) -sendOSCMsg("/test", [.1]) -closeOSC() - diff --git a/osctest.py b/osctest.py deleted file mode 100644 index 27cacf9..0000000 --- a/osctest.py +++ /dev/null @@ -1,100 +0,0 @@ -from libs.simpleosc import * -import wx - -class OSCSlider(wx.Panel): - ''' A GUI slider ''' - def __init__(self, parent, label, min_value=0, max_value=1, default_value=0, show_value=True, align=True): - ''' Constructor ''' - self.show_value=show_value - wx.Panel.__init__(self, parent) - sizer=wx.BoxSizer(wx.HORIZONTAL) - label=wx.StaticText(self, label=label, size=(100,15) if align else None) - sizer.Add(label, 0, wx.RIGHT, 10) - self.slider=wx.Slider(self, value=default_value*100, minValue=min_value*100, maxValue=max_value*100) - sizer.Add(self.slider, 1, wx.EXPAND) - if show_value: - self.indicator=wx.StaticText(self, label="--", size=(50,15)) - sizer.Add(self.indicator, 0, wx.LEFT, 10) - self.SetSizerAndFit(sizer) - self.slider.Bind(wx.EVT_SCROLL, self.update) - self.update(None) - - def update(self, evt): - """ Send OSC messages """ - value=self.slider.GetValue()/100. - if self.show_value: - self.indicator.SetLabel("%s" % value) - try: - sendOSCMsg("/test", [value]) - except OSCClientError: - pass - -class InputPanel(wx.Panel): - ''' Handle the ADC input settings ''' - def __init__(self, parent): - ''' Constructor ''' - wx.Panel.__init__(self, parent) - sizer = wx.BoxSizer(wx.HORIZONTAL) - - label = wx.StaticText(self, label="Line In:") - font = label.GetFont(); font.SetWeight(wx.BOLD); label.SetFont(font) - sizer.Add(label, 0, wx.TOP|wx.BOTTOM|wx.RIGHT, 5) - - self.gain=OSCSlider(self, "Gain", default_value=.5, show_value=False, align=False) - sizer.Add(self.gain, 1, wx.ALL, 5) - self.thru=OSCSlider(self, "Thru", default_value=.5, show_value=False, align=False) - sizer.Add(self.thru, 1, wx.ALL, 5) - - self.button=wx.Button(self, 1, "Kill input") - sizer.Add(self.button, 0) - self.SetSizerAndFit(sizer) - - -class MainGUI(wx.Frame): - """ A simple GUI to talk to Chuck """ - def __init__(self): - """ Constructor """ - # Build the interface - self.app = wx.App(False) - self.build() - self.app.MainLoop() - - def build(self): - """ Builds the various pieces of the GUI """ - wx.Frame.__init__(self, None, title="DELAY LORD") - self.Bind(wx.EVT_CLOSE, self.quit) - - # The main sizer - self.mainsizer = wx.BoxSizer(wx.VERTICAL) - - self.inputPanel = InputPanel(self) - self.mainsizer.Add(self.inputPanel, 0, wx.EXPAND|wx.ALL, 5) - - line=wx.StaticLine(self) - self.mainsizer.Add(line, 0, wx.EXPAND|wx.ALL, 5) - - self.delayTime=OSCSlider(self, "Delay time (s)", default_value=5, max_value=10) - self.mainsizer.Add(self.delayTime, 0, wx.EXPAND|wx.ALL, 5) - - self.feedback=OSCSlider(self, "Feedback", default_value=.95) - self.mainsizer.Add(self.feedback, 0, wx.EXPAND|wx.ALL, 5) - - # Put things together - self.SetSizerAndFit(self.mainsizer) - self.Show() - self.SetSize((400,500)) - - - def populate_left_panel(self): - """ Populate the left panel """ - # Status boxes - - def quit(self, *args): - """ Close down gracefully, and then destroy the window """ - self.Destroy() - - -if __name__ == "__main__": - initOSCClient(ip="127.0.0.1", port=9000) - g=MainGUI() - closeOSC() diff --git a/run.sh b/run.sh index 74aed9c..699ed67 100755 --- a/run.sh +++ b/run.sh @@ -1,5 +1,5 @@ #!/bin/bash -chuck --bufsize64 chuck.ck & -python ./osctest.py +chuck --bufsize64 main.ck & +python ./main.py pkill -SIGINT chuck