Compare commits
6 Commits
master
...
mussorgsky
Author | SHA1 | Date | |
---|---|---|---|
2f7f6d0a1c | |||
0d8e0a85c7 | |||
06524577ff | |||
44b7caed76 | |||
1a07709d39 | |||
f5c6e36d05 |
BIN
1ublau.mid
Executable file
BIN
1ublau.mid
Executable file
Binary file not shown.
BIN
7eisblau.mid
Executable file
BIN
7eisblau.mid
Executable file
Binary file not shown.
57
eisblau.py
Normal file
57
eisblau.py
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
import argparse
|
||||||
|
import math
|
||||||
|
import time
|
||||||
|
from mido import MidiFile
|
||||||
|
from pythonosc import udp_client
|
||||||
|
import mido
|
||||||
|
import random
|
||||||
|
|
||||||
|
mid = MidiFile('7eisblau.mid')
|
||||||
|
|
||||||
|
random.seed(10)
|
||||||
|
|
||||||
|
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=5005,
|
||||||
|
help="The port the OSC server is listening on")
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
client = udp_client.SimpleUDPClient(args.ip, args.port)
|
||||||
|
client.send_message("/color", "blue")
|
||||||
|
|
||||||
|
|
||||||
|
accrued_time = 0
|
||||||
|
note_count = 0
|
||||||
|
coor = (50, 50)
|
||||||
|
direction = [1, 0]
|
||||||
|
|
||||||
|
|
||||||
|
client.send_message("/tcp_coordinates", (50, 50, 0, 0, 0, 0))
|
||||||
|
for msg in mid.tracks[1]:
|
||||||
|
t = mido.tick2second(msg.time, mid.ticks_per_beat, 1000000)
|
||||||
|
beats = msg.time / mid.ticks_per_beat
|
||||||
|
accrued_time += t
|
||||||
|
if msg.type != "note_on" or msg.time == 0:
|
||||||
|
time.sleep(t)
|
||||||
|
continue
|
||||||
|
note_count += 1
|
||||||
|
if note_count > 4:
|
||||||
|
note_count = 0
|
||||||
|
coor = (coor[0] + direction[0] * accrued_time * 21, coor[1] + direction[1] * accrued_time * 21)
|
||||||
|
client.send_message("/tcp_coordinates", (coor[0], coor[1], 6, 0, 0, 0))
|
||||||
|
accrued_time = 0
|
||||||
|
for i, m in enumerate(direction):
|
||||||
|
if m != 0:
|
||||||
|
direction[i] = 0
|
||||||
|
else:
|
||||||
|
direction[i] = random.choice((1, -1))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
print(msg.note)
|
||||||
|
time.sleep(t)
|
||||||
|
|
||||||
|
|
||||||
|
client.send_message("/tcp_coordinates", (coor[0], coor[1], 0, 0, 0, 0))
|
43
gelb.py
Normal file
43
gelb.py
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
import argparse
|
||||||
|
import math
|
||||||
|
import time
|
||||||
|
from mido import MidiFile
|
||||||
|
from pythonosc import udp_client
|
||||||
|
import mido
|
||||||
|
|
||||||
|
mid = MidiFile('2gelb.mid')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
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=5005,
|
||||||
|
help="The port the OSC server is listening on")
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
client = udp_client.SimpleUDPClient(args.ip, args.port)
|
||||||
|
angle = 0
|
||||||
|
magnitude = 0
|
||||||
|
mean = 74.1
|
||||||
|
client.send_message("/color", "yellow")
|
||||||
|
|
||||||
|
|
||||||
|
for msg in mid.tracks[1]:
|
||||||
|
t = mido.tick2second(msg.time, mid.ticks_per_beat, 1000000)
|
||||||
|
beats = msg.time / mid.ticks_per_beat
|
||||||
|
rotation = 2 * math.pi * beats / 16
|
||||||
|
|
||||||
|
angle += rotation
|
||||||
|
magnitude += beats * 3
|
||||||
|
if msg.type != "note_on" or msg.time == 0:
|
||||||
|
time.sleep(t)
|
||||||
|
continue
|
||||||
|
print(msg.note)
|
||||||
|
adj_angle = angle + (msg.note - mean) / 9
|
||||||
|
y = math.sin(adj_angle) * magnitude
|
||||||
|
x = math.cos(adj_angle) * magnitude
|
||||||
|
client.send_message("/tcp_coordinates", (x, y, 6, 0, 0, 0))
|
||||||
|
time.sleep(t)
|
||||||
|
|
||||||
|
client.send_message("/tcp_coordinates", (x, y, 0, 0, 0, 0))
|
4
main.py
4
main.py
@ -20,12 +20,14 @@ def color_handler(unused_addr, c):
|
|||||||
t.pencolor(c)
|
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):
|
||||||
|
prev_size = t.pensize
|
||||||
t.pen(pensize=z)
|
t.pen(pensize=z)
|
||||||
if z <= 0:
|
if z <= 0:
|
||||||
t.penup()
|
t.penup()
|
||||||
else:
|
else:
|
||||||
t.pendown()
|
t.pendown()
|
||||||
|
if prev_size == 0:
|
||||||
|
t.dot()
|
||||||
t.goto(x, y)
|
t.goto(x, y)
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
57
rot.py
Normal file
57
rot.py
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
import argparse
|
||||||
|
import math
|
||||||
|
import time
|
||||||
|
from mido import MidiFile
|
||||||
|
from pythonosc import udp_client
|
||||||
|
import mido
|
||||||
|
import random
|
||||||
|
|
||||||
|
mid = MidiFile('6rot.mid')
|
||||||
|
|
||||||
|
random.seed(10)
|
||||||
|
|
||||||
|
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=5005,
|
||||||
|
help="The port the OSC server is listening on")
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
client = udp_client.SimpleUDPClient(args.ip, args.port)
|
||||||
|
client.send_message("/color", "red")
|
||||||
|
|
||||||
|
|
||||||
|
accrued_time = 0
|
||||||
|
note_count = 0
|
||||||
|
center = (50, 50)
|
||||||
|
radius = 10
|
||||||
|
direction = [1, 0]
|
||||||
|
|
||||||
|
|
||||||
|
client.send_message("/tcp_coordinates", (50, 50, 0, 0, 0, 0))
|
||||||
|
for msg in mid.tracks[1]:
|
||||||
|
t = mido.tick2second(msg.time, mid.ticks_per_beat, 1000000)
|
||||||
|
beats = msg.time / mid.ticks_per_beat
|
||||||
|
accrued_time += t
|
||||||
|
if msg.type != "note_on" or msg.time == 0 or msg.velocity == 0:
|
||||||
|
time.sleep(t)
|
||||||
|
continue
|
||||||
|
print(msg.note)
|
||||||
|
|
||||||
|
note_count += 1
|
||||||
|
client.send_message("/tcp_coordinates", (center[0], center[1], 6, 0, 0, 0))
|
||||||
|
|
||||||
|
client.send_message("/tcp_coordinates", (center[0], center[1], 0, 0, 0, 0))
|
||||||
|
if note_count > 4:
|
||||||
|
client.send_message("/tcp_coordinates", (center[0], center[1], 0, 0, 0, 0))
|
||||||
|
center = (random.randint(0, 300), random.randint(0, 300))
|
||||||
|
client.send_message("/tcp_coordinates", (center[0], center[1], 0, 0, 0, 0))
|
||||||
|
|
||||||
|
note_count = 0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
time.sleep(t)
|
||||||
|
|
||||||
|
|
||||||
|
client.send_message("/tcp_coordinates", (coor[0], coor[1], 0, 0, 0, 0))
|
Loading…
Reference in New Issue
Block a user