You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
129 lines
4.3 KiB
Python
129 lines
4.3 KiB
Python
import argparse
|
|
import subprocess
|
|
from pythonosc.dispatcher import Dispatcher
|
|
from pythonosc import osc_server
|
|
from pythonosc import udp_client
|
|
from typing import List, Any
|
|
|
|
client = udp_client.SimpleUDPClient("127.0.0.1", 58110)
|
|
|
|
def send_message(channel, message):
|
|
print("will send a message ", channel, message)
|
|
client.send_message(channel, message)
|
|
|
|
def track_0():
|
|
cmd_0 = "ffmpeg -y -i \"$(tree -if /home/xpub/audio_0 | grep -Eo '^(.*/)([^/]*)\.mp3$' | shuf -n 1)\" /home/xpub/wav_files/00.wav"
|
|
proc_0 = subprocess.Popen(cmd_0,shell=True)
|
|
wav_0 = proc_0.communicate()[0]
|
|
|
|
def track_1():
|
|
cmd_1 = "ffmpeg -y -i \"$(tree -if /home/xpub/audio_0 | grep -Eo '^(.*/)([^/]*)\.mp3$' | shuf -n 1)\" /home/xpub/wav_files/01.wav"
|
|
proc_1 = subprocess.Popen(cmd_1,shell=True)
|
|
wav_1 = proc_1.communicate()[0]
|
|
|
|
def track_2():
|
|
cmd_2 = "ffmpeg -y -i \"$(tree -if /home/xpub/audio_1 | grep -Eo '^(.*/)([^/]*)\.mp3$' | shuf -n 1)\" /home/xpub/wav_files/02.wav"
|
|
proc_2 = subprocess.Popen(cmd_2,shell=True)
|
|
wav_2 = proc_2.communicate()[0]
|
|
|
|
def track_3():
|
|
cmd_3 = "ffmpeg -y -i \"$(tree -if /home/xpub/audio_1 | grep -Eo '^(.*/)([^/]*)\.mp3$' | shuf -n 1)\" /home/xpub/wav_files/03.wav"
|
|
proc_3 = subprocess.Popen(cmd_3,shell=True)
|
|
wav_3 = proc_3.communicate()[0]
|
|
|
|
def track_4():
|
|
cmd_4 = "ffmpeg -y -i \"$(tree -if /home/xpub/audio_2 | grep -Eo '^(.*/)([^/]*)\.mp3$' | shuf -n 1)\" /home/xpub/wav_files/04.wav"
|
|
proc_4 = subprocess.Popen(cmd_4,shell=True)
|
|
wav_4 = proc_4.communicate()[0]
|
|
|
|
def track_5():
|
|
cmd_5 = "ffmpeg -y -i \"$(tree -if /home/xpub/audio_2 | grep -Eo '^(.*/)([^/]*)\.mp3$' | shuf -n 1)\" /home/xpub/wav_files/05.wav"
|
|
proc_5 = subprocess.Popen(cmd_5,shell=True)
|
|
wav_5 = proc_5.communicate()[0]
|
|
|
|
def track_6():
|
|
cmd_6 = "ffmpeg -y -i \"$(tree -if /home/xpub/audio_3 | grep -Eo '^(.*/)([^/]*)\.mp3$' | shuf -n 1)\" /home/xpub/wav_files/06.wav"
|
|
proc_6 = subprocess.Popen(cmd_6,shell=True)
|
|
wav_6 = proc_6.communicate()[0]
|
|
|
|
def track_7():
|
|
cmd_7 = "ffmpeg -y -i \"$(tree -if /home/xpub/audio_3 | grep -Eo '^(.*/)([^/]*)\.mp3$' | shuf -n 1)\" /home/xpub/wav_files/07.wav"
|
|
proc_7 = subprocess.Popen(cmd_7,shell=True)
|
|
wav_7 = proc_7.communicate()[0]
|
|
|
|
def init(address: str, *args: List[Any]) -> None:
|
|
track_0()
|
|
send_message("/begin/00", "/home/xpub/wav_files/00.wav")
|
|
track_2()
|
|
send_message("/begin/02", "/home/xpub/wav_files/02.wav")
|
|
track_4()
|
|
send_message("/begin/04", "/home/xpub/wav_files/04.wav")
|
|
track_6()
|
|
send_message("/begin/06", "/home/xpub/wav_files/06.wav")
|
|
track_1()
|
|
track_3()
|
|
track_5()
|
|
track_7()
|
|
|
|
def set_done(address: str, *args: List[Any]) -> None:
|
|
value1 = args[0]
|
|
doneno = address[-2:]
|
|
|
|
print(f"done{doneno}: {value1}")
|
|
if doneno == "00":
|
|
send_message("/begin/01", "/home/xpub/wav_files/01.wav")
|
|
track_0()
|
|
|
|
if doneno == "01":
|
|
send_message("/begin/00", "/home/xpub/wav_files/00.wav")
|
|
track_1()
|
|
|
|
if doneno == "02":
|
|
send_message("/begin/03", "/home/xpub/wav_files/03.wav")
|
|
track_2()
|
|
|
|
if doneno == "03":
|
|
send_message("/begin/02", "/home/xpub/wav_files/02.wav")
|
|
track_3()
|
|
|
|
if doneno == "04":
|
|
send_message("/begin/05", "/home/xpub/wav_files/05.wav")
|
|
track_4()
|
|
|
|
if doneno == "05":
|
|
send_message("/begin/04", "/home/xpub/wav_files/04.wav")
|
|
track_5()
|
|
|
|
if doneno == "06":
|
|
send_message("/begin/07", "/home/xpub/wav_files/07.wav")
|
|
track_6()
|
|
|
|
if doneno == "07":
|
|
send_message("/begin/06", "/home/xpub/wav_files/06.wav")
|
|
track_7()
|
|
|
|
if __name__ == "__main__":
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument("--ip", default="127.0.0.1",
|
|
help="The ip of the OSC server")
|
|
parser.add_argument("--port", type=int, default=57120,
|
|
help="The port the OSC server is listening on")
|
|
args = parser.parse_args()
|
|
|
|
dispatcher = Dispatcher()
|
|
dispatcher.map("/done00", set_done)
|
|
dispatcher.map("/done01", set_done)
|
|
dispatcher.map("/done02", set_done)
|
|
dispatcher.map("/done03", set_done)
|
|
dispatcher.map("/done04", set_done)
|
|
dispatcher.map("/done05", set_done)
|
|
dispatcher.map("/done06", set_done)
|
|
dispatcher.map("/done07", set_done)
|
|
dispatcher.map("/hello", init)
|
|
|
|
server = osc_server.ThreadingOSCUDPServer((args.ip, args.port), dispatcher)
|
|
print("Serving on {}".format(server.server_address))
|
|
|
|
server.serve_forever()
|
|
|