[openbeos] Re: Resampling algorithms for audio mixer

> The approach you're using sounds like a good method to resample,
> for instance, an audio file. With a self-contained piece of audio, the
> start and end are very well-defined, so it's safe to predict what the
> samples before and after the file are.
>
> My concern is when we're resampling buffers on-the-fly -- any
> assumptions which are made about what lies before and after
> the current buffer will impact the resampling accuracy at the
> very start and end.
> A good test for this would be to write two programs, one which
> resamples an entire audio file (10 megs or so) using a buffer size
> of, say, 32 samples, and another program that resamples the
> audio using a buffer size of 300, both using the same resampling
> function.

Here are some results with 3e+6 samples, 8x upsampling, sinus signal
with 8 samples long period (very odd values for resampling).

32 samples long buffer:

Linear interpolation:
  Time: 1.230000
  Signal power average: 0.500000
  Noise power average: 0.002362
  SNR = 211.658356 (23.256354 dB)
Cubic spline:
  Time: 2.980000
  Signal power average: 0.500000
  Noise power average: 0.000549
  SNR = 910.145447 (29.591108 dB)

300 samples long buffer:

Linear interpolation:
  Time: 1.140000
  Signal power average: 0.500000
  Noise power average: 0.001538
  SNR = 325.007568 (25.118935 dB)
Cubic spline:
  Time: 3.020000
  Signal power average: 0.500000
  Noise power average: 0.000070
  SNR = 7132.529297 (38.532436 dB)

If you want I can send the program I wrote to check those values.

> For best results, the two files produced by these two programs
> need to be bit-for-bit matches.

They obviously wouldn't perfectly match, however calculating the
resulting difference can be interesting.

> I'll let you know when I've done some listening tests; there should
> be some time soon.

Ok.

Stefano

Other related posts: