Przymierzam się do napisania edytora brzmień do mojego syntezatora Korg Triton Le, na początek zrobiłem kilka eksperymentów w pythonie, żeby zobaczyć jak sprawnie będzie szła komunikacja z interfejsem MIDI. Do komunikacji z syntezatorem używam interfejsu USB-MIDI Roland UM-ONE.

Na początek zainstalowałem bibliotekę rtmidi (https://github.com/patrickkidd/pyrtmidi) i sprawdziłem czy wykrywa ona prawidłowo porty MIDI.

import rtmidi
import random
import time

midiout = rtmidi.RtMidiOut()
ports = range(midiout.getPortCount())

if ports:
print("Available MIDI output ports:")

for i in ports:
print(str(i) + ': ' + midiout.getPortName(i))

else:
print('No MIDI output ports available')
exit()

Po wykonaniu powyższego kodu otrzymałem:

Available MIDI output ports:
0: Midi Through 14:0
1: UM-ONE 28:0

Jest dobrze, python widzi mój interfejs.

Poeksperymentowałem trochę z wysyłaniem komunikatów MIDI do urządzenia i w rezultacie napisałem poniższy kod: (więcej…)