====== 12월 29일 ======
flock
from nodebox.graphics import *
from nodebox.graphics.physics import Flock
flock = Flock(20, 0, 0, 500, 500)
flock.sight = 500
def draw(canvas):
background(1)
fill(0, 0.75)
flock.update(cohesion=0.15)
for boid in flock:
push()
translate(boid.x, boid.y)
scale(0.5 + 1.5 * boid.depth)
rotate(boid.heading)
arrow(0, 0, 15)
star(0,0, 10,50,20)
pop()
canvas.fps=30
canvas.size = 600, 400
canvas.run(draw)
music21, rtmidi
import time
import rtmidi
import random
midiout = rtmidi.MidiOut()
available_ports = midiout.get_ports()
print available_ports
if available_ports:
midiout.open_port(2)
print midiout
from music21 import *
#url = 'http://static.musescore.com/151650/85600d58ae/score.mxl'
#b = converter.parse(url)
b = corpus.parse('mozart/k155')
for x in midi.translate.streamHierarchyToMidiTracks(b.flat):
for m in x.events:
if m.isNoteOn():
#print m
midiout.send_message([0x90, int(m.pitch), int(m.velocity)])
if m.isNoteOff():
#print m
midiout.send_message([0x80, int(m.pitch) , int(m.velocity)])
if m.isDeltaTime():
#print m
midiout.send_message([0x80, 0 , 0])
if m.time:
time.sleep(m.time/1000.0)
try:
b.show('musicxml',app='C:\\Program Files (x86)\\MuseScore\\bin\\mscore.exe')
except RuntimeError:
print "Yuk!"
del midiout