update update
I got a PoC working where channel 4 on the Arc controls the envelope named pulse4 on voice 1. Passing values to the set_env() function you wrote for every encoder delta works fine. I also answered my own question about the difference between an envelope and an LFO. One has a frequency in cycles per second and the other has a frequency in seconds per cycle. So now when I make the envelope longer the LED ring spins faster because Iām increasing itās frequency value but passing that same value to the decay time of the envelope. Iāll figure it out later. A good stopping point for new years eve.
Update! I got a spinny ring animation to work on my fork mostly through copy + paste from the Cccccccc library. In that lib there is no engine and the LFOs are interpolated to MIDI 7bit, which we donāt have to do. I donāt yet have code for and hardware connection to the SC engine so there will be no changes in sound. Iām working on that part now.
Regarding ideas of how to interact with the engine, itās been over a year since I worked on a Norns project so Iām getting back up to speed.
There is the question of whatās the difference between an envelope and an LFO? Iām not sure I know the answer to this but there are distinct UGens in Supercollider for doing āenvelope stuffā and āLFO stuffā. My first try is going to stick with EnvGen in the engine. My second idea is to use LFSaw and friends by changing the engine. Iām not sure if thatās more trouble than itās worth. Thirdly, thereās the polls feature to get information from the engine. This might also be the wrong path, since I think the only control we need is to get the answer to the question āhow fast is each LFO cycleā for the ring animation and āset the LFO cycle to this speedā for the knob control. It seems like just passing params through to the engine is The Right Way.