ahodges9 / LedFx

LedFx is a network based LED effect controller with support for advanced real-time audio effects! LedFx can control multiple devices and works great with cheap ESP8266 nodes allowing for cost effectvice syncronized effects across your entire house!
MIT License
385 stars 91 forks source link

Other than multiple-of-3-channel (RGB) devices possible/planned? #8

Open Moonbase59 opened 5 years ago

Moonbase59 commented 5 years ago

I have some H801 (RGB2W) controllers lying around and plan to use them with penfold42’s ESPixelBoard.

I’d use these to control:

So I’m thinking it’d be nice to use audio control for other-than-RGB DMX devices, like

I do assume it should be possible to consolidate any number of mel bands into any number of channels, right? Could the live visualizer handle arbitrary channel configurations?

ahodges9 commented 5 years ago

I want to support this eventually, but this is going to be a ways off. Once things like frequency range are exposed for the audio effects this will be mostly there. Need to determine how single channel effects are going to work without each effect having special handling.

There are other complexities like most people want RGBW support such that your W channel gives you richer colors. That conflicts with wanting to fake the W channel of a device to be some completely different source. Likely for your scenarios we will require 3 separate devices with non-conflicting channel/universes.

Tagging this as a feature request

Moonbase59 commented 5 years ago

No problem, of course the basics first ;-) Just wanted this to be known early in the development cycle so everything would be as flexible as possible from day one.

I also played around with RGBW and agree this should probably be supported, maybe even given the Kelvin/Mired color the "W" light uses. It requires some calculation, though, because the White has to be dimmed almost to zero in order not to make the color LEDs vanish, and even then you only get kinda pastel-ish colors. The white LEDs are usually brutally bright …

Anyway, internally having kinda array that specifies how many colors (channels) and what their colors and brightnesses are (maybe in nm wavelength and mcd luminous intensity) could actually make internal gamma and color curve calculations easier (and help adapt for extra channels or devices that use a "fixed" color like a PAR stage light).

For instance, a typical WS2812B light strip is also quite "uneven" regarding luminosity. It typically has (per pixel):

In theory, this should then be weighted against a typical human eye color reception curve … :-)

Thus, a "pixel" could be defined with almost any characteristics (and # channels), and simply repeated if we’re talking about a LED strip or a LED matrix. The simplest form of a "pixel" being a 1-channel device with a defined color, of course,

I believe this kind of pixel definition could actually make calculations later on much easier, for instance in calculating what (mixed) color to display, the visualization curves, etc. The only question would be to find kind of "general" units that work for every light, using nanometers might not be the best.

In a real big show, this would also "automagically" help making the colors more even between different light objects, because the device characteristics are "built-in" and always a "correct" color shown. It could probably be stored in the device configuration (together with a channel offset), to have it user-configurable.

Oh well … maybe I just think much too complicated … :-) Nevertheless, I’ll be watching this with interest!