Re: [AD] new resampling

[ Thread Index | Date Index | More lists.liballeg.org/allegro-developers Archives ]


On Sat, 21 Apr 2012 14:17:23 -0400
SiegeLord <slabode@xxxxxxxxxx> wrote:

> On 04/21/2012 06:08 AM, Elias Pschernig wrote:
>  > Oh, good catch, didn't think of that. But then it should only have
>  > happened with linear resampling. I also don't understand why it's
>  > not reproducible here. Oh well, if this really fixes it I'll just
>  > conclude that my ears or headphones are rather bad. Or that
>  > pulseaudio does some unasked for post-processing, wouldn't
>  > surprise me the least.
> 
> Yes, with point resampling the metallic noise is still there. It was 
> there even before these patches, however, so it's just an
> illustration of how bad point resampling is.
> 
> As for why you couldn't hear it... here's two spectra of the ex_synth 
> output (peak on the left is the frequency of the sine wave - 660 Hz,
> and all other peaks are junk introduced by resampling).
> 
> http://img403.imageshack.us/img403/1895/resamplingspectra.png
> 
> I suppose there are quite a few peaks in the very high frequency
> ranges, so they can easily start approaching hardware limitations.
> 
>

Interesting. So yeah, I suppose if you'd give me a recording of both
I'd still hear no difference.

Something else I saw is with alsa I get very small buffers, alternating
between 32 and 12 samples. However the linear interpolation right now
will not go over a buffer boundary. So there's a step every 32/12
samples. I obvously won't hear a difference - but might be worth fixing
(although it doesn't look easy to fix, probably would need to delay all
audio by one sample and then somehow keep the very last sample of each
buffer around for the next buffer to interpolate the first sample
against).

The real question also is why our alsa driver behaves in this way,
tiny fragments likely will have all other kinds of troubles
(maybe also explains the crackling Peter mentioned?)




Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/