On Fri, 12 Jun 2009 21:45:02 -0700
Grant <emailgr...@gmail.com> wrote:

> renice -20 -p `pgrep mpd`
> 
> but my Athlon 2.2Ghz still can't handle it for more than a few
> seconds.  I don't have SMP enabled because of a bug in madwifi, and
> I'm hoping when I get that fixed I'll be able to run the best
> libsamplerate resampler.  Any other ideas for making this work?

AFAIK resampling is expensive operation that's only necessary when your
sound card can't handle native stream sample rate, furthermore, it's a
lossy operation (degrading quality).

So, I'd look for the answer to the question "why mpd is doing it and
why I allow it to do that?".
For example, you might have enabled it to resample stream to 32 bits
depth, while your built-in card can only handle 16 and the stream has
also 16, so what happens is userspace-level conversion (with some loss
of quality) to 32, loading your CPU, then this stream goes to alsa,
and, provided that your card can't play this, driver or the card itself
converts it back to 16.
Note that the latter case would probably mean "card offloads conversion
to your CPU as well", so you'll get CPU load for both ways' conversion
anyway, only reducing sound quality, no matter how good converters are.

To avoid any processing, try disabling resampling in mpd, since it'll
probably be done for you anyway, if necessary (you'll hear "white
noise" otherwise).

And you can pre-convert all the streams to any given samplerate, but
note that you'll probably get far worse results if the target format
isn't lossless (flac, ape), even if the source one is lossy, than with
worst resampling.
And you can get worse CPU/IO load with lossless format in the end,
since it's harder to decode and the input data stream is much heavier
than with lossy mp3s or oggs.

-- 
Mike Kazantsev // fraggod.net

Attachment: signature.asc
Description: PGP signature

Reply via email to