Control surface display update frequency: default 15 Hz.
FYI super boffin (I love that word
) project update:
The architecture is sufficiently flexible for this iteration.
Now to devote some time to performance/reliability.
You may recall some problems with stale track pointers a while back.
That's because the easy/low resource way to do things is to only rebuild the CSI track cache when things change.
That's been fine up to now, but now we need to take it up a notch.
Using my late 2012 mac mini (2.3GHz quad i7) as a test machine and the 1420 track stress test project it was determined that it took about a millisecond to rebuild the whole track list.
That means we can take a brute force/very robust approach.
Remember that number from the beginning of the post -- 15 Hz ?
That's how often CSI gets called to update its world -- that means we can rebuild the entire track list 15 times a second and use only 15 msec total on a 1420 track project !
This means inserting/deleting/moving tracks, etc., is as quick as Reaper, and no more stale track pointers, because we are constantly dynamically updating.
One of those rare times when you get speed AND robustness together
This is working here currently.
The next step is to do the same thing to FX and Sends -- make them entirely dynamic, like tracks are now.
That means an opportunity to improve things.
MapSelectedTrackFXToWidgets and MapFocusedTrackFXToWidgets will now be on a surface by surface basis, so you can mix and match a lot more easily.
Sends will then follow in the dynamic footsteps.
I like the current way we can dedicate a block 1-4, 1-8, etc., but will probably add banking within that block if there are more Sends than can fit...
You can still spill mappings outside of one surface using ZoneLink.
Just a bit of a progress report, any thoughts/suggestions, etc., always more than welcomed