freebsd-dev/sys/dev/sound
Ariff Abdullah 96831ae59b - Increase dynamic range of filter coefficients from 28bit to 30bit.
This cause dramatic effect in overall precision and conversion quality
  by pushing down most aliasing artifacts around -180 dB.

  Spectrogram analysis/comparison:

  	http://people.freebsd.org/~ariff/z_comparison/z_28vs30/

- Guard against possible 64bit overflow during accumulation process by
  slightly normalize and saturate sample and coefficient multiplication,
  possible during extreme 32bit downsampling (eg. 380KHz -> 8KHz) with
  custom preset that require more than ~7000 taps filter (which is
  overkill).

- Add knobs through FEEDER_RATE_PRESETS to set dynamic range of filter
  coefficients/accumulator and prefered polynomial interpolator:

  	COEFFICIENT_BIT:X
	(where 1 <= X <= 30, default: 30)

	ACCUMULATOR_BIT:X
	(where 32 <= X <=64, default: 58)

	INTERPOLATOR:I
	(where I = ZOH, LINEAR, QUADRATIC, HERMITE, BSPLINE,
 	           OPT32X, OPT16X, OPT8X, OPT4X, OPT2X)

Approved by:	re (kib)
2009-07-05 18:15:06 +00:00
..
isa Sound Mega-commit. Expect further cleanup until code freeze. 2009-06-07 19:12:08 +00:00
macio Fix powerpc build failure due to strict kobj signatures checking. 2009-06-08 08:10:52 +00:00
midi Change the type of uio_resid member of struct uio from int to ssize_t. 2009-06-25 18:46:30 +00:00
pci Some DMA related changes: 2009-06-24 17:03:06 +00:00
pcm - Increase dynamic range of filter coefficients from 28bit to 30bit. 2009-07-05 18:15:06 +00:00
sbus Fix compile time warning on sparc64, thanks to strict kobj signatures checking. 2009-06-08 23:24:01 +00:00
usb Use the correct mutex in umidi_open() 2009-06-27 21:21:11 +00:00
chip.h
clone.c Sound Mega-commit. Expect further cleanup until code freeze. 2009-06-07 19:12:08 +00:00
clone.h - Add option to allow sleeping malloc(9). 2007-06-14 11:10:21 +00:00
driver.c Sound Mega-commit. Expect further cleanup until code freeze. 2009-06-07 19:12:08 +00:00
unit.c Sound Mega-commit. Expect further cleanup until code freeze. 2009-06-07 19:12:08 +00:00
unit.h Last major commit and updates for RELENG_7: 2007-05-31 18:35:24 +00:00
version.h - Add a way to change filter oversampling factor through 2009-06-15 04:31:34 +00:00