Quote:
Originally Posted by
Klonfocius
β‘οΈ
Perhaps the master MCU holds all 16 slots and at voice card requests sends over code and then run from voice MCU sram, that would tell why only 32k?
I think this is the case, since the 32K limit is for combined code and variables. Variables would not reside in Flash, obviously, since they can't vary too well there. One reason they may run all user oscillators out of SRAM is so they don't need to do any address relocation or memory mapping based on which slot the oscillator (or effect) is loaded into. In the case of oscillators, it might also mean they can store the code once centrally rather than having 512K of extra Flash on each voice MPU to store the oscillators.
While I would guess the 32K limit mostly stems from the RAM size of the voice MCUs, there may also be some consideration of the time it would take to transfer a larger chunk of data out to the voices when a patch is changed (assuming the user oscillator code is not stored redundantly for each voice card). A few megabytes of sample data might cause an unacceptably long delay.