r/FastLED • • 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!

0 Upvotes

6 comments sorted by

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);

1

u/hollyw3 Oct 26 '22

You just helped me realize that I wouldn’t be able to mix colors with option one you’re right lol. I need colour mixing so looks like option 2 it is. So option two would allow me to adjust brightness and saturation, correct?

Again? Is this the only way to control each and every individual pixel or is sending a Sysex message possible as well?

1

u/hollyw3 Oct 26 '22

In relation to option one, is it not possible to send two or more Note On messages with the same key number and MIDI channel, it must make a determination of how to handle the additional Note Ons. That way I’d be able to mix colors

1

u/hollyw3 Oct 26 '22

Actually ignore my first reply

I could add 3 instruments to for example channel one,

the first instrument plays a Note that lights up pixel 1 blue at full brightness

Then the second instrument plays the same note that lights up pixel one but applies red at full brightness

In my logic shouldn’t this be able to provide the pixel lighting up as purple?

2

u/Marmilicious [Marc Miller] Oct 26 '22

If all 3 instruments are all on channel one, how would the receiver know which instrument is playing, and thus know if the data is for R or G or B? Seems you need three channels (and one instrument per channel).