[gccsdk] Left-right interleave in /dev/dsp versus DigitalRenderer

Christopher Martin belles at internode.on.net
Fri Apr 20 09:24:23 PDT 2012


There has been a mismatch between DigitalRenderer's default setting of
right-left stereo in accordance with Acorn 16-bit audio format, versus
left-right stereo used by applications built on libraries such as SDL
and </dev/dsp>. It means that by default, ported applications play
left and right channels swapped on RISC OS.

Rather than applications having to deal with this on an individual
basis, I'd like to propose that there are two places where a change
could resolve the mismatch once and for all.

(1) DigitalRenderer could default to LR order when SWI
DigitalRenderer_Activate16 is called, instead of assuming that samples
will be in Acorn-friendly RL order.

(2) The static function set_defaults in UnixLib's
<libunixlib/sound/dsp.c> could call SWI DigitalRenderer_SampleFormat
with R0=3 after calling SWI DigitalRenderer_Activate16.

I think (2) would be the better solution, but what do others think?
Regards, Chris.

More information about the gcc mailing list