Good Apollo I Want to Make Custom Effects Volume 2: I can Only Find One Half-Answer Online #1019
-
The long title is definitely going to diminish how many people actually read this, but I thought the Coheed & Cambria reference was funny 🥲 Anyhow, I switched to HyperHDR a few months ago after several years of using HyperionNG. Love it, but from the beginning, I have loathed the inability to create custom effects in the GUI like I could in HyperionNG. I've looked up the possibility of creating custom effects a million times over the past few months, but the only information I can find is this single post (HERE) mentioning that it can be done by modifying the source code via C++. The thing is, that post doesn't really provide much information on how to actually do it; it doesn't say which files need to be modified, how the effect code is structured, etc. And to top it all off, the link showing an example of a custom effect currently returns a 404 error. I'm not a total stranger to C-based languages, so I'm fairly confident I could figure it out with enough context — I've dealt with C# a decent amount in game development, and I've built custom QMK keyboard firmware in straight C — but I'm not going to pretend for a single second that I properly understand C without the proper guidance (we all start somewhere, right?) That all being said, I'm hoping somebody can give me some insight on how to actually create custom effects. I really want to keep using HyperHDR for its expanded features and enhanced microcontroller support, but — as trivial as I'm sure it seems to a lot of people — the lack of support for custom effects is actually super disenchanting. Respectfully, before anyone even says it, yes I have already considered WLED, but I'm using an Adafruit Feather Scorpio, which WLED doesn't support (plus, obviously, that would require a separate firmware on the Scorpio which of course I can't do cause I'm already using the hyperserial firmware). TL;DR: am want create custom effect. Plz help 🙏❤️ |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 4 replies
-
Hi 😃 I can prepare a template for such an effect and indicate the places that must contain the implementation. The effect model has changed in HyperHDR v21 anyway, where I moved to a typical object-effect factory model, which makes adding them easier than in previous versions. Maybe in the future we will move to user effects in dynamic libraries and then we would not have to recompile the entire application. However, there will definitely be no return to Python in HyperHDR for many practical reasons. In general, effects can be divided into those that operate on LEDs (e.g. worms) without knowledge of LEDs geometry and those that create an image (e.g. Rainbow Swirl). I don't know which model you need, for the second there are some methods that allow you to draw a pixel or a rectangle. Let me know and I'll try to prepare something. Either way, it will involve compiling the code: will it be ok for you? You can compile HyperHDR on your computer (the manual in the wiki) or let Github do it after you fork HyperHDR and activate Github Action. After that every regular commit will build the installers in your fork. |
Beta Was this translation helpful? Give feedback.
Well, slightly modifying an existing effect should be even easier than writing a new one from scratch using template. You need to change the blobs variable to 2:
HyperHDR/sources/effects/Animation_WarmMoodBlobs.cpp
Line 36 in f1e847f
Please check if this is what you meant.