Max Kellermann wrote: > My guess is that you're using software volume. mixer_type was commented out in my mpdconf, but I tried explicitly setting it to alsa, and that does seem to help. Load average while playing mp3s goes down to as low as 11%.
Internet radio, though, shoots the load up to 90%, and it plays in 1 second burts. Something is still not quite right. I tried Fastest Sinc Interpolator, which didn't help, and Linear Interpolator, which keeps the load around 40% for mp3s but does manage to play streams without gaps. When I combined mixer_type = alsa with a hand-built mpd w/o libsamplerate, it got a lot better. Load is 11% for internet radio and about the same for mp3s, and everything plays w/o problems. That's comprable to the old version of mpd when used with my current confguration. (mpdconf attached) BTW, on this hardware, if I don't uncomment the alsa audio_output section, sound quality is horrible, full of pops and crackles. The old version of mpd did not have that problem (much), and uncommenting it also seems to increase load. I don't know what to make of that, since I seem to be telling it the same things it would autoprobe (ie, use alsa, use hw:0,0, the only available device). > Is there any chance you can get me an oprofile report? I'd have to mess with kernel modules. Do you still need one? -- see shy jo
# An example configuration file for MPD # See the mpd.conf man page for a more detailed description of each parameter. ######################## REQUIRED PATHS ######################## # You can put symlinks in here, if you like. Make sure that # the user that mpd runs as (see the 'user' config parameter) # can read the files in this directory. music_directory "~/lib/sound" playlist_directory "~/.mpd/playlists" db_file "~/.mpd/tag_cache" log_file "~/.mpd/mpd.log" error_file "~/.mpd/errors.log" pid_file "~/.mpd/pid" ################################################################ ######################## OPTIONAL PATHS ######################## # # If specified, MPD will save its current state (playlist, # current song, playing/paused, etc.) at exit. This will be # used to restore the session the next time it is run. # #state_file "/home/joey/.mpd/state" # ################################################################ ######################## DAEMON OPTIONS ######################## # # If started as root, MPD will drop root privileges and run as # this user instead. Otherwise, MPD will run as the user it was # started by. If left unspecified, MPD will not drop root # privileges at all (not recommended). # #user "joey" # # The address and port to listen on. # bind_to_address "any" #port "6600" # # Controls the amount of information that is logged. Can be # "default", "secure", or "verbose". # #log_level "default" # ################################################################ ########################## PERMISSIONS ######################### # # MPD can require that users specify a password before using it. # You may specify one ore more here, along with what users who # log in with that password are allowed to do. # #This is only intended to keep out people who don't know where to #find my dotfiles ;-) password "sou...@read,add,control,admin" # # Specifies what permissions a user who has not logged in with a # password has. By default, all users have full access to MPD # if no password is specified above, or no access if one or # more passwords are specified. # default_permissions "read,add,control" # ################################################################ ########################## AUDIO OUTPUT ######################## # # MPD supports many audio output types, as well as playing # through multiple audio outputs at the same time. You can # specify one or more here. If you don't specify any, MPD will # automatically scan for a usable audio output. # # See <http://mpd.wikia.com/wiki/Configuration#Audio_Outputs> # for examples of other audio outputs. # # An example of an ALSA output: # audio_output { type "alsa" name "My ALSA Device" device "hw:0,0" # optional # format "44100:16:2" # optional } # # An example of an OSS output: # #HACK! Testing to see if this avoids hang. #audio_output { # type "oss" # name "My OSS Device" # device "/dev/dsp" # optional # format "44100:16:2" # optional #} # # An example of a shout output (for streaming to Icecast): # #audio_output { # type "shout" # name "My Shout Stream" # host "localhost" # port "8000" # mount "/mpd.ogg" # password "hackme" # quality "5.0" # bitrate "128" # format "44100:16:1" # user "source" # optional # description "My Stream Description" # optional # genre "jazz" # optional # public "no" # optional #} # # Force all decoded audio to be converted to this format before # being passed to the audio outputs. # #audio_output_format "44100:16:2" # # If MPD has been compiled with libsamplerate support, this # specifies the sample rate converter to use. Possible # values can be found in the mpd.conf man page or the # libsamplerate documentation. # #samplerate_converter "Linear Interpolator" # ################################################################ ############################# MIXER ############################ # # MPD needs to know what mixer settings to change when you # adjust the volume. If you don't specify one here, MPD will # pick one based on which ones it was compiled with support for. # # An example for controlling an ALSA mixer: # mixer_type "alsa" #mixer_device "default" #mixer_control "PCM" # # An example for controlling an OSS mixer: # #mixer_type "oss" #mixer_device "/dev/mixer" #mixer_control "PCM" # # If you want MPD to adjust the volume of audio sent to the # audio outputs, you can tell it to use the software mixer: # #mixer_type "software" # ################################################################ ######################### NORMALIZATION ######################## # # Specifies the type of ReplayGain to use. Can be "album" or # "track". ReplayGain will not be used if not specified. See # <http://www.replaygain.org> for more details. # #replaygain "album" # # Sets the pre-amp used for files that have ReplayGain tags. # #replaygain_preamp "0" # # Enable on the fly volume normalization. This will cause the # volume of all songs played to be adjusted so that they sound # as though they are of equal loudness. # #volume_normalization "no" # ################################################################ ########################### BUFFERING ########################## # # The size of the buffer containing decoded audio. You probably # shouldn't change this. # #audio_buffer_size "2048" # # How much of the buffer to fill before beginning to play. # #buffer_before_play "0%" # # Similar options for the HTTP stream buffer. If you hear # skipping while playing HTTP streams, you may wish to increase # these. # #http_buffer_size "128" #http_prebuffer_size "25%" # ################################################################ ########################### HTTP PROXY ######################### # # Specifies the HTTP proxy to use for playing HTTP streams. # #http_proxy_host "proxy.isp.com" #http_proxy_port "8080" #http_proxy_user "user" #http_proxy_password "password" # ################################################################ ############################# LIMITS ########################### # # These are various limits to prevent MPD from using too many # resources. You should only change them if they start # restricting your usage of MPD. # #connection_timeout "60" #max_connections "5" #max_playlist_length "16384" #max_command_list_size "2048" #max_output_buffer_size "8192" # ################################################################ ###################### CHARACTER ENCODINGS ##################### # # If file or directory names do not display correctly, then you # may need to change this. In most cases it should be either # "ISO-8859-1" or "UTF-8". You must recreate your database # after changing this (use mpd --create-db). # filesystem_charset "UTF-8" # # The encoding that ID3v1 tags should be converted from. # id3v1_encoding "UTF-8" # ################################################################ ######################### OTHER OPTIONS ######################## # # The metadata types MPD will recognize. # #metadata_to_use "artist,album,title,track,name,genre,date,composer,performer,disc" # # Enable this if you wish to use your MPD created playlists in # other music players. # #save_absolute_paths_in_playlists "no" # ################################################################
signature.asc
Description: Digital signature

