My ADAU1701 SigmaDSP-based camping stereo card is coming along quite nicely.
The card is intended to be used with several possible speaker configurations, requiring different crossover frequencies, different equalization, etc. To handle this, I'm hoping to store one copy of the program code, but load in different parameter RAM depending on the speaker configuration. I haven't hit anything insurmountable yet, but have a couple of feature ideas which would make things a bit easier...
(1) The ability to "lock the program code", locking parameter addresses and allowing only parameter value edits.
I've noticed that when I change parameter values, link/compile/download and export new header files, parameter addresses can get moved around. To get around this, I'm planning to write a script that takes new parameter values from a new header file and rearranges them to suit the parameter addressing of the existing program code. But I think the ability to "lock" the program code, and only allow limited changes to be made (DC sources, filter coefficients, etc... only things that affect parameter RAM), would be a nice feature.
(2) In conjunction with the above, a filter block which uses the same # of parameters regardless of order.
The number of parameters that a filter takes up changes with the filter order, which is expected, however it eliminates the ability to change the order of a filter just by swapping parameter RAM. I'm planning to use the script method to get around this also, by filling unused biquads with "B0=1, rest 0" coefficients. But having this built into SigmaStudio would be great - have a maximum filter order setting which sets the number of parameters, and allow any filter up to and including that order to be selected/configured.