Capítulo 7. Vários

Os tópicos que não se encaixarem noutro local, como a Barra do Espírito, o Amarok noutras plataformas, a resolução de problemas, problemas comuns e a FAQ:

A Barra de Espírito

The Moodbar officially returns as of Amarok 2.2.2. It shows you the mood of a track, which you can then use to figure out when something interesting happens in the song.

Para o Amarok analisar s seus ficheiros de m´música para criar barras de espírito, irá necessitar do programa Moodbar (ver em baixo as transferências e os pacotes binários).

O pacote Moodbar necessita do GStreamer e de vários 'plugins' com base nos tipos de ficheiros que usar (veja os Tipos de ficheiros suportados). Não irá necessitar do pacote 'phonon-backend-gstreamer' para criar ficheiros '.mood'.

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

Como alternativa, existe um novo programa que irá criar ficheiros do Moodbar para as faixas numa lista de reprodução do Amarok; esta é uma excepção ao descrito acima. O programa não precisa de nada, somente que o Amarok funcione, mas só cria os ficheiros '.mood' quando forem tocados na Lista de Reprodução.

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

Resumo dos Requisitos

  • O binário do Moodbar, na sua PATH (deverá aparecer se executar o comando , which moodbar numa consola) — Lembre-se de configurar o Moodbar com o ./configure --prefix=`pkg-config --variable=prefix gstreamer-0.10`

  • A biblioteca do GStreamer 0.10 e os 'plugins' dos formatos onde deseja que o Moodbar possa analisar.

  • A biblioteca Fastest Fourier Transform In The West (http://www.fftw.org) FFTW na versão 3.0 ou superior (pelo menos a versão de vírgula flutuante de precisão simples - libfftw3f) — Se a sua plataforma não tiver este suporte, ou caso precise de 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 os estados de espírito na secção Geral do ecrã de configuração. Isso corresponde às versões 1.4.4 ou posteriores na série 1.4 ou à 2.2.2 ou posteriores na série 2.x.

Nota

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

Utilização

De momento, os ficheiros '.mood' deverão ser gerados manualmente. Para o fazer para a sua colecção inteira, use o Programa de Geração de Ficheiros do Moodbar, descrito em baixo.

Para activar a visualização das barras de espírito no Amarok, active-as na configuração: ConfiguraçãoConfigurar o AmarokGeralMostrar a Barra de Espírito na Barra de Progresso. Estas barras deverão agora aparecer nas barras da faixa na janela do leitor e na janela da Lista de reprodução; existirá também um campo de espírito que poderá adicionar às suas disposições da lista de reprodução.

Instalação

Pacotes de Código

Ú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 ficheiros '.mood' a partir dos ficheiros de música) e um 'plugin' do GStreamer que faz o resto do trabalho. O pacote Moodbar necessita do GStreamer 0.10.* instalado, para além da versão 0.10.* de vários 'plugins'. Certifique-se que instala o pacote Moodbar no mesmo prefixo que o GStreamer — siga as instruções no ficheiro INSTALL.

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

Pacotes da Debian

Está disponível agora um pacote do Moodbar para o Debian instável. Basta executar apt-get install moodbar . Provavelmente terá de 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

Está disponível um pacote do Moodbar no repositório de pacotes oficial: basta garantir que a secção do Universe está activa (como deverá estar por omissão). Basta instalar o pacote 'moodbar' com o seu gestor de pacotes preferido (KPackageKit, Aptitude, Adept, Synaptic). Provavelmente também irá querer instalar o 'gstreamer0.10-plugins-ugly', o 'gstreamer0.10-plugins-good' e o 'gstreamer0.10-plugins-bad' para um suporte de vários formatos.

Ou, para o instalar, cole isto no Firefox ou Konqueror e carregue em 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. Os pacotes não oficiais já não são necessários.

Versões em RPM

Se for um utilizador de uma distribuição baseada no RPM, poderá compilar um .rpm com o comando 'rpmbuild'

gstreamer-plugins-moodbar.spec. O pacote binário ficará disponível em breve para a distribuição PLD-linux.

Fedora

No Fedora 7 e superiores (até ao 16, na altura 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 marcas ID3, deverá instalar

  • gstreamer-0_10-plugins-good

Instalação do Moodbar

1-Carregue 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 correcto para a sua versão do openSUSE no YaST, certificando-se 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 a usar a ferramenta de gestão de aplicações Smart, adicione o canal seguinte na linha de comandos, alterando o 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 indique smart update home:d7 Agora poderá instalar os pacotes necessários com o comando smart install gstreamer10-plugins-moodbar As dependências são resolvidas automaticamente.

Pacotes do Mandriva

Primeiro que tudo, terá de adicionar os repositórios PLF; para isso, vá a easyurpmi.zarb.org e adicione-os à sua lista de repositórios.

Depois, instale simplesmente os seguintes pacotes:

  • 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), que está disponível aqui.

Para mais informações sobre o AUR e como lidar com os PKGBUILD's, veja as Recomendações dos Utilizadores 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

Programa de Geração do Ficheiro do Moodbar

Aqui está um programa simples em Bash que irá adicionar os ficheiros .mood a toda a sua colecção. Irá adicionar ficheiros '.mood' para todos os ficheiros que corresponderem às extensões na pasta actual e a todas as sub-pastas, pelo que será melhor executá-lo a partir da base da sua pata de músicas.

#!/bin/bash
 DIR=${1:-.}
 LAST=~/.moodbar-lastreadsong
 C_RET=0
 control_c()        # executar se o utilizador carregar em Control-C
 {
   echo "" > "$LAST"
   echo "A sair..."
   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)') # poderá ter de adicionar o m4a e mp4
 while read i
 do
   TEMP="${i%.*}.mood"
   OUTF=`echo "$TEMP" | sed 's#\(.*\)/\([^,]*\)#\1/.\2#'`
   trap 'control_c "$OUTF"' INT
   if [ ! -e "$OUTF" ]
     moodbar -o "$OUTF" "$i"
   fi
 done <&9
 exec 9<&-
 exit $C_RET

Copie e cole o texto acima num ficheiro de texto chamado 'moodbar.sh' na sua pasta de música e execute os seguintes comandos:

cd /local/da/música bash moodbar.sh

Em alternativa, se a versão anterior não funcionar, poderá tentar:

chmod +x moodbar.sh ./moodbar.sh

Isto poderá levar bastante tempo para colecções grandes! Repare que as barras do estado de espírito não irão aparecer no Amarok até que este volte a sondar a colecção. Os ficheiros '.mood' gerados serão ficheiros com ponto (isto é, antecedidos de um ponto final) ou ficheiros escondidos - por isso, tenha isso em mente se não os conseguir encontrar.

Baseado no seguinte programa, uma alternativa para CPU's com vários núcleos:

#!/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

Existe outro programa no Github, que mostra antevisões dos ficheiros '.mood' gerados na linha de comandos, enquanto são gerados. Leia mais sobre o assunto no 'blog' do autor.

Resolução de Problemas

  • Se o executável Moodbar lhe devolver um bus error (erro de barramento), isso significa quase de certeza que não consegue descodificar (ou encontrar) o seu ficheiro. Dê uma vista de olhos nos tipos de ficheiros suportados para obter algumas ideias de quais os 'plugins' do GStreamer a instalar. Poderá também tentar o comando abaixo para testar se o GStreamer consegue descodificar o seu ficheiro:gst-launch filesrc location=[ficheiro] ! decodebin ! fakesink

  • Se estiver a usar o 'ffmpeg' para descodificar os MP3's, poderá adicionar erros de barramento misteriosos. A solução é parar de usar o 'ffmpeg', dado que é extremamente instável — use o 'mad' em alternativa.

  • 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.

  • Se não souber porque é que o Moodbar não está a funcionar parcialmente ou de todo para um dado ficheiro, execute o comando abaixo, onde o [ficheiro] é um ficheiro de música qualquer: moodbar -o teste.mood [ficheiro]

  • Se tiver várias versões do GStreamer instaladas, certifique-se que todos os 'plugins' necessários estão instalados para a versão 0.10.* -- outras versões diferentes não podem usar os 'plugins' desta.

Tipos de Ficheiros Suportados

Irá necessitar de vários 'plugins' do GStreamer para activar o Moodbar para análise dos seus ficheiros. Aqui está uma lista com os 'plugins' que irá necessitar; certifique-se que instala a versão 0.10.* de cada 'plugin':

Tipo de Ficheiro'Plugin' NecessárioNota

Todos

gstreamer-0.10.*, gst-plugins-base, gst-plugins-good

 

MP3

gst-plugins-mad (no 'gst-plugins-ugly')

O 'plugin' 'ffmpeg' tem problemas; não use para o '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

 

Imagens

A barra de espírito na barra de evolução do Amarok 2

A barra de espírito na barra de evolução do Amarok 2