So I’ve been braining and going over datasheets, service manuals and schematics in most of my free time recently. The E-Mu Emulator service manuals are a great, read, BTW.
I’ve come up with an architecture that’s quite close to the S900, only a lot less chips are needed since we now have faster microcontrollers, DACs with built-in buffers, etc.
In fact, I think most of the digital parts could be done with just three chips.
The first is the microcontroller. The STM32F4 has enough on-board timers that you could run one per voice in an 8 voice system and still have enough left over for house keeping, but you might be able to get by with one for all the voices. At any rate, the idea is that the timer generates an interrupt in a way that divides down a high frequency clock to the desired (variable) sample rate, per voice.
This interrupt moves a sample from memory to the DAC. Since I find the volatility of memory on old samplers one of their most frustrating aspects, non-volatile memory is a primary requirement for me. You can use Flash or battery-backed SRAM, but I’m very attract to MRAM for its space age characteristics. You basically use it like you would SRAM, no need for erasing before writing and such, but it doesn’t require power to keep it’s data. Meaning, no internal batteries are needed. At 30 euro for a 16 megabit chip, though, it’s twice as expensive as regular SRAM. At 50 KHz sample rates, 16 Mbit is 20 seconds of sample time, minus some overhead. 20s is OK for this project, 40s more than enough.
The above chip is paralel, which means it’s extremely easy to use: just connect the address pins to GPIO pins on the µc, and the output pins to the input pins of DAC. I could use one single channel DAC and some sample and hold trickery, or a DAC per voice. I’m going for the latter. Just a few pins for the selecting which DAC to write to, loading the outputs, etc.
The missing bits, of course, is a paralel ADC and some more DAC channels to generate CV for the analogue filters, but this is the jist of it.