#!/usr/bin/env python import sys, pygame, pygame.midi import os #for calling xte to 'sendkeys' My not be the best way, but works...on Linux...if you have xautomation installed # set up pygame pygame.init() pygame.midi.init() # list all midi devices for x in range( 0, pygame.midi.get_count() ): print pygame.midi.get_device_info(x) # open a specific midi device i = pygame.midi.Input(3) #change this to your device # run the event loop while True: if i.poll(): midi_events = i.read(10) if (midi_events[0][0][2] != 0): key = str(midi_events[0][0][1]) print "Key is " + key if (key == "43"): os.system("xte 'str test this out'") elif (key == "44"): os.system("xte 'str Hello World'") elif (key == "45"): os.system("xte 'str Hello Bob'") elif (key == "46"): os.system("xte 'str Good-bye bob'") elif (key == "47"): os.system("xte 'str World part 2'") elif (key == "48"): os.system("xte 'str Last one'") # wait 10ms - this is arbitrary, but wait(0) still resulted # in 100% cpu utilization pygame.time.wait(10)