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.

51 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():
cmd_stop()
osc_msg_send("/gotomarker","i",1)
cmd_play()
parser = argparse.ArgumentParser(description='OSC controller for REAPER')
if __name__ == '__main__':
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]()