Advertisement
Guest User

Modified pygame midi input test

a guest
Apr 3rd, 2010
368
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.41 KB | None | 0 0
  1. import pygame, sys
  2.  
  3. import pygame.locals as pgl
  4.  
  5. import pygame.midi
  6.  
  7.  
  8.  
  9. casio_i = 3 ; casio_o = 2
  10.  
  11.  
  12.  
  13. pygame.init()
  14.  
  15. #pygame.fastevent.init()
  16.  
  17. #event_get = pygame.fastevent.get
  18.  
  19. #event_post = pygame.fastevent.post
  20.  
  21. event_get = pygame.event.get
  22.  
  23. event_post = pygame.event.post
  24.  
  25. pygame.midi.init()
  26.  
  27. i = pygame.midi.Input(casio_i)
  28.  
  29. window = pygame.display.set_mode((468, 60))
  30.  
  31. keys = {}
  32.  
  33. mt = None
  34.  
  35. going = True
  36.  
  37. while going:
  38.  
  39.     events = event_get()
  40.  
  41.     for e in events:
  42.  
  43.         if e.type in [pgl.QUIT, pgl.KEYDOWN]:
  44.  
  45.             going = False
  46.  
  47.             continue
  48.  
  49.         if e.type == pygame.midi.MIDIIN:
  50.  
  51.             if e.status == 144: #keydown
  52.  
  53.                 keys[e.data1] = e.timestamp
  54.  
  55.                 print "Key %s was pressed." % e.data1
  56.  
  57.                 sys.stdout.flush()
  58.  
  59.             elif e.status == 128: #keyup
  60.  
  61.                 print "Key %s was held down for %s." % (e.data1, e.timestamp - keys[e.data1])
  62.  
  63.                 sys.stdout.flush()
  64.  
  65.              
  66.  
  67.             #print (e), ', miditime: ', mt
  68.  
  69.    
  70.  
  71.    
  72.  
  73.     if i.poll():
  74.  
  75.         midi_events = i.read(10)
  76.  
  77.         # convert them into pygame events.
  78.  
  79.         midi_evs = pygame.midi.midis2events(midi_events, i.device_id)
  80.  
  81.  
  82.  
  83.         for m_e in midi_evs:
  84.  
  85.             print m_e
  86.  
  87.             sys.stdout.flush()
  88.  
  89.             event_post( m_e )
  90.  
  91.    
  92.  
  93. del i
  94.  
  95. pygame.midi.quit()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement