Posted in

KFC to MFC

Remember the extreme cyber keypad KFC? I did some experimentation with USB MIDI in Raspberry Pi Pico and programmed Midi for Comrade!

Same hardware, little code and it sends midi notes!

import board, digitalio, time, os
from kfc.disp1 import OledInfoTexts
import usb_midi
import adafruit_midi
from adafruit_midi.note_on  import NoteOn
from adafruit_midi.note_off import NoteOff

def mfc_main():
    board_type = os.uname().machine
    print(f"Board: {board_type}")


    dsp = OledInfoTexts()
    dsp.setup(5)
    dsp.setLineText(0, "Status")

    midi = adafruit_midi.MIDI(midi_out=usb_midi.ports[1], out_channel=0)
    
    #board.GP11, board.GP12, board.GP13, board.GP14, board.GP15
    button = digitalio.DigitalInOut(board.GP11)
    button.direction = digitalio.Direction.INPUT
    button.pull = digitalio.Pull.UP
    key_state = 0;
    
    dsp.flashStatusLed(3)
    print("Waiting for user action...")

    while True:
        if key_state == 0:
            if not button.value:
                key_state = 1
                midi.send(NoteOn("C2", 60))
                dsp.statusLedLight(True)
        if key_state == 1:
            if button.value:
                # print("key released")
                key_state = 0
                midi.send(NoteOff("C2", 60))
                dsp.statusLedLight(False)
        
        time.sleep(0.01)  # debounce