I am a long time teensy and LED enthusiast, interested in diving into the pixelblaze world, but I see a few striking issues that I could use some guidance on. Looked for answers but there seems to be nothing definitive and simple.
First off, is libraries and sharing of functions. it seems to me (from a few YouTube videos) that each pixel blaze animation is essentially given its own partition, and you cannot use common functionality without copy pasting it into the new animation code. If I want all my animations to be able to perform the same function, converting between HSV and RGB for example( I know that may exist in the pixel blaze already, its just an example), it seems I need a copy of that function in all my animations. This means if I ever want to change that function I need to change it 20+ times, which makes it difficult to do a good job of code maintenance. There has to be a way to share common functions between animations right?
Second is the ability to use GIT for source control. It seems heinous to need to download your code from the device to back it up. The real time compiler is a big reason why I want to try the pixel blaze, but it means nothing if you forget to backup your code and it disappears. Plus for probably 75% of writing I don’t need or want real time updates. There must be a way to keep the main copy safely within your PC’s git repo and regularly upload to the pixel blaze via a script when ready to debug. Yes, I saw the python client for pixel blaze, but what if I also want the simulator or syntax functionality of the browser?
Finally what if I want to use another text editor other than the browser? As good as the webpage may be, using a code completing text editor, re-using functions, and regularly backing up in GIT is simply the right way to write large amounts of code.
I would love to hear of any solutions for these apparent issues. From where I sit, the pixel blaze seems really well suited for medium to small animations, but larger code bases with tons of interactivity seem to be completely overlooked. Please prove me wrong.
You’re right, at the moment there is no sharing of functions or even global variables between patterns. I think it’s on the roadmap but I let the Electromage team confirm this. It would be a very welcome improvement.
For the rest, i’m afraid you’re asking for functionnalities that are not (yet) available as far as I know.
Be sure to check the whole thread, there are updates later on. This could help with a git version control workflow.
Pixelblaze’s language and animation API is well suited to creating patterns with a lot less code than other frameworks. For example the Bronco’s halftime show included dozens of patterns, a timeline engine, embedded formation maps, and the entire scripted choreography for 28 people, and that was under 1200 lines of code. That’s including comments and whitespace.
That’s not to say a shared code system wouldn’t be incredibly useful.
I’m also new here and moving over from Teensy driven WS2812’s.
Still figuring out pixel blaze, but it seems very well suited to tinkering, but for very large complex display’s Teensy is better IMHO. The barrier of course is the need to be good at C… something else I’m learning.
Two very complimentary LED ecosystems I think. With pixelblaze as the “gateway drug”.
Not answered any of your Q’s at all, but wanted to say Hi and give my two pence worth.