My initial instinct after some of the hoops I had to go through to make my scenario work was “There must be a better way…”
On the other hand, I’ve done some coding myself and I definitely appreciate the mass of code the current WLED incarnation represents. My feel is there’s a level of code built into the GUI to “protect the user” from themselves and I’m stepping on and through that in unexpected ways sometimes. Very probably I’ve created some multiple segment scenarios that are non-typical.
The error checking to make sure segment lengths and start/end points are sensible is non trivial once you get up beyond 3 segments. Add in the ability to add effects and palettes and the whole thing becomes potentially overwhelming. At this stage I’m happy enough that I’ve found a solution.
But if you’re thinking in terms of enhancment - what about preset patterns of colours?
One thing I found very effective in coding up little arduino controllers for static Xmas displays was to load my strings based on a fixed pattern that gets repeated till the string is full.
Say a GGWWRR “Peppermint” pattern or a RBYOWGV multi colour pattern.
The effect can be very pleasing for long static strings and coding can be very efficient if you save the preset patterns in codespace flash. I found I could come up with 20 common patterns that would cover 90% of my use cases.
Right now, the only way I’ve found to get these patterns is to build them using multiple segment definitions. That works, but could be fairly memory intensive in some cases.
For example I have a building perimiter string (300+ LED’s) that looks great with a BWWWBWBWBWWWB pattern. Currently I have to create 13 segments and assign colours at the proper spacing points. For my 20 patterns that means 20 presets with varying #'s of segments depending on the pattern length.
To make my pattern Paradigm work in WLED, you would need something like a “Pattern-Preset” or perhaps the ability to use a predefined pallette for loading a static string. Perhaps there’s a reasonable way to extend the use of Pallets to load static strings? How about a (paradoxical) Static Load Effect?
Just some Blue-Sky thoughts for now…