import mido import time import sys def test_midi(): print("=== MIDI Connection Test ===") # Check available ports try: ins = mido.get_input_names() print("\nAvailable MIDI input ports:") for i, port in enumerate(ins): print(f"{i + 1}. {port}") if not ins: print("No MIDI input ports found!") return False # Look for LPD8 lpd8_ports = [port for port in ins if 'LPD8' in port] if lpd8_ports: print("\nFound LPD8 device:", lpd8_ports[0]) port_name = lpd8_ports[0] else: print("\nLPD8 not found. Please select a port number:") choice = input("> ") try: port_name = ins[int(choice) - 1] except (ValueError, IndexError): print("Invalid selection!") return False # Try to open the port print(f"\nAttempting to connect to: {port_name}") with mido.open_input(port_name) as inport: print("āœ“ Successfully opened MIDI port") print("\nNow listening for MIDI messages...") print("Press pads/knobs on your controller (Ctrl+C to exit)") try: while True: msg = inport.poll() if msg: print(f"Received: {msg}") time.sleep(0.1) # Small delay to prevent CPU hogging except KeyboardInterrupt: print("\nTest completed!") return True except Exception as e: print(f"\nError: {e}") print("\nTroubleshooting tips:") print("1. Make sure your MIDI device is properly connected") print("2. Try unplugging and reconnecting the USB cable") print("3. Check if device shows up in your system's MIDI devices") print("4. Ensure no other applications are using the MIDI port") return False if __name__ == "__main__": success = test_midi() if success: print("\nāœ“ MIDI system is working correctly!") else: print("\nāœ— MIDI test failed. Please check your MIDI configuration.") print("\nPress Enter to exit...") input()