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)