[openbeosmediakit] format conversion

  • From: Jérôme Duval <korli@xxxxxxxx>
  • To: openbeosmediakit@xxxxxxxxxxxxx
  • Date: Thu, 26 Feb 2004 15:38:40 +0100


i was wondering about format conversions for supporting more output formats. I 
just fell on this. I don't know if float to other formats conversions should be 
inspired by this or not.
BTW should the OBOS mixer support int32 output ?

"If you want to convert from 16 to 8 bit without dither, there are two 

The first method is to simply chop off the least significant byte of the 16bit 
word, leaving you with only the most significant byte (8bits). The wavestrip 
application, a.o. Sounddesigner (with use dither set to of) S/Link and 
do this. In this way everything between the (vertical) 16-bitsample-values 0 to 
128 will result in 8 bit zeros, but everything between 16-bit sample-values 
to 0 will go to an 8 bit -1.Even the slightest studio background noise (at say, 
-90dB) during a 16 bit voice recording will result, when converting to 8 bits 
with the chop method, in what seems like a random square wave below the 0 axis 
with an amplitude of 1 (8bit) Qunit. The noise thus produced is very audible.

The second method is to round the least significant byte to the nearest most 
significant byte value. This is what Soundhack, WaveConvert, Deck (optional) 
BarbaBatch do. The most important difference is that everything between the 16 
bit values -128 to +128 will round to an 8-bit zero, thus eliminating every 
signal present in that area. (the area below-48dB or -99.6%). This way you will 
loose the hiss described in the chop case. Hope this helps..."

Other related posts:

  • » [openbeosmediakit] format conversion