journal:201312
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
journal/201312.txt · Last modified: 2018/07/18 14:10 by 127.0.0.1