aboutsummaryrefslogtreecommitdiffstats
path: root/solo-tool-project/src/solo_tool/midi_wrapper_mido.py
blob: bf3aa851567619a015671f4d049264f3e8cd5c9d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import mido

class MidiWrapper:
    def __init__(self):
        self._inPort = None
        self._outPort = None
        self._callback = None

    def setCallback(self, callback):
        self._callback = callback

    def connect(self, deviceName):
        self._inPort = mido.open_input(deviceName)
        self._inPort.callback = self._callback
        self._outPort = mido.open_output(deviceName)

    def sendMessage(self, note, velocity, channel):
        if self._outPort is not None:
            msg = mido.Message('note_on', channel=channel, velocity=velocity, note=note)
            self._outPort.send(msg)