Rockbox mail archive
Subject: FS#11232: Software mixer
I haven't been able to work on this for several months. I did
considerable work since uploading the first patch, but it's still very
much a work in progress. I've synced the patch with r28762, but it
probably won't compile cleanly. It's been so long I don't remember.
I'm uploading this patch in the hope that someone will find it useful as
a starting point for further development. Maybe I'll be able to develop
it further but I don't know when that will be.
The purpose of this patch was to intercept the normal DMA playback and
redirect it to a very small mixing buffer that would mix playback and
voice in real time with very low latency. It would get away from mixing
voice into the playback buffer as that would prevent resuming playback
after a pause cleanly. Instead, it meant to establish two very small
mixing buffers, one active and the other standby. The DMA would point
to the active one and the other would be mixing in the background. When
the DMA was starved for data, the roles would automatically switch.
This causes a lot of DMA interrupts but it would only occur if data and
voice were playing at the same time. If no voice was playing, then
playback operates normally.
I also renamed voice playback to aux playback, in the hopes that it
would open up audio insertion to other types of audio than merely voice
assistance, such as custom sound files or game sounds.
Received on 2010-12-10
Page was last modified "Jan 10 2012" The Rockbox Crew