You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.5 KiB
50 lines
1.5 KiB
#!/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 <server>:<port>. 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]()
|
|
|