Merge pull request #1575 from kattni/midi-slider-trinkey
Add Slider Trinkey MIDI example.
This commit is contained in:
commit
a66a382bbd
1 changed files with 81 additions and 0 deletions
81
Slider_Trinkey/MIDI_CC_Cross_Fader/code.py
Normal file
81
Slider_Trinkey/MIDI_CC_Cross_Fader/code.py
Normal file
|
|
@ -0,0 +1,81 @@
|
||||||
|
import time
|
||||||
|
import board
|
||||||
|
import analogio
|
||||||
|
import usb_midi
|
||||||
|
import adafruit_midi
|
||||||
|
import neopixel
|
||||||
|
from adafruit_midi.control_change import ControlChange
|
||||||
|
|
||||||
|
pixels = neopixel.NeoPixel(board.NEOPIXEL, 2, brightness=1)
|
||||||
|
|
||||||
|
slider = analogio.AnalogIn(board.POTENTIOMETER)
|
||||||
|
position = slider.value # ranges from 0-65535
|
||||||
|
|
||||||
|
|
||||||
|
midi = adafruit_midi.MIDI(
|
||||||
|
midi_in=usb_midi.ports[0], in_channel=0, midi_out=usb_midi.ports[1], out_channel=0
|
||||||
|
)
|
||||||
|
|
||||||
|
last_cc_val = 0
|
||||||
|
|
||||||
|
|
||||||
|
# ------- Hue/Sat/Val function to convert to RGB ------ #
|
||||||
|
def hsv2rgb(h, s, v):
|
||||||
|
"""
|
||||||
|
Convert H,S,V in 0-255,0-255,0-255 format
|
||||||
|
to R,G,B in 0-255,0-255,0-255 format
|
||||||
|
Converts an integer HSV (value range from 0 to 255) to an RGB tuple
|
||||||
|
"""
|
||||||
|
if s == 0:
|
||||||
|
return v, v, v
|
||||||
|
h = h/255
|
||||||
|
s = s/255
|
||||||
|
v = v/255
|
||||||
|
i = int(h * 6.0)
|
||||||
|
f = (h * 6.0) - i
|
||||||
|
p = v * (1.0 - s)
|
||||||
|
q = v * (1.0 - s * f)
|
||||||
|
t = v * (1.0 - s * (1.0 - f))
|
||||||
|
i = i % 6
|
||||||
|
if i == 0:
|
||||||
|
r, g, b = v, t, p
|
||||||
|
if i == 1:
|
||||||
|
r, g, b = q, v, p
|
||||||
|
if i == 2:
|
||||||
|
r, g, b = p, v, t
|
||||||
|
if i == 3:
|
||||||
|
r, g, b = p, q, v
|
||||||
|
if i == 4:
|
||||||
|
r, g, b = t, p, v
|
||||||
|
if i == 5:
|
||||||
|
r, g, b = v, p, q
|
||||||
|
return int(r * 255), int(g * 255), int(b * 255)
|
||||||
|
|
||||||
|
|
||||||
|
hue_a = 0
|
||||||
|
sat_a = 255
|
||||||
|
val_a = 255
|
||||||
|
color_a = hsv2rgb(hue_a, sat_a, val_a)
|
||||||
|
|
||||||
|
hue_b = 127
|
||||||
|
sat_b = 255
|
||||||
|
val_b = 255
|
||||||
|
color_b = hsv2rgb(hue_a, sat_a, val_a)
|
||||||
|
|
||||||
|
pixels[0] = color_a
|
||||||
|
pixels[1] = color_b
|
||||||
|
pixels.show()
|
||||||
|
|
||||||
|
while True:
|
||||||
|
cc_val = slider.value // 512 # make 0-127 range for MIDI CC
|
||||||
|
|
||||||
|
if abs(cc_val - last_cc_val) > 2:
|
||||||
|
print(cc_val)
|
||||||
|
last_cc_val = cc_val
|
||||||
|
mod_wheel = ControlChange(1, cc_val)
|
||||||
|
midi.send(mod_wheel)
|
||||||
|
color_a = hsv2rgb(cc_val, sat_a, val_a)
|
||||||
|
pixels[0] = color_a
|
||||||
|
color_b = hsv2rgb(cc_val, sat_b, val_b)
|
||||||
|
pixels[1] = color_b
|
||||||
|
time.sleep(0.001)
|
||||||
Loading…
Reference in a new issue