#!/usr/bin/python3 # Import needed modules from osc4py3 from osc4py3.as_eventloop import * from osc4py3 import oscbuildparse import logging import argparse logging.basicConfig(format='%(asctime)s - %(threadName)s ΓΈ %(name)s - ' '%(levelname)s - %(message)s') log = logging.getLogger("osc") log.setLevel(logging.DEBUG) clientname="ledclient" def osc_msg_send(path,struct,data): msg=oscbuildparse.OSCMessage(path,","+struct,[data]) osc_send(msg,clientname) osc_process() def cmd_play(): osc_msg_send("/play","i",1) def cmd_stop(): osc_msg_send("/stop","i",1) def cmd_restart(): stop() osc_msg_send("/gotomarker","i",1) play() parser = argparse.ArgumentParser(description='OSC controller for REAPER') parser.add_argument('command', action='store',choices=[cmd.replace("cmd_",'') for cmd in globals() if 'cmd_' in cmd],help='Command to send via OSC') parser.add_argument('--debug-osc',action='store_true',default=False,help='Debug OSC messages') parser.add_argument('--server',action='store',default='127.0.0.1:8000',help="Server to connect to :. Defaults to localhost:8000",metavar='server:port') args=parser.parse_args() # Start the system. if args.debug_osc: osc_startup(logger=log) else: osc_startup() # Make client channels to send packets. server_address=args.server.split(':')[0] server_port=args.server.split(':')[1] osc_udp_client(server_address,server_port, clientname) if __name__ == '__main__': globals()['cmd_'+args.command]()