From 9bdead0aed698aea001a9d5ace63e96e904d6fa3 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Mon, 24 Mar 2008 09:34:34 +0000 Subject: [PATCH] #1700821: add a note to audioop docs about signedness of sample formats. --- Doc/library/audioop.rst | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Doc/library/audioop.rst b/Doc/library/audioop.rst index f6d762f63bd..02bd75597f9 100644 --- a/Doc/library/audioop.rst +++ b/Doc/library/audioop.rst @@ -141,6 +141,18 @@ The module defines the following variables and functions: Convert samples between 1-, 2- and 4-byte formats. + .. note:: + + In some audio formats, such as .WAV files, 16 and 32 bit samples are + signed, but 8 bit samples are unsigned. So when converting to 8 bit wide + samples for these formats, you need to also add 128 to the result:: + + new_frames = audioop.lin2lin(frames, old_width, 1) + new_frames = audioop.bias(new_frames, 1, 128) + + The same, in reverse, has to be applied when converting from 8 to 16 or 32 + bit width samples. + .. function:: lin2ulaw(fragment, width)