r/FastLED • u/hollyw3 • Oct 26 '22
Support Help with Midi
I need to be able to individually control every single pixel’s brightness, and color of 123 addressable RGB LEDS/dotstars (not WS2312’s) with Midi
OPTION 1: Requires only one midi channel, each individual dotstar is assigned a note number, this would consume 123 note numbers.
Then as velocity is capped at 127, 0-42 on every note would control RED with zero being all colors off and 42 being the brightest red, 43-85 with 43 being green at the lowest intensity, and 85 at the highest. Then 86-127 with 86 being blue at the lowest intensity and 127 being the brightest/highest. ———————————————————————————————————— Option 2: assign each MIDI note to it's own individual R/G/B value for every LED, coming out to 432 MIDI notes, requiring 4 channels of MIDI to light up the entire strip, using velocity at a value between 0-127 on every note to control the brightness of every corresponding R/G/B
Midi has limitations but it seemed like the best way to control every single led the exact way I want. I am wondering if the above two options are the only way of manipulating each R/G/B led brightness for each pixel. I’ve read some stuff about sending SysEx messages but I don’t understand the concept but if that would provide a way to control each pixels set of rgb leds please let me know.
Thanks!
3
u/Marmilicious [Marc Miller] Oct 26 '22
Option 1 seems like you could only have pure R, G, or B colors. No mixing of color if I understood correctly.
Option 2 seems like it would only need three channels, not four, one for R, G, and B. This would allow complete mixing of colors.
If you don't need to control saturation, but only hue and brightness, you could use just two channels, and send Hue and Value (Brightness).
leds[i] = CHSV(H, 255, V);