GUI done for modulators-to-springs
Captain's Log: Stardate 77382.4
The GUI changes to allow Modulators to be linked to Springs, and also to allow a single level of Modulators to modulate Modulators, are all done, with fuzz testing, etc. This all seems to work great, and all the tricky invariants that are required to make the whole thing actually simulatable are enforced properly. This is really fun, because it means that I get to work on the actual simulation code now.
(There is technically one thing missing in the GUI, which is that the 3D display needs to show directionality for the Modulator to Modulator links. Other things like Springs don't have a direction, but for these new links, there has to be a direction because if two Modulators are linked, you have to know which one is the boss. This is selected in the GUI by the direction you drag the link; whichever one the link is started from is the boss. But after you create it you currently can't see which one is the boss.)
Today I got the basic simulation for Modulators modulating Modulators working. Since the only Modulator sub-type that is implemented at the moment is the MIDI CC knob, I tested this by modulating one MIDI CC knob's depth with another MID CC knob. This worked perfectly. The framework to do this was the hard part -- implementing the other Modulator sub-types like LFOs should be much easier, and they'll just plug into this framework and should work with all the different kinds of linkages.
I made some progress on the simulation for Modulators modulating Springs, but there's more to do here before we can see it working. There is some complexity here w.r.t. the way I'm planning to do the memory layout to get the most coalesced memory accesses possible, and my brain at this point today is too wiped to figure out the tricky bits there. But I suspect that it's just one day of fresh brainpower to get this working. I already have the diagrams I need drawn on the blackboard, I think...