Whilst waiting for some parts to arrive for GorF-XL and Zira, I decided to pick up an old project, JuJu.
JuJu was to be a drum brain, but playing back samples from things like the Linn drum and Oberheim DMX. The problem I had with JuJu was that I wasn’t able to get the samples out of the serial EEPROM, decode them (they’re 8bit uLaw encoded) and play them back through the serial DAC quickly enough.
SPI, even with a 10MHz clock is quite slow.
I added some RAM and a second CPU to off load the sample playback circuitry;
I used C, figuring that with the newer 20MHz CPU rate I could sus it, I managed to get 4 voices but not the 8 that I wanted.
So now, I’m switching to assembly for the voice playback CPU and I’ve got a couple of cunning tricks to try which will not only speed things up, but should save on parts count too!
That said, these tricks do add a lot of complexity to the assembler code, so it may take a while longer to get working.