Quick Python Script that runs a python-osc server and runs arbitrary batch scripts based on endpoints
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.
 
 
osc-to-script/server.py

31 lines
864 B

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