====== MPD y Clientes How-to ====== ===== Situación ===== Queremos configurar un equipo para que reproduzca musica y se pueda controlar fácilmente desde diversos puntos. {{ howto:music_player_daemon.png |Sistema de sonido con control remoto}} ==== Equipo ==== Se trata de un equipo con 1 tarjeta de sonido [[http://us.creative.com/products/product.asp?product=50&campid=20445|Sound Blaster Live!]] (con 4 canales), la cual funciona en [[http://www.kernel.org/|Linux]] con a través del módulo [[http://emu10k1.sf.net|emu10k1]] El Sistema Operativo de la máquina es [[https://wiki.ubuntu.com/GutsyGibbon|Ubuntu Gutsy]] ==== Puntos de control ==== * Diversos clientes por software en varios equipos conectados a la red * Botonera * Tareas programadas ==== Musica ==== La música esta organizada en el servidor utilizando el árbol de directorios: * /home/multimedia/musica/ * grupos * Grupo1 * Disco1 * Cancion.mp3 * Cancion.ogg * Disco2 * DiscoX * Grupo2 * Disco1 * DiscoX * GrupoX * estilos * estilo1 * Grupo3 * Grupo7 * estilo2 * Grupo7 * Grupo9 * estiloX **TRUCO** Para no duplicar el espacio, se han creado enlaces duros entre los grupos, lo cual evita ficheros duplicados, pero referencias en diversos directorios. Ejemplo: cp -rl grupos/"Paco de Lucia" estilos/flamenco/ ===== MPD ===== Se trata de un servidor de reproducción, al cual se configuran diversos origenes para la música y gestiona la musica a través de los directorios, etiquetas ID3Tag, listas de reproducción y streams de audio sin consumir apenas recursos de la máquina, a diferecia de otros reproductores con interfaces de red para control remoto. ==== Instalación ==== Tan simple como: usuario@maquina:~ $ sudo apt-get install mpd libmpeg3-1 libogg0 ===== Configuración ===== Editamos el fichero de configuración: teniendo en cuenta: music_directory playlist_directory audio_output { [...] } mixer_type "software" Quedando el fichero de configuración para nuestra situación así: music_directory "/home/multimedia/musica" playlist_directory "/home/multimedia/musica/playlist" db_file "/var/lib/mpd/tag_cache" log_file "/var/log/mpd/mpd.log" error_file "/var/log/mpd/errors.log" pid_file "/var/run/mpd/pid" state_file "/var/lib/mpd/state" user "mpd" bind_to_address "0.0.0.0" log_level "default" audio_output { type "alsa" name "Sound BLaster" device "hw:0,0" # optional format "44100:16:2" # optional } mixer_type "software" Se aconseja revisar el fichero de configuración para poder comprobar todas las capacidades tiene MPD. ===== Clientes ===== En el servidor multimedia se han configurado diversos clientes por software: ==== MPC ==== Cliente en modo comando para controlar al servidor de musica de una manera fácil. === Instalación === usuario@maquina:~ $ sudo apt-get install mpc === Uso === usuario@maquina:~ $ mpc help Usage: mpc [command args]... mpc version: 0.12.1 mpc Displays status mpc add Add a song to the current playlist mpc crop Remove all but the currently playing song mpc del Remove a song from the current playlist mpc play [] Start playing at (default: 1) mpc next Play the next song in the current playlist mpc prev Play the previous song in the current playlist mpc pause Pauses the currently playing song mpc toggle Toggles Play/Pause, plays if stopped mpc stop Stop the currently playing playlists mpc seek [+-][HH:MM:SS]|<0-100>% Seeks to the specified position mpc clear Clear the current playlist mpc outputs Show the current outputs mpc enable Enable a output mpc disable Disable a output mpc shuffle Shuffle the current playlist mpc move Move song in playlist mpc playlist Print the current playlist mpc listall [] List all songs in the music dir mpc ls [] List the contents of mpc lsplaylists Lists currently available playlists mpc load Load as a playlist mpc save Saves a playlist as mpc rm Removes a playlist mpc volume [+-] Sets volume to or adjusts by [+-] mpc repeat Toggle repeat mode, or specify state mpc random Toggle random mode, or specify state mpc search Search for a song mpc crossfade [] Set and display crossfade settings mpc update [] Scans music directory for updates mpc stats Displays statistics about MPD mpc version Reports version of MPD For more information about these and other options look at man 1 mpc ==== Sonata ==== Sonata es un cliente gráfico escrito en phyton que controla remotamente mpd. === Instalación === usuario@maquina:~ $ sudo apt-get install sonata === Uso === Lanzar sonata y por defecto se conectará contra localhost, si no es tan facil como abrirlo y poner en la configuación el host/ip donde esta corriendo el servidor MPD {{ howto:sonata.png |Ventana principal de Sonanta}} {{ howto:sonata-preferences.png |Preferencias de Sonata}} ==== MPC-SELECTOR ==== Se trata de un script escrito en [[http://galeria.locolandia.net|Locolandia]] para poder integrarlo fácilmente con el gestor de botones de metacity. === Instalación === Pues bien creas el script siguiente: #!/bin/bash # # MPC Loading music styles or groups simple. # Pablo Catalina # # use: # mpc-selector style reggae # mpc-selector group "Bob Marley" # files must be order following that tree # $ROOT_DIR/ # -> $STYLE_DIR # -> reggae/.. # -> flamenco/.. # -> clasic/.. # -> ... # -> $GROUP_DIR # -> Bob Marley/... # -> Camaron/... # -> ... # # Pablo Catalina # #ROOT_DIR with end slash like root/ if there is no root dir leave blank ROOT_DIR="" STYLE_DIR="estilos/" GROUP_DIR="grupos/" if [ -z "$2" ] then echo "Use mpc-selector \"somegroup or something else\"" exit 1 fi mpc clear if [ "$1" = "style" ] then mpc add "$ROOT_DIR$STYLE_DIR$2" else mpc add "$ROOT_DIR$GROUP_DIR$2" fi mpc random on mpc play Lo copias a un directorio del $PATH y le das permisos de ejecución: usuario@maquina:~ $ sudo mv mpd-selector /usr/local/bin/ usuario@maquina:~ $ sudo chmod 755 /usr/local/bin/mpd-selector === Uso === Pues le puedes decir para cargar un estilo: usuario@maquina:~ $ mpd-selector style reggae O un grupo determinado: usuario@maquina:~ $ mpd-selector group "Tiken Jah fakoly"