Compare commits
No commits in common. "06524577fffdf759c35423e6fc774c62e1db240c" and "f5c6e36d058da90ba8d24a63eea10a63f2a70a8e" have entirely different histories.
06524577ff
...
f5c6e36d05
@ -1,4 +1,4 @@
|
|||||||
#N canvas 1091 134 562 769 12;
|
#N canvas 155 110 562 769 12;
|
||||||
#X obj 95 418 netsend -u -b;
|
#X obj 95 418 netsend -u -b;
|
||||||
#X obj 87 252 oscformat tcp_coordinates;
|
#X obj 87 252 oscformat tcp_coordinates;
|
||||||
#X msg 233 363 disconnect;
|
#X msg 233 363 disconnect;
|
||||||
@ -7,9 +7,6 @@
|
|||||||
#X msg 307 289 connect localhost 5005;
|
#X msg 307 289 connect localhost 5005;
|
||||||
#X obj 325 262 loadbang;
|
#X obj 325 262 loadbang;
|
||||||
#X msg 82 214 242 29 2 0 0 0;
|
#X msg 82 214 242 29 2 0 0 0;
|
||||||
#X msg 222 122 yellow;
|
|
||||||
#X obj 226 152 list;
|
|
||||||
#X obj 238 182 oscformat color;
|
|
||||||
#X connect 1 0 4 0;
|
#X connect 1 0 4 0;
|
||||||
#X connect 2 0 0 0;
|
#X connect 2 0 0 0;
|
||||||
#X connect 3 0 0 0;
|
#X connect 3 0 0 0;
|
||||||
@ -17,6 +14,3 @@
|
|||||||
#X connect 5 0 0 0;
|
#X connect 5 0 0 0;
|
||||||
#X connect 6 0 5 0;
|
#X connect 6 0 5 0;
|
||||||
#X connect 7 0 1 0;
|
#X connect 7 0 1 0;
|
||||||
#X connect 8 0 9 0;
|
|
||||||
#X connect 9 0 10 0;
|
|
||||||
#X connect 10 0 4 0;
|
|
||||||
|
11
main.py
11
main.py
@ -8,16 +8,6 @@ from pythonosc import osc_server
|
|||||||
t = turtle.Turtle()
|
t = turtle.Turtle()
|
||||||
screen = turtle.Screen()
|
screen = turtle.Screen()
|
||||||
screen.title("Painting robot sim")
|
screen.title("Painting robot sim")
|
||||||
COLORS = [
|
|
||||||
"black",
|
|
||||||
"yellow",
|
|
||||||
"red",
|
|
||||||
"blue"
|
|
||||||
]
|
|
||||||
|
|
||||||
def color_handler(unused_addr, c):
|
|
||||||
if c in COLORS:
|
|
||||||
t.pencolor(c)
|
|
||||||
|
|
||||||
def coordinate_handler(unused_addr, x, y, z, roll, pitch, yaw):
|
def coordinate_handler(unused_addr, x, y, z, roll, pitch, yaw):
|
||||||
t.pen(pensize=z)
|
t.pen(pensize=z)
|
||||||
@ -36,7 +26,6 @@ if __name__ == "__main__":
|
|||||||
|
|
||||||
dispatcher = Dispatcher()
|
dispatcher = Dispatcher()
|
||||||
dispatcher.map("/tcp_coordinates", coordinate_handler)
|
dispatcher.map("/tcp_coordinates", coordinate_handler)
|
||||||
dispatcher.map("/color", color_handler)
|
|
||||||
|
|
||||||
server = osc_server.ThreadingOSCUDPServer((args.ip, args.port), dispatcher)
|
server = osc_server.ThreadingOSCUDPServer((args.ip, args.port), dispatcher)
|
||||||
print(f"Serving on {server.server_address}")
|
print(f"Serving on {server.server_address}")
|
||||||
|
@ -18,24 +18,22 @@ args = parser.parse_args()
|
|||||||
|
|
||||||
client = udp_client.SimpleUDPClient(args.ip, args.port)
|
client = udp_client.SimpleUDPClient(args.ip, args.port)
|
||||||
angle = 0
|
angle = 0
|
||||||
magnitude = 0
|
magnitude = 20
|
||||||
mean = 74.1
|
|
||||||
client.send_message("/color", "yellow")
|
|
||||||
|
|
||||||
|
|
||||||
for msg in mid.tracks[1]:
|
for msg in mid.tracks[1]:
|
||||||
t = mido.tick2second(msg.time, mid.ticks_per_beat, 1000000)
|
t = mido.tick2second(msg.time, mid.ticks_per_beat, 1000000)
|
||||||
beats = msg.time / mid.ticks_per_beat
|
beats = msg.time / mid.ticks_per_beat
|
||||||
|
time.sleep(t)
|
||||||
rotation = 2 * math.pi * beats / 16
|
rotation = 2 * math.pi * beats / 16
|
||||||
|
|
||||||
angle += rotation
|
angle += rotation
|
||||||
magnitude += beats * 3
|
magnitude += beats
|
||||||
if msg.type != "note_on" or msg.time == 0:
|
if msg.type != "note_on":
|
||||||
time.sleep(t)
|
|
||||||
continue
|
continue
|
||||||
print(msg.note)
|
|
||||||
adj_angle = angle + (msg.note - mean) / 9
|
print(angle)
|
||||||
y = math.sin(adj_angle) * magnitude
|
print(magnitude)
|
||||||
x = math.cos(adj_angle) * magnitude
|
|
||||||
client.send_message("/tcp_coordinates", (x, y, 6, 0, 0, 0))
|
y = math.sin(angle) * magnitude
|
||||||
time.sleep(t)
|
x = math.cos(angle) * magnitude
|
||||||
|
client.send_message("/tcp_coordinates", (x, y, 10, 0, 0, 0))
|
||||||
|
Loading…
Reference in New Issue
Block a user