Just my two cents as someone who has spent too many hours over the past two months working on the Ambika codebase: it is very difficult to maintain. I mean this with no disrespect to Emilie, who has done incredible things with such constrained hardware architecture, and without her work none of us would be here.
I have been working on getting the firmware to compile with recent versions of G++, to refactor and fix up parts of the code to remove many compiler warnings and even just to make the code more readable to those who aren’t intimately familiar with the whole structure of the firmware. Even though I was trying to be very careful, I introduced several bugs which took literal days of full on debugging to pinpoint, given that there is no effective way to debug this system in a debugger.
As I have posted in another thread, I think I have reached o a point of having no obvious bugs or glitches in the patches, and I know the codebase quite well now. But there is still quite a bit of work to be done before I would say the code would be easy to maintain and extend.
If you are still interested in working on the code after hearing this, then I’m of course happy to talk more if you have any questions. It would actually be nice if we could unify some of the more popular forks of Ambika and also make it easier to make future customisations. I have also been considering whether it would be viable to port the Ambika synth code to an STMF4 chip / discovery board, and reimplementing the filters digitally, just for fun… but that might be later in the year.
Just a side note, I was actually able to reduce the size of the controller firmware by a reasonable amount, just by my refactoring, possibly in combination with adding some extra compile options.