Dev Log #40
Added 2021-03-26 16:11:22 +0000 UTC
I have been working on hooking up the modulation editor UIs to the new system, in particular the modulation selector in the header and the footer controls. Some of these controls have been re-used but a lot of it has had to be rebuilt. The way these controls would populate themselves previously was really hacky. Now everything is much cleaner but also much more complex internally due to parameters all being dynamically generated.
This video mainly just shows off some small visual improvements I made since the majority of the work has been internal things. One thing I have tried to do is have the block's color carry through to all its controls which includes the new parameter buttons in the header.
There's a few issues with the way modulation works in v0.12.1 which I am aiming to resolve:
- There's no way to disable a modulator without clearing all the points
You can right click on its button and select "Disable" but this only hides it from view without actually disabling it, so this is mis-labled. In the next build a modulator is considered "Active" if the button is visible in the header. Then there is an additional "Enabled" checkbox in the footer. The modulator will only take effect if it is both active and enabled.
- The envelope editor cannot display non-linear units properly
The current editor has the ability to display evenly spaced gridlines based on the min/max range and step size, but in some cases evenly spaced lines aren't particularly useful.
For example in the case of the Fudge "Speed" parameter, it would be better to generate snapping points at intervals such as 1/2 speed, 1/4 speed etc:

There is also the issue that the vertical pixel positions of envelope points sometimes need to be interpreted as a position on a curve rather than a linear interpolation from "min" to "max".
For example if you add an envelope for filter frequency you'll notice that a point halfway up the editor has a value of around 1000Hz whereas a point one quarter of the way up the editor has a value of about 60Hz. Amplitude will also now be expressed in dB so envelope points can no longer be interpreted linearly.
The solutions in place for dealing with this in v0.12.1 were very hacky. It should now be much easier to deal with all this stuff in a clean way because I kept it in mind when refactoring everything. These problems are already partly solved by the internal changes I've made and I'm about to start working on redoing the envelope editor UI next.
- It's sometimes too hard to set a specific value for an envelope point
I'll probably add some kind of control to allow the user to type in a value for the most recently-edited point.
- The snapping system doesn't make sense for some parameters
In the case of the "Pan" parameter the only snapping you really want to do is to snap to the center point. In v0.12.1 to achieve this you need to set the snap amount to 100% and set the point, but then you need to turn the snap amount back down to do anything else so it's pretty dumb. This requires me to implement an alternative snapping mode for these cases.