Pastie now auto-senses if line-wrap is a bad or good idea. Feedback?
## mark a section (Learn more)
""" simpleOSC 0.2 ixi software - July, 2006 www.ixi-software.net simple API for the Open SoundControl for Python (by Daniel Holth, Clinton McChesney --> pyKit.tar.gz file at http://wiretap.stetson.edu) Documentation at http://wiretap.stetson.edu/docs/pyKit/ The main aim of this implementation is to provide with a simple way to deal with the OSC implementation that makes life easier to those who don't have understanding of sockets or programming. This would not be on your screen without the help of Daniel Holth. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Thanks for the support to Buchsenhausen, Innsbruck, Austria. """ import osc # just importing the osc module creates under the hood an outbound socket and the callback manager # (osc addressManager). But we dont have to worry about that. def myTest(): """ a simple function that creates the necesary sockets and enters an enless loop sending and receiving OSC """ osc.init() ## osc.createListener() # this defaults to port 9001 as well osc.listen('127.0.0.1', 9001) # bind addresses to functions -> printStuff() function will be triggered everytime a # "/test" labeled message arrives osc.bind(printStuff, "/") import time # in this example we will have a small delay in the while loop print 'ready to receive and send osc messages ...' while 1: osc.sendMsg("/appled/1/state 1", [444], "192.168.100.30", 10000) # send normal msg to a specific ip and port ## osc.sendMsg("/test", [444]) # !! it sends by default to localhost ip "127.0.0.1" and port 9000 # create and send a bundle bundle = osc.createBundle() osc.appendToBundle(bundle, "/analogin/7/state", [1, 2, 3]) # 1st message appent to bundle #osc.appendToBundle(bundle, "/analogin/7/state", [4, 5, 6]) # 2nd message appent to bundle osc.sendBundle(bundle, "192.168.100.30", 10000) # send it to a specific ip and port ## osc.sendBundle(bundle) # !! it sends by default to localhost ip "127.0.0.1" and port 9000 #osc.getOSC(inSocket) # listen to incomming OSC in this socket time.sleep(0.5) # you don't need this, but otherwise we're sending as fast as possible. osc.dontListen() # finally close the connection bfore exiting or program """ Below some functions dealing with OSC messages RECEIVED to Python. Here you can set all the responders you need to deal with the incoming OSC messages. You need them to the callBackManager instance in the main loop and associate them to the desired OSC addreses like this for example addressManager.add(printStuff, "/print") it would associate the /print tagged messages with the printStuff() function defined in this module. You can have several callback functions in a separated module if you wish """ def printStuff(*msg): """deals with "print" tagged OSC addresses """ print "printing in the printStuff function ", msg print "the oscaddress is ", msg[0][0] print "the value is ", msg[0][2] if __name__ == '__main__': myTest()
This paste will be private.
From the Design Piracy series on my blog: