1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

MPD - Music Player Daemon

Discussão em 'Novidades GNU/Linux & *nix World' iniciada por esquiso, 2 de Fevereiro de 2008. (Respostas: 53; Visualizações: 12354)

  1. esquiso

    esquiso Power Member

    1 - Introdução e instalação
    2 - Configuração do MPD
    3 - Overview dos Frontends

    1 - Introdução e instalação

    O que é?

    http://en.wikipedia.org/wiki/MPD (Music_Player)

    http://www.musicpd.org/

    Para que serve?

    Simplesmente, para ouvir música. Acho que já tinham adivinhado. :)

    O que o distingue dos outros music players como o Amarok, Banshee, Exaile, etc?

    A principal caracterista dele é sem dúvida o facto de não precisar de ambiente gráfico para correr. A leveza (para quem se preocupa com isso) é um prato forte também.

    Como é que o instalo?

    A maneira mais facil é mesmo usar o vosso package manager.

    Código:
    pacman -S mpd
    aptitude install mpd
    emerge mpd
    e por ai fora
    O modo "complicado" é fazer o download da tarball e seguir as instruções que estão no INSTALL. :)
     
    Última edição: 2 de Fevereiro de 2008
  2. esquiso

    esquiso Power Member

    2 - Configuração do MPD

    Por si só, o MPD não vem configurado. Uns podem considerar isto uma chatice, mas é para isto que este post serve. Tornar o processo de configuração do MPD um processo mais simples.

    Após a instalação do MPD, será criado um ficheiro na vossa /etc chamado mpd.conf ou talvez mpd.conf.example (depende da distro). A primeira coisa a fazer, é abri-lo com o vosso editor de texto de eleição, com permissões de root :)

    Código:
    # leafpad /etc/mpd.conf
    # nano /etc/mpd.conf.example
    # vi /etc/mpd.conf
    # emacs /etc/mpd.conf.example
    Como quiserem.
    Após isto, serão presenteados com umas boas linhas de caracteres (cerca de 250) que vos podem parecer aleatórios (ou talvez não). Por defeito, será igual a isto (terá mais, mas para já, é só isto que nos interessa):

    Código:
    # An example configuration file for MPD
    # See the mpd.conf man page for a more detailed description of each parameter.
    
    ######################## REQUIRED PATHS ########################
    #music_directory                 "~/music"
    #playlist_directory              "~/playlists"
    #db_file                         "~/mpd.db"
    #log_file                        "~/mpd.log"
    #error_file                      "~/mpd.error"
    
    #music_directory                 "path_to_your_music_collection"
    playlist_directory              "/var/lib/mpd/playlists"
    db_file                         "/var/lib/mpd/mpd.db"
    log_file                        "/var/log/mpd/mpd.log"
    error_file                      "/var/log/mpd/mpd.error"
    
    # Note: ~ is the home directory of user set in the "user" option
    ################################################################
    
    
    ######################## OPTIONAL PATHS ########################
    #
    # If you wish to use mpd --kill to stop MPD, then you must
    # specify a file here in which to store MPD's process ID.
    #
    #pid_file                        "~/.mpd/mpd.pid"
    pid_file                        "/var/run/mpd/mpd.pid"
    #
    # 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                      "~/.mpd/mpdstate"
    state_file                      "/var/lib/mpd/mpdstate"
    #
    ################################################################
    
    
    ######################## 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                            "mpd"
    
    # The address and port to listen on.
    #
    bind_to_address                 "127.0.0.1"
    #bind_to_address                 "any"
    #port                            "6600"
    #
    # Controls the amount of information that is logged.  Can be
    # "default", "secure", or "verbose".
    #
    #log_level                       "default"
    #
    ################################################################
    Vamos dar uso às unhas. A parte dos Required Paths é relativamente facil de preencher. Mudam as pastas para o que quiserem. Deixo uma tip: ponham os logs, playlists, pid, por ai fora, numa pasta que não a dos /var/log/ e juntem tudo numa /home/$USER/.mpd/ . É muito mais simples :)

    A primeira parte irá ficar algo assim, com as devidas diferenças:

    Código:
    ######################## REQUIRED PATHS ########################
    #music_directory                 "~/music"
    #playlist_directory              "~/playlists"
    #db_file                         "~/mpd.db"
    #log_file                        "~/mpd.log"
    #error_file                      "~/mpd.error"
    
    music_directory                 "~/Music/"
    playlist_directory              "~/Music/"
    db_file                         "~/.mpd/mpd.db"
    log_file                        "~/.mpd/mpd.log"
    error_file                      "~/.mpd/mpd.error"
    
    # Note: ~ is the home directory of user set in the "user" option
    ################################################################
    A parte dos Optional Paths é igualmente facil. Deverá ficar algo assim.

    Código:
    ######################## OPTIONAL PATHS ########################
    #
    # If you wish to use mpd --kill to stop MPD, then you must
    # specify a file here in which to store MPD's process ID.
    #
    pid_file                        "~/.mpd/mpd.pid"
    #pid_file                        "/var/run/mpd/mpd.pid"
    #
    # 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                      "~/.mpd/mpdstate"
    #state_file                      "/var/lib/mpd/mpdstate"
    #
    ################################################################
    A parte dos Daemon Options é que convem ter atenção. Tenham MESMO a certeza que no parametro user definem o vosso, senão as directorias que definiram acima, não irão funcionar. Tenham também em atenção o parametro bind_to_address: é provavel que tenhm os dois descomentados; comentem (aka ponham um # atrás da linha) o 2º. Ficará algo parecido com isto:

    Código:
    ######################## 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                            "esquiso"
    
    # The address and port to listen on.
    #
    bind_to_address                 "127.0.0.1"
    #bind_to_address                 "any"
    port                            "6600"
    #
    # Controls the amount of information that is logged.  Can be
    # "default", "secure", or "verbose".
    #
    log_level                       "default"
    #
    ################################################################
    Olhando agora mais abaixo, terão a parte Audio Options. Tudo o que está entre eles, pode ficar como está.
    Por defeito, aparecerá algo assim:

    Código:
    ########################## 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
    #}
    Como a maior parte de nós usa ALSA, basta descomentar as linhas audio_output {, type "alsa" e name "My ALSA Device" E MUITO IMPORTANTE, descomentar aquele { que parece que está ali sozinho.

    Irá ficar algo assim:

    Código:
    ########################## 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
    }
    Mais a frente, a parte do Mixer irá ficar assim, se usarem ALSA, claro :)

    Código:
    ############################# 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"
    Chegam à parte dos Character Encodings e descomentam as duas linhas que lá estão, alterando para o que for preciso. No meu caso, ficou:

    Código:
    ###################### 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"
    #
    ################################################################
    Nas Other Options, descomentem o que lá está e deixem ficar :)

    Código:
    ######################### 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"
    #
    ################################################################
    Agora, gravem com o nome mpd.conf na pasta /etc. Optimo, já têm 90% do trabalho feito. Restam dois pequenos passos.

    Nunca percebi bem para que serve o grupo do mpd, mas mal não fará pertencer :)

    Código:
    # gpasswd -a esquiso mpd
    Finalmente, e se tudo correr bem, basta fazerem um simples

    Código:
    $ mpd --create-db
    ou
    # /etc/rc.d/mpd create-db
    ou
    # /etc/init.d/mpd create-db
    E a vossa biblioteca está indexada no MPD :)

    Resta apenas iniciar o MPD

    Código:
    # /etc/rc.d/mpd start
    ou
    # /etc/init.d/mpd start
    ou
    $ mpd
    Parabéns, já o podem usar. Ou melhor, precisam de um frontend. Isso é facil de escolher, mas veremos mais à frente qual escolher :)
     
    Última edição: 2 de Fevereiro de 2008
  3. esquiso

    esquiso Power Member

    3 - Overview dos Frontends

    O MPD é apenas um daemon, não o podemos controlar sem um frontend. Mas existem mais de uma dezena deles. Uns Web Based, outros GUI, outros CLI. Cabe-vos a escolha ao que melhor se adaptar às vossas necessidades.
    Uma lista completa pode sem encontrada aqui, está bastante bem dividida por categorias, aconselho-vos a visitar.

    Como os teclados gastam-se, e para não vos estar a massar, esta overview vai basear-se apenas em dois frontends. Um GUI (Sonata) e um CLI (MPC). Comecemos pelo Sonata.

    Sonata

    Talvez o mais usado dos GUIs para o MPD. E por alguma razão assim é. A combinação do GTK+ e Python da-lhe uma leveza bastante aceitável. O seu design limpo, que se entegra perfeitamente em ambientes GNOME (apesar de não estar limitado a) é uma mais valia.

    [​IMG]

    Mais screenshots podem ser encontrados aqui
    A página oficial é http://sonata.berlios.de/

    O método de instalação é em tudo semelhante ao resto

    Código:
    aptitude install sonata
    emerge sonata
    pacman -S sonata
    etc etc etc
    TIP (com um bocadinho de pub à mistura): para quem, como eu, não gostar da nova artwork do Sonata, podem ver a solução no post do meu blog.

    MPC

    Bem, não há muito para dizer sobre ele. É CLI, tem uma man e é simples de usar. Acho que chega :D

    A man está disponível aqui.

    [​IMG]

    Para instalar é a historia do costume :)
    Página oficial é http://musicpd.org/mpc.shtml
     
    Última edição: 2 de Fevereiro de 2008
  4. uterrorista

    uterrorista Suspenso

    Bom tutorial! ;)

    Uma dúvida: não consigo adicionar músicas ao mpd (sonata).
    em mpd.conf meti:
    mas quando lanço a aplicação não vejo música nenhuma..
     
  5. Heron

    Heron Power Member

    Fizeste "mpd --create-db"?
     
  6. uterrorista

    uterrorista Suspenso

    Fiz mas entretanto não mudei a pasta de áudio.
    Refiz esse comando e adicionei tudo à base de dados!
    Mas antes ainda tive de criar o ficheiro: /home/qaz/.mpd/mpd.db

    Mas ainda não consigo ver as musicas lá!

    Já agora tive este erro antes:
    Código:
    [email protected]:~$ sudo gpasswd -a qaz mpd
    [sudo] password for qaz:
    unknown group: mpd
    gpasswd: Permission denied.
    Obrigado.
     
    Última edição: 2 de Fevereiro de 2008
  7. esquiso

    esquiso Power Member

    Perguntas: tens o Sonata a conectar ao MPD? Tens o MPD a correr?
     
  8. InforMed

    InforMed Power Member

    É possível ter mais que uma pasta indexada???

    Obrigado!
     
  9. esquiso

    esquiso Power Member

    Algo do genero ~/music e ~/music2? Que eu saiba, não.
     
  10. uterrorista

    uterrorista Suspenso

    ???
    na consola escrevo sonata e lanço-o
     
  11. SL87

    SL87 Power Member

    Podes indexar apenas uma directoria e dentro dessa directoria tens "links" para outras.
    E assim sempre que quiseres indexar uma directoria diferente é só meter la um "link".
    Ver: man ln
     
  12. esquiso

    esquiso Power Member

    Mas o Sonata tem de partilhar das configs do MPD, estar conectado ao MPD e o MPD estar a correr para funcionar correctamente :)
     
  13. c3l5o

    c3l5o I'm cool cuz I Fold

    Aproveito para dar a conhecer um outro frontend! Muito útil!

    Eu já sabia que dava para o amarok mas nunca pensei que tb funcionasse com o MPD...

    E aqui está ele, o Foxy Tunes para o Firefox! Navega na net enquanto controlas o teu MPD!
    https://addons.mozilla.org/en-US/firefox/addon/219
     
  14. InforMed

    InforMed Power Member

    Bom... configurar isto no gutsy não foi fácil... mas finalmente consegui por isto a funcionar com o sonata!

    Vantagens: Consome poucos recursos e até tem a possibilidade de visualizar a letra da música....

    Gostei... mas o Amarok é sempre o Amarok... the best! :)
     
  15. uterrorista

    uterrorista Suspenso

    finalmente já esta a funcionar. :D
    instalei também o fronthead gmpc - bastante completo e tem o extra de poder atribuir teclas de atalho!
     
  16. _kossak_

    _kossak_ Power Member

    Última edição: 7 de Fevereiro de 2008
  17. c3l5o

    c3l5o I'm cool cuz I Fold

    o sonata já traz o audioscrobbler
     
  18. LnxSlck

    LnxSlck Power Member

    Já alguém tentou alterar as Tags dos ficheiros com o sonata? Eu instalei o taglib mas nada
     
  19. esquiso

    esquiso Power Member

    Sim, aqui funciona na perfeição. Tens o tagpy instalado também?
     
  20. LnxSlck

    LnxSlck Power Member

    Acho que não, vou experimentar
     

Partilhar esta Página