journal:201312
This is an old revision of the document!
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.1388306584.txt.gz · Last modified: 2018/07/18 14:09 (external edit)