it's you manfred trenz !! ;-)
Manfred Trenz!?!? But.. I don't have a beard ;>_>
So now I just need to deliver on the goods. I've written it all the routines, I just need make a split table and a volume table.
8 PCM channels? That fast? ... Cool!
I didn't think it was a big deal, because they aren't frequency scaled like fancy mod/xm channels. I always though it was apparent that the PCE could soft mix channels pretty fast, so I never really bothered with showing it off. But the other day, I was reading over the comments of single channel ADPCM demo I posted (I didn't write that demo, I just optimized/modified it to play faster; mednafen author wrote it).. and people seem to think they're impressive. The main point of those demos wasn't high frequency, high resolution PCM playback - but to demonstrate realtime decompression capabilities of the PCE (4bit storage for 10bit output is pretty decent savings). Then it dawned on me a couple of days ago.. I guess people really aren't aware of capabilities of the PCE to do soft mixed streaming samples. It's as if the 65x core were design to do this - lol. Super fast indexing, direct memory access, and look-up tables are the ingredients in the magic elixir for the 65x. Sprinkle a little self-modifying code and voila - power.
Off topic of this, I was messing with frequency ranges from 7khz to 15.3 khz (256 samples per frame). And right about 9.5khz there is a sharp increase in clarity. The difference from 7khz to 9.5khz is bigger than any difference above it. Well, in response to this one clip. The Gameboy Advance "Sappy" driver, the driver Nintendo provided in the devkits, had 8 frequency scaled PCM channels feeding an 8bit DAC. There's two 8bit DACs, but if you're doing stereo it's still 8bit. The playback rate of that player is ~13khz. Advance Guardian Heroes on the GBA uses ~7.88hz playback. It kind of puts a perspective on things.
All this assumes the direct write to DDA port method. I haven't explored abusing the waveform buffer.
I'm also toying with the idea of maybe abusing some sort of bias into the analog signal, to create a lower frequency tone. Something bass-ish. An example would be if you ran a timer interrupt that always feed a DDA channel (even line zero data), but assuming the DDA channel really does respond to a ceiling of 3.58mhz, you could write two "pulse" values 40 cycles before the actual DDA sample. That pulse would exist at 178.9khz, changing at a rate of 7khz. Not really sure how it would sound, or how much of an impact it would have in terms of amplitude. Might not be worth the overhead, even if it is small. It needs testing. If it does work, it'll be one of those things that only works on the real system (unless an emulator can respond to DDA writes that fast).
There are just so many different ways to create audio stuffs on the PCE. It's kinda like being a kid in a candy store. Which one to choose?