Skip to content

Instantly share code, notes, and snippets.

@matiaspl
Created August 28, 2024 22:46
Show Gist options
  • Save matiaspl/34be88a4abfcffcfe22944a520efca88 to your computer and use it in GitHub Desktop.
Save matiaspl/34be88a4abfcffcfe22944a520efca88 to your computer and use it in GitHub Desktop.
Simple MIDI button for the WaveShare RP2040-Zero done using CircuitPython
import board
import digitalio
import busio
import usb_midi
import adafruit_midi
import neopixel
from adafruit_debouncer import Debouncer
from adafruit_midi.note_off import NoteOff
from adafruit_midi.note_on import NoteOn
usb_midi = adafruit_midi.MIDI(midi_out=usb_midi.ports[1], out_channel=0, debug=True)
pin = digitalio.DigitalInOut(board.GP2)
pin.direction = digitalio.Direction.INPUT
pin.pull = digitalio.Pull.UP
switch = Debouncer(pin, interval=0.05)
pixel = neopixel.NeoPixel(board.GP16, 1)
pixel.brightness = 0.3
while True:
switch.update()
if switch.rose:
usb_midi.send(NoteOff(50, 0))
pixel.fill((0, 0, 0))
print('released')
if switch.fell:
usb_midi.send(NoteOn(50, 127))
pixel.fill((255, 0, 0))
print('pressed')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment