Beispiel #1
0
 def on_midi(self, msg):
     if is_note_on(msg):
         self.keys[msg.note % 12].pressed = True
         note = Note().from_int(msg.note)
         note.channel, note.velocity = PLAYER_CHANNEL, msg.velocity
         noteThread = KeyboardThread(note)
         self.events[msg.note] = noteThread.event
         noteThread.start()
     elif is_note_off(msg):
         self.keys[msg.note % 12].pressed = False
         self.events[msg.note].set()
     for watcher in self.watchers:
         watcher.dispatch('on_midi', msg)
Beispiel #2
0
 def hear(self, msg):
     if is_note_on(msg):
         self.pending_notes[msg.note] = Note().from_int(msg.note)
     elif is_note_off(msg) and msg.note in self.pending_notes:
         self.received_notes.add_notes(self.pending_notes.pop(msg.note))