For those that are interested I got one of these cheap USB audio adapters to work on my Dockstar running Arch Linux ARM.
http://www.geeks.com/details.asp?invtid=CL-USCM2&cat=SNDIt took a bit of tweaking to get rid of the pops and skips with mpd, than a bit more to get the processor usage down. After a few attempts to get mpd going I tried mpg123 and it was fine so I knew it was only a matter of time, I think it might have worked out of the box but I can not be sure.
- mpg123 utilization is fairly steady at 1-2%
- playing locally mpd runs in the 12-16% range
- streaming mpd using the native httpd sits right around 95%, but is clean, no buffering problems.
I doubt I will stream much I just wanted to get it working, I played with the quality setting, 1.0 still sounds good and brought the cpu usage down from around 99%. I messed with the format settings for the outputs, in verbose mode the log did not show what I expected and impacted the cpu too much to make me give up any extensive testing once I found settings that worked.
I only attached a set of laptop speakers to the Dockstar not my stereo but I have no complaints about the sound quality.
asound.conf
$this->bbcode_second_pass_code('', 'defaults.pcm.dmix.rate 44100 # Force 44.1 KHz
defaults.pcm.dmix.format S16_LE # Force 16 bits
pcm.!default {
type hw
card 0
}
ctl.!default {
type hw
card 0
}
')
mpd.conf
$this->bbcode_second_pass_code('', '
input {
plugin "curl"
}
audio_output {
type "alsa"
name "My ALSA Device"
device "hw:0,0" # optional
format "44100:24:2" # optional
mixer_type "hardware" # optional
mixer_device "default" # optional
mixer_control "PCM" # optional
mixer_index "0" # optional
enabled "yes"
}
audio_output {
type "httpd"
name "My HTTP Stream"
encoder "vorbis" # optional, vorbis or lame
port "8000"
# bind_to_address "0.0.0.0" # optional, IPv4 or IPv6
quality "1.0" # do not define if bitrate is defined
# bitrate "128" # do not define if quality is defined
format "44100:24:1"
max_clients "2" # optional 0=no limit
enabled "no"
}
samplerate_converter "3"
')