#!/usr/bin/env python3
import pythonosc.osc_server
import pythonosc.dispatcher
import numpy as np
import pygame
# toto ma kazdy ine
ip = "10.0.1.199"
port = 5055
marketa_pos = 0
jaroslav_pos = 0
dominika_pos = 0
dlzka_riadku = 100
pygame.mixer.init()
sound1 = pygame.mixer.Sound(
"/home/paum/Projekty/___/SuperCollider/downloaded-quarks/Dirt-Samples/ade/003_abt.wav"
)
sound2 = pygame.mixer.Sound(
"/home/paum/Projekty/___/SuperCollider/downloaded-quarks/Dirt-Samples/ade/006_glass.wav"
)
sound3 = pygame.mixer.Sound(
"/home/paum/Projekty/___/SuperCollider/downloaded-quarks/Dirt-Samples/ades4/03.wav"
)
# Play the sound
def replace_char_at_index(r, index, new_char):
if index < 0 or index >= len(r):
return r # Index is out of the string's range
return r[:index] + new_char + r[index + 1 :]
def panacik():
riadok = " " * dlzka_riadku
riadok = replace_char_at_index(riadok, marketa_pos, "M")
riadok = replace_char_at_index(riadok, jaroslav_pos, "J")
riadok = replace_char_at_index(riadok, dominika_pos, "D")
print(riadok)
def marketa(addr, *args):
global marketa_pos
marketa_pos = args[0]
panacik()
if marketa_pos > 10 and marketa_pos < 20:
sound1.play()
def jaroslav(addr, *args):
global jaroslav_pos
jaroslav_pos = args[0]
panacik()
if abs(jaroslav_pos - marketa_pos) < 10:
sound3.play()
def dominika(addr, *args):
global dominika_pos
dominika_pos = args[0]
panacik()
if dominika_pos == 50:
sound2.play()
# vytvorim dispecera
disp = pythonosc.dispatcher.Dispatcher()
# default co ma robit ked nieco pride
disp.set_default_handler(print)
disp.map("/marketa/pozicia", marketa)
disp.map("/jaroslav/pozicia", jaroslav)
disp.map("/dominika/pozicia", dominika)
# server
server = pythonosc.osc_server.ThreadingOSCUDPServer((ip, port), disp)
server.serve_forever()
4. Session