SEARCH

Enter your search query in the box above ^, or use the forum search tool.

You are not logged in.

#126 2012-07-30 08:11:58

el_koraco
#!/loony/bun
From: inside Ed
Registered: 2011-07-25
Posts: 4,747

Re: The ultimate MPD guide

fabietto0102 wrote:

How can I ensure the MPD server gets assigned the same IP address all the time? Please note the connection to the router is wifi. Is it possible to use an alias as well on top of the standard IP address, something like 192.168.1.6600?

Thanks, any help is greatly appreciated!

You need to set up a manual DHCP adress. Right click on the network icon, Edit, select your connection, and enter the details (desired adress, gateway and stuff).

Offline

Help fund CrunchBang, donate to the project!

#127 2012-07-31 01:51:09

fabietto0102
Member
Registered: 2012-04-04
Posts: 26

Re: The ultimate MPD guide

Resolved, maybe you might want to update your initial post or the wiki.

The solution is to add a virtual IP address.

sudo vi /etc/network/interfaces

Add the IP address using below example:

# The loopback network interface

auto lo
iface lo inet loopback

# virtual IP address for MPD
auto wlan0:1
       iface wlan0:1 inet static
       address 192.168.1.66
       netmask 255.255.255.0
       network 192.168.1.0
       broadcast 192.168.1.255
       gateway 192.168.1.1

To get the right parameters for network, broadcast and gateway do

netstat -nr

Then, restart the networking service

sudo /etc/init.d/networking restart

and check it out.

ifconfig

Now you can edit mpd.conf and the settings of your mpd clients to point to the virtual IP address.

Offline

#128 2012-07-31 02:07:26

ivanovnegro
Ivan #000000
From: unstable madness
Registered: 2011-06-02
Posts: 5,419

Re: The ultimate MPD guide

fabietto0102 wrote:

Resolved, maybe you might want to update your initial post or the wiki.

Maybe I will do this in the future when I also personally try and play with the streaming capabilities. At the moment the how-to is more to just setting it up to play your local music.
But thanks for the infos, it will be useful.

You can do even more stuff with MPD; Icecast, built-in HTTP streaming etc. I did not mention anything of it yet.

Offline

#129 2012-07-31 08:52:27

dk75
#! CrunchBanger
Registered: 2012-06-14
Posts: 244

Re: The ultimate MPD guide

IceCast is more CPU intense than build-in HTTPD service (rumors say), and "lame encoding" is more compatible with various streaming clients (especially mobile one).

Also it is good practice to leave Virtual Interface ID 1 for probable system/administrator use (so, no "wlan0:1" but better "wlan0:5" or even "wlan0:100" for example).

But that's just small details.


Debian Sid (Minted) x86_64/3.12-10, Conky 2.0_pre, Xorg 7.7/1.15.0, KDE 4.11.5, Intel X3100
Lenovo T61, HITACHI HTS722010K9SA00 100GB, WDC_WD5000BEVT 500GB
Linux user No.: 483055 | Conky Pitstop

Offline

#130 2012-08-15 12:02:15

iAmAhab
New Member
Registered: 2012-08-15
Posts: 5

Re: The ultimate MPD guide

Slight problem, when running

sudo update-rc.d mpd disable

i get this

update-rc.d: error: no runlevel symlinks to modify, aborting!

Tried to google it, but it yielded nothing.

Last edited by iAmAhab (2012-08-15 12:02:35)

Offline

#131 2012-08-15 13:41:06

ivanovnegro
Ivan #000000
From: unstable madness
Registered: 2011-06-02
Posts: 5,419

Re: The ultimate MPD guide

Is MPD running as root at all in your case? Not sure what is happening. Are you using #! or a Debian based distro? Because the command you were typing is specific to Debian.

Offline

#132 2012-08-15 14:01:58

iAmAhab
New Member
Registered: 2012-08-15
Posts: 5

Re: The ultimate MPD guide

I'm running a fresh #! statler install. How can I check if it is running as root?
Currently things seem to be almost working. The only problem is that after a while I can't play music anymore, when i start a track it is just paused. I'm using ncmpcpp and I'm not shure if its there this fault lays, or if it's a problem with mpd.

Another problem is that if i stop the mpd service I can't get it running again without logging out and then in again.

listen: Failed to listen on localhost (line 69): Address already in use

I'm guessing mpd might run as root as I have not made any own autostart for it, and it starts when i log in?

Offline

#133 2012-08-15 14:23:20

ivanovnegro
Ivan #000000
From: unstable madness
Registered: 2011-06-02
Posts: 5,419

Re: The ultimate MPD guide

You can open

top

and see if MPD is running as your user or as root.
Ncmpcpp won't be the problem, it's MPD. Can you post your mpd.conf.

Offline

#134 2012-08-15 14:29:00

iAmAhab
New Member
Registered: 2012-08-15
Posts: 5

Re: The ultimate MPD guide

It runned as user, but only appears after starting ncmpcpp.

# An example configuration file for MPD
# See the mpd.conf man page for a more detailed description of each parameter.


# Files and directories #######################################################
#
# This setting controls the top directory which MPD will search to discover the
# available audio files and add them to the daemon's online database. This 
# setting defaults to the XDG directory, otherwise the music directory will be
# be disabled and audio files will only be accepted over ipc socket (using
# file:// protocol) or streaming files over an accepted protocol.
#
music_directory        "/home/svein/music"
#
# This setting sets the MPD internal playlist directory. The purpose of this
# directory is storage for playlists created by MPD. The server will use 
# playlist files not created by the server but only if they are in the MPD
# format. This setting defaults to playlist saving being disabled.
#
playlist_directory        "/home/svein/.mpd/playlists"
#
# This setting sets the location of the MPD database. This file is used to
# load the database at server start up and store the database while the 
# server is not up. This setting defaults to disabled which will allow
# MPD to accept files over ipc socket (using file:// protocol) or streaming
# files over an accepted protocol.
#
db_file            "/home/svein/.mpd/tag_cache"
# 
# These settings are the locations for the daemon log files for the daemon.
# These logs are great for troubleshooting, depending on your log_level
# settings.
#
# The special value "syslog" makes MPD use the local syslog daemon. This
# setting defaults to logging to syslog, otherwise logging is disabled.
#
log_file            "/home/svein/.mpd/mpd.log"
#
# This setting sets the location of the file which stores the process ID
# for use of mpd --kill and some init scripts. This setting is disabled by
# default and the pid file will not be stored.
#
pid_file            "/home/svein/.mpd/mpd.pid"
#
# This setting sets the location of the file which contains information about
# most variables to get MPD back into the same general shape it was in before
# it was brought down. This setting is disabled by default and the server 
# state will be reset on server start up.
#
state_file            "/home/svein/.mpd/mpdstate"
#
###############################################################################


# General music daemon options ################################################
#
# This setting specifies the user that MPD will run as. MPD should never run as
# root and you may use this setting to make MPD change its user ID after
# initialization. This setting is disabled by default and MPD is run as the
# current user.
#
#user                "mpd"
#
# This setting sets the address for the daemon to listen on. Careful attention
# should be paid if this is assigned to anything other then the default, any.
# This setting can deny access to control of the daemon.
#
# For network
bind_to_address        "localhost"
#
# And for Unix Socket
#bind_to_address        "/var/run/mpd/socket"
#
# This setting is the TCP port that is desired for the daemon to get assigned
# to.
#
#port                "6600"
#
# This setting controls the type of information which is logged. Available 
# setting arguments are "default", "secure" or "verbose". The "verbose" setting
# argument is recommended for troubleshooting, though can quickly stretch
# available resources on limited hardware storage.
#
#log_level            "default"
#
# If you have a problem with your MP3s ending abruptly it is recommended that 
# you set this argument to "no" to attempt to fix the problem. If this solves
# the problem, it is highly recommended to fix the MP3 files with vbrfix
# (available from <http://www.willwap.co.uk/Programs/vbrfix.php>), at which
# point gapless MP3 playback can be enabled.
#
#gapless_mp3_playback            "yes"
#
# This setting enables MPD to create playlists in a format usable by other
# music players.
#
#save_absolute_paths_in_playlists    "no"
#
# This setting defines a list of tag types that will be extracted during the 
# audio file discovery process. Optionally, 'comment' can be added to this
# list.
#
#metadata_to_use    "artist,album,title,track,name,genre,date,composer,performer,disc"
#
###############################################################################


# Symbolic link behavior ######################################################
#
# If this setting is set to "yes", MPD will discover audio files by following 
# symbolic links outside of the configured music_directory.
#
#follow_outside_symlinks    "yes"
#
# If this setting is set to "yes", MPD will discover audio files by following
# symbolic links inside of the configured music_directory.
#
#follow_inside_symlinks        "yes"
#
###############################################################################


# Zeroconf / Avahi Service Discovery ##########################################
#
# If this setting is set to "yes", service information will be published with
# Zeroconf / Avahi.
#
#zeroconf_enabled        "yes"
#
# The argument to this setting will be the Zeroconf / Avahi unique name for
# this MPD server on the network.
#
#zeroconf_name            "Music Player"
#
###############################################################################


# Permissions #################################################################
#
# If this setting is set, MPD will require password authorization. The password
# can setting can be specified multiple times for different password profiles.
#
#password                        "password@read,add,control,admin"
#
# This setting specifies the permissions a user has who has not yet logged in. 
#
#default_permissions             "read,add,control,admin"
#
###############################################################################


# Input #######################################################################
#

input {
        plugin "curl"
#       proxy "proxy.isp.com:8080"
#       proxy_user "user"
#       proxy_password "password"
}

#
###############################################################################

# Audio Output ################################################################
#
# MPD supports various audio output types, as well as playing through multiple 
# audio outputs at the same time, through multiple audio_output settings 
# blocks. Setting this block is optional, though the server will only attempt
# autodetection for one sound card.
#
# 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
    mixer_device    "default"    # optional
    mixer_control    "PCM"        # optional
    mixer_index    "0"        # optional
}
#
# An example of an OSS output:
#
#audio_output {
#    type        "oss"
#    name        "My OSS Device"
#    device        "/dev/dsp"    # optional
#    format        "44100:16:2"    # optional
#    mixer_device    "/dev/mixer"    # optional
#    mixer_control    "PCM"        # optional
#}
#
# An example of a shout output (for streaming to Icecast):
#
#audio_output {
#    type        "shout"
#    encoding    "ogg"            # optional
#    name        "My Shout Stream"
#    host        "localhost"
#    port        "8000"
#    mount        "/mpd.ogg"
#    password    "hackme"
#    quality        "5.0"
#    bitrate        "128"
#    format        "44100:16:1"
#    protocol    "icecast2"        # optional
#    user        "source"        # optional
#    description    "My Stream Description"    # optional
#    genre        "jazz"            # optional
#    public        "no"            # optional
#    timeout        "2"            # optional
#}
#
# An example of a httpd output (built-in HTTP streaming server):
#
#audio_output {
#    type        "httpd"
#    name        "My HTTP Stream"
#    encoder        "vorbis"        # optional, vorbis or lame
#    port        "8000"
#    quality        "5.0"            # do not define if bitrate is defined
#    bitrate        "128"            # do not define if quality is defined
#    format        "44100:16:1"
#}
#
# An example of a pulseaudio output (streaming to a remote pulseaudio server)
#
#audio_output {
#    type        "pulse"
#    name        "My Pulse Output"
#    server        "remote_server"        # optional
#    sink        "remote_server_sink"    # optional
#}
#
## Example "pipe" output:
#
#audio_output {
#    type        "pipe"
#    name        "my pipe"
#    command        "aplay -f cd 2>/dev/null"
## Or if you're want to use AudioCompress
#    command        "AudioCompress -m | aplay -f cd 2>/dev/null"
## Or to send raw PCM stream through PCM:
#    command        "nc example.org 8765"
#    format        "44100:16:2"
#}
#
## An example of a null output (for no audio output):
#
#audio_output {
#    type        "null"
#    name        "My Null Output"
#}
#
# This setting will change all decoded audio to be converted to the specified
# format before being passed to the audio outputs. By default, this setting is
# disabled.
#
#audio_output_format        "44100:16:2"
#
# If MPD has been compiled with libsamplerate support, this setting specifies 
# the sample rate converter to use.  Possible values can be found in the 
# mpd.conf man page or the libsamplerate documentation. By default, this is
# setting is disabled.
#
#samplerate_converter        "Fastest Sinc Interpolator"
#
###############################################################################


# Volume control mixer ########################################################
#
# These are the global volume control settings. By default, this setting will
# be detected to the available audio output device, with preference going to 
# hardware mixing. Hardware and software mixers for individual audio_output
# sections cannot yet be mixed.
#
# An example for controlling an ALSA, OSS or Pulseaudio mixer; If this
# setting is used other sound applications will be affected by the volume
# being controlled by MPD.
#
#mixer_type            "hardware"
#
# An example for controlling all mixers through software. This will control
# all controls, even if the mixer is not supported by the device and will not
# affect any other sound producing applications.
#
#mixer_type            "software"
#
# This example will not allow MPD to touch the mixer at all and will disable
# all volume controls.
#
#mixer_type            "disabled"
#
###############################################################################


# Normalization automatic volume adjustments ##################################
#
# This setting specifies the type of ReplayGain to use. This setting can have
# the argument "album" or "track". See <http://www.replaygain.org> for more
# details. This setting is disabled by default.
#
#replaygain            "album"
#
# This setting sets the pre-amp used for files that have ReplayGain tags. By
# default this setting is disabled.
#
#replaygain_preamp        "0"
#
# This setting enables on-the-fly normalization volume adjustment. This will
# result in the volume of all playing audio to be adjusted so the output has 
# equal "loudness". This setting is disabled by default.
#
#volume_normalization        "no"
#
###############################################################################


# MPD Internal Buffering ######################################################
#
# This setting adjusts the size of internal decoded audio buffering. Changing
# this may have undesired effects. Don't change this if you don't know what you
# are doing.
#
#audio_buffer_size        "2048"
#
# This setting controls the percentage of the buffer which is filled before 
# beginning to play. Increasing this reduces the chance of audio file skipping, 
# at the cost of increased time prior to audio playback.
#
#buffer_before_play        "10%"
#
###############################################################################


# Resource Limitations ########################################################
#
# These settings are various limitations to prevent MPD from using too many
# resources. Generally, these settings should be minimized to prevent security
# risks, depending on the operating resources.
#
#connection_timeout        "60"
#max_connections        "10"
#max_playlist_length        "16384"
#max_command_list_size        "2048"
#max_output_buffer_size        "8192"
#
###############################################################################


# Character Encoding ##########################################################
#
# If file or directory names do not display correctly for your locale then you 
# may need to modify this setting. After modification of this setting mpd 
# --create-db must be run to change the database.
#
filesystem_charset        "UTF-8"
#
# This setting controls the encoding that ID3v1 tags should be converted from.
#
id3v1_encoding            "UTF-8"
#
###############################################################################

Offline

#135 2012-08-15 14:34:23

ivanovnegro
Ivan #000000
From: unstable madness
Registered: 2011-06-02
Posts: 5,419

Re: The ultimate MPD guide

I will be back soon and take a look. I am going outside, have some business to care of.

Offline

#136 2012-08-15 17:06:10

ivanovnegro
Ivan #000000
From: unstable madness
Registered: 2011-06-02
Posts: 5,419

Re: The ultimate MPD guide

Ok, your conf looks fine. But I would try just in case this, change this line:

bind_to_address        "localhost"

to

bind_to_address                "127.0.0.1"

Now, to autostart mpd, have you read my how-to about this?
Anyway, you have to put it in your Openbox autostart. I do not use Openbox. I have this line in my autostart script:

mpd &

On DEs I have a desktop file.
Otherwise you would have to start MPD always on start of your system with:

mpd

Last edited by ivanovnegro (2012-08-15 17:07:13)

Offline

#137 2012-09-03 16:36:59

Hente
New Member
Registered: 2012-09-02
Posts: 5

Re: The ultimate MPD guide

New to linux as a whole. I installed everything and mpd properly starts (I think?) and ncmpcpp runs as well, but I am not getting any audio output though. I'm using the default settings but I do use a USB DAC so i'm not really sure what to replace, can someone help me?

When I try to play a song form my playlist, the song status goes to playing for a split second then goes back to paused.

This is what I get from typing aplay -L into the terminal:

front:CARD=default,DEV=0
    USB Audio DAC   , USB Audio
    Front speakers
surround40:CARD=default,DEV=0
    USB Audio DAC   , USB Audio
    4.0 Surround output to Front and Rear speakers
surround41:CARD=default,DEV=0
    USB Audio DAC   , USB Audio
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=default,DEV=0
    USB Audio DAC   , USB Audio
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=default,DEV=0
    USB Audio DAC   , USB Audio
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=default,DEV=0
    USB Audio DAC   , USB Audio
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=default,DEV=0
    USB Audio DAC   , USB Audio
    IEC958 (S/PDIF) Digital Audio Output

Last edited by Hente (2012-09-03 16:38:53)

Offline

#138 2012-09-03 16:45:17

xaos52
The Good Doctor
From: Planet of the @s
Registered: 2011-06-24
Posts: 4,595

Re: The ultimate MPD guide

Post output of

uname -r
cat /proc/asound/{cards,version}
lsmod|grep snd
aplay -l

Offline

#139 2012-09-03 17:56:07

Hente
New Member
Registered: 2012-09-02
Posts: 5

Re: The ultimate MPD guide

uname -r:

 2.6.32-5-686

cat /proc/asound/{cards,version}:

cat /proc/asound/{cards,version}
 1 [default        ]: USB-Audio - USB Audio DAC   
                      Burr-Brown from TI               USB Audio DAC    at usb-0000:00:1d.1-1, full s
Advanced Linux Sound Architecture Driver Version 1.0.21.

lsmod|grep snd:

snd_usb_audio          50670  1 
snd_pcm                47226  1 snd_usb_audio
snd_page_alloc          5045  1 snd_pcm
snd_usb_lib            11192  1 snd_usb_audio
snd_seq_midi            3576  0 
snd_seq_midi_event      3684  1 snd_seq_midi
snd_rawmidi            12513  2 snd_usb_lib,snd_seq_midi
snd_hwdep               4054  1 snd_usb_audio
snd_seq                35463  2 snd_seq_midi,snd_seq_midi_event
snd_timer              12270  2 snd_pcm,snd_seq
snd_seq_device          3673  3 snd_seq_midi,snd_rawmidi,snd_seq
snd                    34423  9 snd_usb_audio,snd_pcm,snd_rawmidi,snd_hwdep,snd_seq,snd_timer,snd_seq_device
soundcore               3450  1 snd
usbcore                99329  7 snd_usb_audio,snd_usb_lib,usb_storage,usbhid,uhci_hcd,ehci_hcd

aplay -l

card 1: default [USB Audio DAC   ], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

Offline

#140 2012-09-04 09:44:48

xaos52
The Good Doctor
From: Planet of the @s
Registered: 2011-06-24
Posts: 4,595

Re: The ultimate MPD guide

Looks OK.
Alsa version is a bit old, I wonder if a newer version is in the repos now. But I dont think that is the problem.

See if you get any sound from this command in a terminal window

aplay -D plughw:0,0 /usr/share/sounds/alsa/Front_Center.wav

If not, check if anything is muted or volume too low using

alsamixer

in a terminal window.

Offline

#141 2012-09-04 10:48:34

Hente
New Member
Registered: 2012-09-02
Posts: 5

Re: The ultimate MPD guide

Actually using killall mpd made mpd work normally. ;_;"
Buuuuuuuuuuuuut I have a couple of new problems, volume controls don't work, changing the volume from the alsamixer in the terminal doesn't do anything either. If it matters when I installed #! I had to disable my motherboards audio from the BIOS in order to get my DAC working.
Was messing with the audio output settings, so here is the new config:

 audio_output {
    type        "alsa"
    name        "Aune"
    device        "default"    # optional
    format        "44100:16:2"    # optional
    mixer_device    "default"    # optional
    mixer_control    "PCM"        # optional
    mixer_index    "0"        # optional
}

When going to the music visualizer in ncmpcpp the text at the bottom says:

Couldn't open "" for reading PCM data: No such file or directory.

Last edited by Hente (2012-09-04 14:47:52)

Offline

#142 2012-09-04 15:54:48

xaos52
The Good Doctor
From: Planet of the @s
Registered: 2011-06-24
Posts: 4,595

Re: The ultimate MPD guide

If it matters when I installed #! I had to disable my motherboards audio from the BIOS in order to get my DAC working.

I dont think it matters. On the contrary, it made your USB device the default output. Which is good.

Have you rebooted since making your change?

I dont use mpd nor ncmpcpp myself.

Does the aplay command I posted earlier produce sound? If it does then your base sound config is ok, and debugging/configuring should be done for mpd and/or ncmpcpp.

Do you get sound when playing a music CD in vlc?

Last edited by xaos52 (2012-09-04 15:55:55)

Offline

#143 2012-09-04 16:29:54

Hente
New Member
Registered: 2012-09-02
Posts: 5

Re: The ultimate MPD guide

I have rebooted but that does not do anything.

The aplay command gives me this:

ALSA lib pcm_hw.c:1401:(_snd_pcm_hw_open) Invalid value for card
aplay: main:654: audio open error: No such file or directory

I do get sound from VLC.

Last edited by Hente (2012-09-04 16:44:06)

Offline

#144 2012-10-05 12:08:03

stat
Member
Registered: 2012-06-15
Posts: 41

Re: The ultimate MPD guide

Nice to have all this comprehensive how to.  Thank you Ivanovnegro very useful and well done.


Find something useful here? Help fund CrunchBang, donate to the project!

Offline

#145 2012-10-06 05:34:49

stat
Member
Registered: 2012-06-15
Posts: 41

Re: The ultimate MPD guide

I am just wondering what the play list limits are on size in mpc or if someone knows a way around it.  Like Ivanovnegro I have a kind of large library (60K or so songs) but I enjoy completely random music.  In other words I would like to load my whole library into a play list and then just let it rip.  I hardly ever shutdown and stream all over.  The issue I am running into is that "mpc ls | mpc add" gives me the error "error: playlist is at the max size" anyone out there know a work around. Goog has not been to helpful.
.


Find something useful here? Help fund CrunchBang, donate to the project!

Offline

#146 2012-10-06 06:28:41

mobilediesel
#! Member
Registered: 2010-08-19
Posts: 73

Re: The ultimate MPD guide

stat wrote:

I am just wondering what the play list limits are on size in mpc or if someone knows a way around it.  Like Ivanovnegro I have a kind of large library (60K or so songs) but I enjoy completely random music.  In other words I would like to load my whole library into a play list and then just let it rip.  I hardly ever shutdown and stream all over.  The issue I am running into is that "mpc ls | mpc add" gives me the error "error: playlist is at the max size" anyone out there know a work around. Goog has not been to helpful.
.

Mpdcron combined with a hook script works great for me. mpdcron is in the repositories so you only need to add my script. It has a min/max number of songs to add to the playlist. I have mpd set to consume mode so played tracks are removed from the playlist. Then when the number of tracks gets to 5 it adds 2 more to make it 7. It should be easy enough to change those to whatever. You can also have it pick random albums or artists.

It also makes a symbolic link to the album art  in /tmp/cover if it's found to use in notifications and possible use in conky.

Here are my scripts: mpdrnd.tar.gz

Last edited by mobilediesel (2012-10-06 06:29:47)

Offline

#147 2012-10-07 16:28:59

stat
Member
Registered: 2012-06-15
Posts: 41

Re: The ultimate MPD guide

Thanks mobilediesel, above and beyond the call of duty.  I just saw this and am looking at your hooks and making adjustments.  Fantastic, I really posted this as a shot in the dark so I am giddy about having and answer already and of course having something new to fart around with in mpdcron.  As always the CB community comes thru!

Ummm, almost disappointing.  All I had to do was change a couple of variables.  Seriously thank you for this.  I can now start screwing with it and mess it up.

Last edited by stat (2012-10-07 16:53:48)


Find something useful here? Help fund CrunchBang, donate to the project!

Offline

#148 2012-10-07 17:59:24

mobilediesel
#! Member
Registered: 2010-08-19
Posts: 73

Re: The ultimate MPD guide

I tried to keep it simple for myself so I would still know how it worked when looking at it months later. big_smile

The code could probably stand to be cleaned up a bit, still.

Offline

#149 2012-10-08 03:57:35

stat
Member
Registered: 2012-06-15
Posts: 41

Re: The ultimate MPD guide

mobilediesel wrote:

I tried to keep it simple for myself so I would still know how it worked when looking at it months later. big_smile

The code could probably stand to be cleaned up a bit, still.

I don't know about whether it needs anything.  It works a treat and the conf is documented well enough.  About the only mod I did off the bat was in cover.sh (which looked a little intimidating when first opened) to add a couple of lines of explanation for myself, alter it to just use /tmp and not make a separate directory etc. I had already written a python script that works for my conky and a rating script so I had the cover art and wanted it all working together or so it would separately in case of some other failure. Since I am whacking that file on every song change I don't need a separate folder.  I haven't ever played with hooks so this has given me a little incentive.

Bottom line. Well done, Great stuff and thanks for sharing smile

Last edited by stat (2012-10-08 03:58:28)


Find something useful here? Help fund CrunchBang, donate to the project!

Offline

Help fund CrunchBang, donate to the project!

#150 2012-10-27 15:34:48

mosesgunn
#! CrunchBanger
Registered: 2012-10-20
Posts: 133

Re: The ultimate MPD guide

I have been searching about for awhile now trying to get mpd set up correctly, but am getting the following messages when I try to run mpd.

listen: bind to '0.0.0.0:6600' failed: Address already in use (continuing anyway, because binding to '[::]:6600' succeeded)
Failed to load database: Failed to open database file "/home/manning/.mpd/tag_cache": No such file or directory
daemon: could not create pid file "/var/run/mpd/pid": Permission denied

Here is my mpd.conf file

# An example configuration file for MPD
# See the mpd.conf man page for a more detailed description of each parameter.


# Files and directories #######################################################
#
# This setting controls the top directory which MPD will search to discover the
# available audio files and add them to the daemon's online database. This 
# setting defaults to the XDG directory, otherwise the music directory will be
# be disabled and audio files will only be accepted over ipc socket (using
# file:// protocol) or streaming files over an accepted protocol.
#
music_directory        "/home/manning/music"
#
# This setting sets the MPD internal playlist directory. The purpose of this
# directory is storage for playlists created by MPD. The server will use 
# playlist files not created by the server but only if they are in the MPD
# format. This setting defaults to playlist saving being disabled.
#
playlist_directory        "/home/manning/.mpd/playlists"
#
# This setting sets the location of the MPD database. This file is used to
# load the database at server start up and store the database while the 
# server is not up. This setting defaults to disabled which will allow
# MPD to accept files over ipc socket (using file:// protocol) or streaming
# files over an accepted protocol.
#
db_file            "/home/manning/.mpd/tag_cache"
# 
# These settings are the locations for the daemon log files for the daemon.
# These logs are great for troubleshooting, depending on your log_level
# settings.
#
# The special value "syslog" makes MPD use the local syslog daemon. This
# setting defaults to logging to syslog, otherwise logging is disabled.
#
log_file            "/home/manning/.mpd/mpd.log"
#
# This setting sets the location of the file which stores the process ID
# for use of mpd --kill and some init scripts. This setting is disabled by
# default and the pid file will not be stored.
#
pid_file            "/var/run/mpd/pid"
#
# This setting sets the location of the file which contains information about
# most variables to get MPD back into the same general shape it was in before
# it was brought down. This setting is disabled by default and the server 
# state will be reset on server start up.
#
state_file            "/home/manning/.mpd/state"
#
# The location of the sticker database.  This is a database which
# manages dynamic information attached to songs.
#
sticker_file                   "/home/manning/.mpd/sticker.sql"
#
###############################################################################


# General music daemon options ################################################
#
# This setting specifies the user that MPD will run as. MPD should never run as
# root and you may use this setting to make MPD change its user ID after
# initialization. This setting is disabled by default and MPD is run as the
# current user.
#
#user                "mpd"
#
# This setting specifies the group that MPD will run as. If not specified
# primary group of user specified with "user" setting will be used (if set).
# This is useful if MPD needs to be a member of group such as "audio" to
# have permission to use sound card.
#
#group                          "nogroup"
#
# This setting sets the address for the daemon to listen on. Careful attention
# should be paid if this is assigned to anything other then the default, any.
# This setting can deny access to control of the daemon. Choose any if you want
# to have mpd listen on every address
#
# For network
#bind_to_address        "localhost"
#
# And for Unix Socket
#bind_to_address        "/var/run/mpd/socket"
#
# This setting is the TCP port that is desired for the daemon to get assigned
# to.
#
#port                "6600"
#
# This setting controls the type of information which is logged. Available 
# setting arguments are "default", "secure" or "verbose". The "verbose" setting
# argument is recommended for troubleshooting, though can quickly stretch
# available resources on limited hardware storage.
#
#log_level            "default"
#
# If you have a problem with your MP3s ending abruptly it is recommended that 
# you set this argument to "no" to attempt to fix the problem. If this solves
# the problem, it is highly recommended to fix the MP3 files with vbrfix
# (available as vbrfix in the debian archive), at which
# point gapless MP3 playback can be enabled.
#
#gapless_mp3_playback            "yes"
#
# This setting enables MPD to create playlists in a format usable by other
# music players.
#
#save_absolute_paths_in_playlists    "no"
#
# This setting defines a list of tag types that will be extracted during the 
# audio file discovery process. Optionally, 'comment' can be added to this
# list.
#
#metadata_to_use    "artist,album,title,track,name,genre,date,composer,performer,disc"
#
# This setting enables automatic update of MPD's database when files in 
# music_directory are changed.
#
#auto_update    "yes"
#
# Limit the depth of the directories being watched, 0 means only watch
# the music directory itself.  There is no limit by default.
#
#auto_update_depth "3"
#
###############################################################################


# Symbolic link behavior ######################################################
#
# If this setting is set to "yes", MPD will discover audio files by following 
# symbolic links outside of the configured music_directory.
#
#follow_outside_symlinks    "yes"
#
# If this setting is set to "yes", MPD will discover audio files by following
# symbolic links inside of the configured music_directory.
#
#follow_inside_symlinks        "yes"
#
###############################################################################


# Zeroconf / Avahi Service Discovery ##########################################
#
# If this setting is set to "yes", service information will be published with
# Zeroconf / Avahi.
#
#zeroconf_enabled        "yes"
#
# The argument to this setting will be the Zeroconf / Avahi unique name for
# this MPD server on the network.
#
#zeroconf_name            "Music Player"
#
###############################################################################


# Permissions #################################################################
#
# If this setting is set, MPD will require password authorization. The password
# can setting can be specified multiple times for different password profiles.
#
#password                        "password@read,add,control,admin"
#
# This setting specifies the permissions a user has who has not yet logged in. 
#
#default_permissions             "read,add,control,admin"
#
###############################################################################


# Input #######################################################################
#

input {
        plugin "curl"
#       proxy "proxy.isp.com:8080"
#       proxy_user "user"
#       proxy_password "password"
}

#
###############################################################################

# Audio Output ################################################################
#
# MPD supports various audio output types, as well as playing through multiple 
# audio outputs at the same time, through multiple audio_output settings 
# blocks. Setting this block is optional, though the server will only attempt
# autodetection for one sound card.
#
# 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
    mixer_device    "default"    # optional
    mixer_control    "PCM"        # optional
    mixer_index    "0"        # optional
}
#
# An example of an OSS output:
#
#audio_output {
#    type        "oss"
#    name        "My OSS Device"
#    device        "/dev/dsp"    # optional
#    format        "44100:16:2"    # optional
#    mixer_device    "/dev/mixer"    # optional
#    mixer_control    "PCM"        # optional
#}
#
# An example of a shout output (for streaming to Icecast):
#
#audio_output {
#    type        "shout"
#    encoding    "ogg"            # optional
#    name        "My Shout Stream"
#    host        "localhost"
#    port        "8000"
#    mount        "/mpd.ogg"
#    password    "hackme"
#    quality        "5.0"
#    bitrate        "128"
#    format        "44100:16:1"
#    protocol    "icecast2"        # optional
#    user        "source"        # optional
#    description    "My Stream Description"    # optional
#    genre        "jazz"            # optional
#    public        "no"            # optional
#    timeout        "2"            # optional
#}
#
# An example of a recorder output:
#
#audio_output {
#       type            "recorder"
#       name            "My recorder"
#       encoder         "vorbis"                # optional, vorbis or lame
#       path            "/var/lib/mpd/recorder/mpd.ogg"
##      quality         "5.0"                   # do not define if bitrate is defined
#       bitrate         "128"                   # do not define if quality is defined
#       format          "44100:16:1"
#}
#
# An example of a httpd output (built-in HTTP streaming server):
#
#audio_output {
#    type        "httpd"
#    name        "My HTTP Stream"
#    encoder        "vorbis"        # optional, vorbis or lame
#    port        "8000"
#    quality        "5.0"            # do not define if bitrate is defined
#    bitrate        "128"            # do not define if quality is defined
#    format        "44100:16:1"
#}
#
# An example of a pulseaudio output (streaming to a remote pulseaudio server)
#
#audio_output {
#    type        "pulse"
#    name        "My Pulse Output"
#    server        "remote_server"        # optional
#    sink        "remote_server_sink"    # optional
#}
#
## Example "pipe" output:
#
#audio_output {
#    type        "pipe"
#    name        "my pipe"
#    command        "aplay -f cd 2>/dev/null"
## Or if you're want to use AudioCompress
#    command        "AudioCompress -m | aplay -f cd 2>/dev/null"
## Or to send raw PCM stream through PCM:
#    command        "nc example.org 8765"
#    format        "44100:16:2"
#}
#
## An example of a null output (for no audio output):
#
#audio_output {
#    type        "null"
#    name        "My Null Output"
#}
#
# This setting will change all decoded audio to be converted to the specified
# format before being passed to the audio outputs. By default, this setting is
# disabled.
#
#audio_output_format        "44100:16:2"
#
# If MPD has been compiled with libsamplerate support, this setting specifies 
# the sample rate converter to use.  Possible values can be found in the 
# mpd.conf man page or the libsamplerate documentation. By default, this is
# setting is disabled.
#
#samplerate_converter        "Fastest Sinc Interpolator"
#
###############################################################################


# Volume control mixer ########################################################
#
# These are the global volume control settings. By default, this setting will
# be detected to the available audio output device, with preference going to 
# hardware mixing. Hardware and software mixers for individual audio_output
# sections cannot yet be mixed.
#
# An example for controlling an ALSA, OSS or Pulseaudio mixer; If this
# setting is used other sound applications will be affected by the volume
# being controlled by MPD.
#
#mixer_type            "hardware"
#
# An example for controlling all mixers through software. This will control
# all controls, even if the mixer is not supported by the device and will not
# affect any other sound producing applications.
#
#mixer_type            "software"
#
# This example will not allow MPD to touch the mixer at all and will disable
# all volume controls.
#
#mixer_type            "disabled"
#
###############################################################################


# Normalization automatic volume adjustments ##################################
#
# This setting specifies the type of ReplayGain to use. This setting can have
# the argument "album" or "track". See <http://www.replaygain.org> for more
# details. This setting is disabled by default.
#
#replaygain            "album"
#
# This setting sets the pre-amp used for files that have ReplayGain tags. By
# default this setting is disabled.
#
#replaygain_preamp        "0"
#
# This setting enables on-the-fly normalization volume adjustment. This will
# result in the volume of all playing audio to be adjusted so the output has 
# equal "loudness". This setting is disabled by default.
#
#volume_normalization        "no"
#
###############################################################################


# MPD Internal Buffering ######################################################
#
# This setting adjusts the size of internal decoded audio buffering. Changing
# this may have undesired effects. Don't change this if you don't know what you
# are doing.
#
#audio_buffer_size        "2048"
#
# This setting controls the percentage of the buffer which is filled before 
# beginning to play. Increasing this reduces the chance of audio file skipping, 
# at the cost of increased time prior to audio playback.
#
#buffer_before_play        "10%"
#
###############################################################################


# Resource Limitations ########################################################
#
# These settings are various limitations to prevent MPD from using too many
# resources. Generally, these settings should be minimized to prevent security
# risks, depending on the operating resources.
#
#connection_timeout        "60"
#max_connections        "10"
#max_playlist_length        "16384"
#max_command_list_size        "2048"
#max_output_buffer_size        "8192"
#
###############################################################################


# Character Encoding ##########################################################
#
# If file or directory names do not display correctly for your locale then you 
# may need to modify this setting. After modification of this setting mpd 
# --create-db must be run to change the database.
#
filesystem_charset        "UTF-8"
#
# This setting controls the encoding that ID3v1 tags should be converted from.
#
id3v1_encoding            "UTF-8"
#
###############################################################################
# SIDPlay decoder #############################################################
#
# songlength_database:
#  Location of your songlengths file, as distributed with the HVSC.
#  The sidplay plugin checks this for matching MD5 fingerprints.
#  See http://www.c64.org/HVSC/DOCUMENTS/Songlengths.faq
#
# default_songlength:
#  This is the default playing time in seconds for songs not in the
#  songlength database, or in case you're not using a database.
#  A value of 0 means play indefinitely.
#
# filter:
#  Turns the SID filter emulation on or off.
#
#decoder {
#       plugin                  "sidplay"
#       songlength_database     "/media/C64Music/DOCUMENTS/Songlengths.txt"
#       default_songlength      "120"
#       filter "true"
#}
#
###############################################################################

Thanks for any insught!

imkentjr

Offline

Board footer

Powered by FluxBB

Copyright © 2012 CrunchBang Linux.
Proudly powered by Debian. Hosted by Linode.
Debian is a registered trademark of Software in the Public Interest, Inc.

Debian Logo