Jump to content

Amarok/Manual/Vários/Barra de atmosfera

From KDE UserBase Wiki
Revision as of 02:32, 27 August 2012 by André Marcelo Alvarenga (talk | contribs) (Created page with "Baseado no script acima, uma alternativa para CPUs com mais de um núcleo:")

A barra de atmosfera

A Barra de atmosfera retorna oficialmente ao Amarok desde a versão 2.2.2. Ela mostra-lhe a "atmosfera" de uma faixa, onde você pode usar para descobrir quando algo de interessante ocorrer na música.

Para o Amarok analisar os seus arquivos de música para criar barras de atmosfera, você precisa do programa Moodbar (veja abaixo para transferências e pacotes binários).

O pacote Moodbar necessita do GStreamer e de vários plugins que dependem dos tipos de arquivos que usar (veja os Tipos de arquivo suportados). Você não precisa do pacote phonon-backend-gstreamer para criar arquivos '.mood'.

Existem duas partes da nova implementação do Moodbar: o pacote Moodbar, que contém um programa que recebe um arquivo de música e gera um arquivo '.mood', e o código de suporte no código-fonte do Amarok, que executa o binário e mostra a barra de atmosfera. O pacote Moodbar depende das bibliotecas do GStreamer. Sem o pacote Moodbar, o Amarok não consegue gerar as barras de atmosfera da sua música.

Como alternativa, existe um novo script que irá criar arquivos moodbar para as faixas existentes em uma lista de músicas do Amarok; esta é uma exceção ao descrito acima. O script não precisa de nada, apensa que o Amarok funcione, mas só cria os arquivos '.mood' quando forem reproduzidos na Lista de músicas.

O Moodbar é derivado do trabalho de Gavin Wood e Simon O'Keefe, que escreveram os algoritmos; a sua publicação original está aqui.

Resumo de requisitos

  • O executável do Moodbar, no seu PATH (deve aparecer se executar
    which moodbar
    na linha de comando) — Lembre-se de configurar o pacote do Moodbar com
    ./configure --prefix=`pkg-config --variable=prefix gstreamer-0.10`
  • A biblioteca do GStreamer 0.10 e os plugins dos formatos onde você deseja que o Moodbar pode analisar.
  • A biblioteca Fastest Fourier Transform In The West (fftw.org) FFTW na versão 3.0 ou superior (pelo menos a versão de ponto flutuante de precisão simples - libfftw3f) — Se a sua plataforma não tiver este suporte, ou caso precise compilar a sua própria versão, lembre-se de configurar o pacote FFTW com o comando
    ./configure --enable-single
  • Uma versão do Amarok com a opção Usar atmosfera na seção Geral da tela de configuração. Isso corresponde

às versões 1.4.4 ou posteriores da série 1.4 ou às versões 2.2.2 ou posteriores da série 2.x.

Informação

Os sistemas com gerenciadores de pacotes devem instalar automaticamente os plugins do GStreamer e o FFTW em conjunto com o pacote Moodbar; esta informação só é fornecida para as pessoas que precisem de compilar do código ou instalar os pacotes manualmente.


Utilização

Atualmente, os arquivos '.mood' devem ser gerados manualmente. Para fazer isto na sua coleção inteira, use o Moodbar Script de geração de arquivos Moodbar, descrito em baixo.

Para ativar a visualização das barras de atmosfera no Amarok, ative-as na configuração: Configurações -> Configurar o Amarok -> Geral -> Mostrar barra de atmosfera na barra de progresso. Estas barras devem agora aparecer nas barras da faixa na janela do reprodutor e na Lista de músicas; existirá também um campo de atmosfera que poderá adicionar aos seus leiautes da lista de músicas.

Instalação

Pacotes do código-fonte

Última versão: moodbar-0.1.2.tar.gz — este é o pacote de código do Moodbar, que contém o programa Moodbar (que gera arquivos '.mood' a partir dos arquivos de música) e um plugin do GStreamer que faz o resto do trabalho. O pacote Moodbar necessita do GStreamer 0.10.* instalado, além da versão 0.10.* de vários plugins. Certifique-se de instalar o pacote Moodbar no mesmo prefixo que o GStreamer — siga as instruções do arquivo INSTALL.

Se encontrar algum erro, por favor, envie um relatório para o bugs.kde.org.

Pacotes do Debian

Está disponível agora um pacote do Moodbar para o Debian instável. Basta executar

apt-get install moodbar

Você provavelmente terá que instalar os pacotes gstreamer0.10-plugins-ugly, gstreamer0.10-plugins-good e gstreamer0.10-plugins-bad para suportar o formato.

Pacotes do Kubuntu e Ubuntu

Um pacote para o Moodbar está disponível no repositório de pacotes oficial: basta garantir que a seção Universe está ativa (como deve estar por padrão). Instale o pacote 'moodbar' com o seu gerenciador de pacotes preferido (KPackageKit, Aptitude, Adept, Synaptic). Provavelmente você também deve querer instalar o gstreamer0.10-plugins-ugly, o gstreamer0.10-plugins-good e o gstreamer0.10-plugins-bad para suporte a vários formatos.

Ou, para o instalar, cole isto no Firefox ou Konqueror e tecle Enter.

apt://moodbar,gstreamer0.10-plugins-ugly,gstreamer0.10-plugins-good,gstreamer0.10-plugins-bad?section=universe?refresh=yep
Pacotes ebuild do Gentoo

O Moodbar está disponível no Portage, basta executar o

emerge moodbar

Não são mais necessários ebuilds não oficiais.

Versões em RPM

Se você for usuário de uma distribuição baseada em RPM, você poderá compilar um '.rpm' usando o comando rpmbuild com ">gstreamer-plugins-moodbar.spec. O pacote executável ficará disponível em breve para a distribuição PLD-linux.

Fedora

No Fedora 7 e superiores (até o 16, no momento em que este documento foi escrito), o Moodbar está disponível nos repositórios predefinidos. Basta instalá-lo com a interface do PackageKit ou com o seguinte comando do yum:

yum install moodbar
Pacotes do openSUSE

No openSUSE 11.0 e posteriores, instale automaticamente os seguintes pacotes:

  • gstreamer-0_10-fluendo-mp3
  • gstreamer-0_10-plugins-base

Da mesma forma, se as suas músicas tiverem etiquetas ID3, você precisa instalar:

  • gstreamer-0_10-plugins-good
Instalação do Moodbar

1-Clique em 'Instalar' no openSUSE 11. - basta escolher a sua versão e o procedimento de instalação fará o resto:

Para instalar, adicione o repositório correto para a sua versão do openSUSE no YaST, certificando-se de que os seguintes pacotes são instalados:

  • gstreamer-0_10-plugins-good
  • gstreamer-0_10-plugins-ugly
  • gstreamer-0_10-plugins-moodbar
  • mad

Para mais detalhes sobre a adição de repositórios, veja a Wiki do openSUSE.

Se estiver usando a ferramenta de gerenciamento de aplicativos Smart, adicione o canal digitando na linha de comandos (lembre-se de alterar a URL para corresponder à sua versão do openSUSE):

smart channel --add http://software.opensuse.org/download/home:/d7/openSUSE_10.2/home:d7.repo

Depois digite

smart update home:d7

Agora você poderá instalar os pacotes necessários com o comando

smart install gstreamer10-plugins-moodbar

As dependências são resolvidas automaticamente.

Pacotes da Mandriva

Primeiramente, você precisa adicionar os repositórios PLF. Para isso, vá a easyurpmi.zarb.org e adicione-os à sua lista de repositórios.

  • gstreamer0.10-moodbar
  • gstreamer0.10-plugins-ugly
  • gstreamer0.10-plugins-good
  • gstreamer0.10-plugins-bad
Arch Linux

Existe um PKGBUILD para o Moodbar no Arch User Repository (AUR) disponível aqui.

Para mais informações sobre o AUR e como lidar com os PKGBUILDs, veja as Recomendações dos usuários do AUR.

FreeBSD

Existe aqui uma versão: audio/gstreamer-plugins-moodbar.

Para instalar essa versão:

cd /usr/ports/audio/gstreamer-plugins-moodbar/ && make install clean

Para adicionar o pacote:

pkg_add -r gstreamer-plugins-moodbar

Script de geração de arquivo do Moodbar

Aqui está um script simples em Bash que irá adicionar os arquivos .mood à sua coleção. Ele adiciona arquivos mood para todos os arquivos que corresponderem às extensões na pasta atual e em todas as subpastas e, por isso, será melhor executá-lo a partir da base da sua pasta de músicas.

#!/bin/bash
 DIR=${1:-.}
 LAST=~/.moodbar-lastreadsong
 C_RET=0
 
 control_c()        # run if user hits control-c
 {
   echo "" > "$LAST"
   echo "Exiting..."
   exit
 }
 
 if [ -e "$LAST" ]; then
   read filetodelete < "$LAST"
   rm "$filetodelete" "$LAST"
 fi
 exec 9< <(find "$DIR" -type f -regextype posix-awk -iregex '.*\.(mp3|ogg|flac|wma)') # you may need to add m4a and mp4
 while read i
 do
   TEMP="${i%.*}.mood"
   OUTF=`echo "$TEMP" | sed 's#\(.*\)/\([^,]*\)#\1/.\2#'`
   trap 'control_c "$OUTF"' INT
   if [ ! -e "$OUTF" ] || [ "$i" -nt "$OUTF" ]; then
     moodbar -o "$OUTF" "$i" || { C_RET=1; echo "An error occurred!" >&2; }
   fi
 done <&9
 exec 9<&-
 
 exit $C_RET

Copie e cole o texto acima em um arquivo de texto chamado moodbar.sh na sua pasta de músicas e execute os seguintes comandos:

cd /caminho/das/músicas
 bash moodbar.sh

Alternativamente, se o indicado acima não funcionar, você pode tentar:

chmod +x moodbar.sh
 ./moodbar.sh

Isto pode levar bastante tempo em coleções grandes! Repare que as barras de atmosfera não irão aparecer no Amarok até que ele volte a analisar a coleção. Os arquivos mood gerados serão arquivos com ponto (p.ex., com um ponto final como prefixo) ou arquivos ocultos - tenha isto em mente se você não conseguir encontrá-los.

Baseado no script acima, uma alternativa para CPUs com mais de um núcleo:

#!/bin/bash
 NUMCPU="$(grep ^processor /proc/cpuinfo | wc -l)"
 
 find . -type f -regextype posix-awk -iregex '.*\.(mp3|ogg|flac|wma)' | while read i ; do
 
        while [ `jobs -p | wc -l` -ge $NUMCPU ] ; do
                sleep 0.1
        done
 
        TEMP="${i%.*}.mood"
        OUTF=`echo "$TEMP" | sed 's#\(.*\)/\([^,]*\)#\1/.\2#'`
        if [ ! -e "$OUTF" ] ; then
                moodbar -o "$OUTF" "$i" &
        fi
 done

There is another script at Github, which shows previews of the generated mood files on the command line while they are being generated. Read more about it at the author's blog.

Troubleshooting

  • If the Moodbar executable gives you a bus error, that almost always means it can't decode (or can't find) your file. Take a look at the supported file types below for ideas on which GStreamer plugins to install. You can also try the command below to test whether GStreamer can decode your file:
    gst-launch filesrc location=[file] ! decodebin ! fakesink
  • If you are using the ffmpeg plugin to decode mp3s, you may also receive mysterious bus errors. The solution is to stop using the ffmpeg plugin, as it is extremely buggy — use mad instead.
  • If the Moodbar executable tells you that it can't find an element — i.e., it gives an error message like
    Could not create element of type fftwspectrum, please install it.
    — that usually means that you either don't have the required plugins installed (see the plugin list here), or that you didn't install the Moodbar package in the same prefix as GStreamer. If libmoodbar.so and libgstdecodebin.so are not in the same directory, then Moodbar is not installed in the same prefix as GStreamer. Please read the INSTALL file for instructions on how to configure the moodbar package correctly. Alternatively, if you know what you're doing, it may be easier for you to take a look at the GST_PLUGIN_PATH environment variable.
  • If you're wondering why the Moodbar isn't working, either not working at all or not working for a particular file, run the command below, where [file] is a music file:
    moodbar -o test.mood [file]
  • If you have multiple versions of GStreamer installed, make sure all of the required plugins are installed for version 0.10.* -- different versions cannot use each other's plugins.

Supported Filetypes

You will need various Gstreamer plugins to enable Moodbar to analyze your files. Here is a list of the plugins you will need; make sure to install the 0.10.* version of each plugin:

Filetype Required Plugin Note
All gstreamer-0.10.*, gst-plugins-base, gst-plugins-good
mp3 gst-plugins-mad (in gst-plugins-ugly) ffmpeg plugin has problems; do not use for mp3
ogg gst-plugins-vorbis, gst-plugins-ogg
flac gst-plugins-flac
mp4 gst-plugins-faad, gst-plugins-bad
musepack gst-plugins-musepack
wma gst-plugins-ffmpeg

Screenshots

Moodbar in progress slider in Amarok 2
Moodbar in progress slider in Amarok 2