Inconsistent signedness of 8-bit samples
When playing 8-bit audio live, signed 8-bit samples work correctly.
When writing to a file with the "au" driver, signed samples also work correctly.
However, when writing to a "wav" file, signed samples yield incorrect output. The samples must be converted to unsigned (by XOR'ing with 0x80) in order to produce a recognizable WAV file.
WAV files have the peculiarity of encoding 8-bit samples in unsigned form. I believe signed samples make more sense for API purposes, and Libao should handle the conversion itself when writing a WAV file.
(Currently, it is necessary to add special-casing to the application to perform this conversion when writing out an 8-bit WAV file.)