Source code for jdxi_editor.devel.mido_test_vmx8

import mido
import rtmidi

from picomidi.message.type import MidoMessageType

print("rtmidi:", rtmidi)
print("rtmidi type:", type(rtmidi))
print("rtmidi file:", getattr(rtmidi, "__file__", "NO __file__ ATTR"))
print("API_UNSPECIFIED:", getattr(rtmidi, "API_UNSPECIFIED", "NO API_UNSPECIFIED"))
print("dir(rtmidi):", dir(rtmidi))


[docs] def list_midi_ports(): print("Available MIDI input ports:") for name in mido.get_input_names(): print(f" {name}")
[docs] def listen_to_controller(port_name): print(f"Connecting to MIDI input: {port_name}") with mido.open_input(port_name) as inport: print( "Listening for incoming MIDI control change messages (press Ctrl+C to stop)..." ) try: for msg in inport: if msg.type == MidoMessageType.CONTROL_CHANGE.value: print( f"Time: {msg.time:.3f} | Channel: {msg.channel+1} | " f"Controller: {msg.control} | Value: {msg.STATUS}" ) except KeyboardInterrupt: print("\nStopped listening.")
if __name__ == "__main__": list_midi_ports() # Replace with your actual port name, e.g., 'SINCO VMX8-Private' or 'SINCO VMX8-Master'
[docs] port_name = input("Enter MIDI input port name to connect: ").strip()
listen_to_controller(port_name)