from pythonosc.dispatcher import Dispatcher from pythonosc.osc_server import BlockingOSCUDPServer import subprocess from subprocess import Popen import argparse parser = argparse.ArgumentParser() parser.add_argument("-ip", "--osc-ip", help="OSC Device IP Address") parser.add_argument("-p", "--port", help="OSC Device Port") args = parser.parse_args() def default_handler(address, *args): print(f"DEFAULT {address}: {args}") def run_script(address, *args): script_to_run = address.split("/")[-1] print(f"Script to run: {script_to_run}") Popen(script_to_run,creationflags=subprocess.CREATE_NEW_CONSOLE) dispatcher = Dispatcher() dispatcher.map("/script/*", run_script) dispatcher.set_default_handler(default_handler) ip = "127.0.0.1" port = 1337 server = BlockingOSCUDPServer((ip, port), dispatcher) server.serve_forever() # Blocks forever