Add Circuit python code

This commit is contained in:
Chris Cowley 2025-07-09 16:37:18 +02:00
parent 6391b023f6
commit 394911df7b
2 changed files with 58 additions and 0 deletions

2
CIRCUITPYTHON/Makefile Normal file
View file

@ -0,0 +1,2 @@
install:
cp code.py /run/media/ccowley/CIRCUITPY/code.py

56
CIRCUITPYTHON/code.py Normal file
View file

@ -0,0 +1,56 @@
import time
import board
from digitalio import DigitalInOut, Direction, Pull
import usb_midi
import adafruit_midi
from adafruit_midi.control_change import ControlChange
# MIDI setup as MIDI out device
midi = adafruit_midi.MIDI(midi_out=usb_midi.ports[1], out_channel=0)
# button pins, all pins in order skipping GP15
button_pins = [
board.GP18,
board.GP19,
board.GP20,
board.GP21,
board.GP22,
]
buttons = []
for pin in button_pins:
button = DigitalInOut(pin)
button.direction = Direction.INPUT
button.pull = Pull.UP
buttons.append(button)
cc_numbers = [
20,
21,
22,
23,
24,
]
# button states
button_states = [True] * len(buttons)
while True:
for i, button in enumerate(buttons):
current_state = button.value
if current_state != button_states[i]:
if not current_state:
# Button pressed
midi.send(ControlChange(cc_numbers[i], 127))
print(f"Button {i+1} pressed -> CC{cc_numbers[i]}:127")
else:
# Button released
midi.send(ControlChange(cc_numbers[i], 0))
print(f"Button {i+1} released -> CC{cc_numbers[i]}:0")
button_states[i] = current_state
time.sleep(0.01)