Rabbit holes with GUI animations
Captain's Log: Stardate 78011.8
Rabbit holes, rabbit holes everywhere. Today I started with an easy task: make the built-in simple velocity modulation amount for Exciters adjustable, so that it can be disabled when it is not wanted (for example when relying entirely on MPE channel pressure for loudness control).
The basic task actually was super simple and I was done in an hour. But then I realized that the GUI animations weren't taking into account the velocity sensitivity, so things looked wrong when you had it disabled. I went to fix that, and... then I realized that really the 3D display needed to animate things based on the fully-modulated Exciter loudness, so that if you had the loudness mapped to channel pressure, you'd see e.g. an oscillator speed up and slow down as you pushed harder/softer.
This was a somewhat more complex problem, but fortunately I had already built tooling for collecting modulation state so that it could be displayed elsewhere (for example, the modulated Y rotation of a microphone is displayed in 3D). I got a pretty decent version of this working, but it took longer than I had originally planned for the "simple" task of making velocity sensitivity adjustable.
The only issue now is that while velocity is in the range [0, 1], the modulation amount is unbounded and not normalized, so depending on how you modulate e.g. the gain on an oscillator, you can make it spin REALLY fast. But for now this seems pretty acceptable.