Amarok / Manual / Różne / Moodbar

From KDE UserBase Wiki
Revision as of 16:00, 26 November 2011 by Kustosz (talk | contribs) (Created page with "{| border="1" cellpadding="5" ! Typ pliku !! Potrzebny plugin !! Uwagi |- | Wszystkie || gstreamer-0.10.*, gst-plugins-base, gst-plugins-good |- | mp3 || gst-plugins-mad (w gst-p...")

Pasek nastroju

Pasek nastroju oficjalnie powraca w Amaroku 2.2.2. Jest to narzędzie do wykrywania "nastroju" utworu, które pozwala zobaczyć w którym miejscu piosenki dzieje się coś ciekawego.

Aby Amarok analizował twoje pliki muzyczne pod kątem nastroju, potrzebny będzie program Moodbar (poniżej informacje o pobieraniu plików źródłowych oraz pakietów binarnych).

Pakiet Moodbar wymaga GStreamera oraz różnych pluginów, zależnie od tego, jakich typów plików używasz (zobacz: Obsługiwane pliki). Pakiet phonon-backend-gstreamer nie będzie potrzebny do tworzenia plików .mood.

Nowa implementacja Moodbara składa się z dwóch części: pakietu Moodbar, który zawiera program generujący pliki .mood dla utworów oraz dodatkowego kodu w źródle Amaroka, który włącza i wyświetla pasek nastroju. Pakiet Moodbar wymaga biblioteki GStreamer. Bez pakietu Moodbar Amarok nie będzie analizował nastroju Twojej muzyki.

Alternatywą jest nowy skrypt, który może tworzyć pliki Moodbara dla utworów na liście odtwarzania Amaroka. Stanowi on wyjątek od powyższych wymagań - do działania nie wymaga niczego poza Amarokiem, jednak tworzy pliki .mood tylko dla plików z listy odtwarzania.

Moodbar istnieje dzięki Gavinowi Woodowi oraz Simonowi O'Kneefe, którzy stworzyli potrzebne algorytmy. Ich oryginalną pracę można znaleźć tutaj.

Wymagania

  • Wykonywalny plik Moodbar w PATH (powinien wyświetlić się po wpisaniu
    which moodbar
    w konsoli) -- pamiętaj o konfigurowaniu Moodbara z
    ./configure --prefix=`pkg-config --variable=prefix gstreamer-0.10`
  • Biblioteka GStreamer 0.10 i pluginy dla formatów, z którymi będziesz używał Moodbara.
  • Biblioteka Fastest Fourier Transform In The West (http://www.fftw.org) FFTW w wersji 3.0 lub wyższej (numer wersji z co najmniej jednym miejscem po przecinku - libfftw3f) -- Jeśli Twój system nie zapewnia tej biblioteki, lub potrzebujesz skompilować własną wersję, pamiętaj by konfigurować z
    ./configure --enable-single
  • Wersja Amaroka z opcją Pokaż pasek nastroju w sekcji Ogólne w menu konfiguracji. To znaczy wersja 1.4.4 lub wyższa dla serii 1.4 lub 2.2.2 lub wyższa dla serii 2.x.

Informacja

Systemy zawierające menedżer pakietów powinny automatycznie instalować pluginy GStreamer oraz FFTW razem z Moodbarem. Powyższa informacja jest zamieszczona głównie dla osób, które chcą lub muszą skompilować program ze źródła lub ręcznie zainstalować pakiety.


Sposób użycia

Obecnie pliki .mood są generowane ręcznie. Aby dokonać tego dla całej swojej kolekcji użyj skryptu do generowania plików Moodbara opisanego poniżej.

Aby włączyć wyświetlanie pasków nastroju w Amaroku, zaznacz odpowiednią opcję w menu konfiguracyjnym: Ustawienia -> Konfiguruj -> Ogólne -> Pokaż pasek nastroju w suwaku postępu. Pasek nastroju powinien się teraz pojawić w suwaku postępu w oknie odtwarzacza i w oknie playlisty. Pojawi się także pole "nastrój", które będziesz mógł dodać do swoich szablonów list odtwarzania.

Instalacja

Pliki źródłowe
Najnowsze wydanie: moodbar-0.1.2.tar.gz -- pakiet źródłowy Moodbar, który zawiera program Moodbar (generujący pliki .mood z plików muzycznych) oraz niezbędny do działania plugin GStreamer. Pakiet Moodbar wymaga GStreamera 0.10.* oraz wersji 0.10.* odpowiednich pluginów. Koniecznie zainstaluj pakiet Moodbar dokładnie w tym samym miejscu gdzie GStreamer -- trzymaj się instrukcji zawartych w pliku INSTALL.

Jeśli znajdziesz jakiekolwiek błędy, prosimy o raport na bugs.kde.org.

Pakiety Debiana

Pakiet Moodbar jest dostępny w repozytorium Debiana. Po prostu użyj

apt-get install moodbar

Prawdopodobnie będą Ci też potrzebne: gstreamer0.10-plugins-ugly, gstreamer0.10-plugins-good i gstreamer0.10-plugins-bad do obsługi różnych formatów plików.

Pakiety dla Ubuntu oraz Kubuntu

Pakiet Moodbar jest dostępny w oficjalnym repozytorium -- upewnij się tylko, że repozytorium universe jest aktywne (jest tak domyślnie). Zainstaluj pakiet 'moodbar' przy pomocy swojego ulubionego menedżera pakietów (Kpackageit, Aptitude, Adept, Synaptic). Prawdopodobnie będą Ci też potrzebne: gstreamer0.10-plugins-ugly, gstreamer0.10-plugins-good i gstreamer0.10-plugins-bad do obsługi różnych formatów plików.

Lub wklej poniższą linię w Firefoksie lub Konquerorze i wciśnij Enter.

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

Moodbar jest dostępny w Protage, po prostu użyj

emerge moodbar

Nieoficjalne ebuildy nie są już więcej potrzebne.

Paczki RPM

Jeśli jesteś użytkownikiem dystrybucji opartej na paczkach RPM, możesz, używając 'rpmbuild', skompilować paczkę z gstreamer-plugins-moodbar.spec. Pakiet będzie niebawem dostępny w dystrybucji PLD-linux.

Fedora

W Fedorze 7 oraz nowszych (do 16 w momencie pisania artykułu) Moodbar jest dostępny w domyślnym repozytorium. Po prostu zainstaluj go używając swojego PackageKit GUI lub przy po pomocy następującej komendy:

yum install moodbar
Pakiety openSUSE

openSUSE 11.0 oraz nowsze automatycznie instalują następujące pakiety:

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

Jeśli Twoje piosenki zawierają tagi ID3 musisz dodatkowo zainstalować

  • gstreamer-0_10-plugins-good

Instalacja Moodbara

Szybka instalacja dla openSUSE 11.* - po prostu wybierz odpowiednią wersję, a instalator wykona całą resztę za Ciebie:

Aby zainstalować dodaj odpowiednie dla Twojej wersji openSUSE repozytorium do YaST oraz upewnij się, że następujące pakiety są zainstalowane:

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

Jeśli potrzebujesz informacji na temat dodawania repozytoriów odwiedź openSUSE wiki.

Jeśli używasz narzędzia do zarządzania oprogramowaniem Smart dodaj kanał, używając następującej komendy (pamiętaj o zmianie URL na odpowiedni dla Twojej wersji openSUSE):

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

Następnie wpisz

smart update home:d7

Teraz możesz zainstalować wymagane pakiety wpisując

smart install gstreamer10-plugins-moodbar

Zależności zostaną doinstalowane automatycznie.

Pakiety Mandrivy

Po pierwsze musisz dodać repozytoria PLF. Wejdź na easyurpmi.zarb.org i dodaj je do swojej listy repozytoriów. Potem po prostu zainstaluj następujące pakiety:

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

W Arch User Repository (AUR) znajduje się PKGBUILD dla Moodbara, dostępny tutaj.

Więcej informacji na temat AUR oraz używania PKGBUILDów w AUR User Guidelines.

FreeBSD

Port znajduje się audio/gstreamer-plugins-moodbar tutaj.

Aby zainstalować port:

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

Aby dodać pakiet:

pkg_add -r gstreamer-plugins-moodbar

Skrypt do generowania plików Moodbara

Poniżej znajduje się prosty skrypt basha, który doda pliki .mood do całej Twojej kolekcji. Dodaje on pliki do każdego pliku o odpowiednim rozszerzeniu w obecnym katalogu oraz wszystkich podkatalogach, zatem najlepiej jest uruchomić go w głównym katalogu z muzyką.

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

Skopiuj i wklej cały skrypt do pliku tekstowego o nazwie moodbar.sh w Twoim katalogu z muzyką i uruchom następujące komendy:

cd /path/to/music
 bash moodbar.sh

Gdyby powyższy sposób nie zadziałał, możesz spróbować:

chmod +x moodbar.sh
 ./moodbar.sh

Dla dużych kolekcji może to wymagać niezwykle długiego czasu! Pamiętaj, że paski nastroju nie pojawią się w Amaroku dopóki Amarok nie przeskanuje ponownie kolekcji. Utworzone pliki mood będą poprzedzone kropkami, lub będą plikami ukrytymi - pamiętaj o tym jeśli nie będziesz mógł znaleźć żadnego z nich.

Poniżej znajduje się oparta na powyższym skrypcie alternatywa dla procesorów wielordzeniowych:

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

Na Githubie znajduje się inny skrypt, wyświetlający podgląd tworzonych plików w konsoli, w momencie ich tworzenia. Możesz dowiedzieć się więcej na jego temat na blogu autora.

Rozwiązywanie problemów

  • Jeśli Moodbar zwraca bus error, to prawie zawsze oznacza, że nie może odczytać (lub znaleźć) pliku. Przejrzyj obsługiwane typy plików by wiedzieć jakich pluginów GStreamer potrzebujesz. Możesz także wykonać poniższą komendę, by sprawdzić czy GStreamer potrafi odczytać plik:
    gst-launch filesrc location=[file] ! decodebin ! fakesink
  • Jeśli używasz plugina ffmpeg do obsługi plików mp3 możesz otrzymywać dziwne błędy bus error. Rozwiązaniem jest zaprzestanie używania ffmpeg, ze względu na niezliczoną ilość błędów, które zawiera -- w zamian używaj mad.
  • Jeśli Moodbar informuje, że nie może znaleźć danego elementu, to znaczy wyświetla błąd podobny do:
    Could not create element of type fftwspectrum, please install it.

to zwykle oznacza, że albo nie zainstalowałeś odpowiedniego pluginu (zobacz listę pluginów tutaj), albo zainstalowałeś Moodbara gdzie indziej niż GStreamera. Druga opcja ma miejsce jeśli libmoodbar.so i libgstdecodebin.so są w różnych katalogach. Przeczytaj INSTALL by uzyskać instrukcję o poprawnej instalacji moodbara. Z drugiej strony, jeśli wiesz co robisz, prostszym wyjściem może być zmodyfikowanie zmiennej środowiskowej GST_PLUGIN_PATH.

  • Jeśli zastanawiasz się dlaczego Moodbar nie działa poprawnie (w ogóle lub tylko dla danego pliku) uruchom poniższą komendę ([file] to nazwa pliku z muzyką):
    moodbar -o test.mood [file]
  • Jeśli masz zainstalowane kilka wersji GStreamer upewnij się, że wszystkie potrzebne pluginy są zainstalowane dla wersji 0.10.* -- różne wersje nie mogą używać swoich pluginów.

Obsługiwane typy plików

Będziesz potrzebował różnych pluginów GStreamer by umożliwić Moodbarowi analizę plików. Poniżej znajduje się lista pluginów, których możesz potrzebować. Upewnij się, że instalujesz wersję 0.10.* każdego z nich:

Typ pliku Potrzebny plugin Uwagi
Wszystkie gstreamer-0.10.*, gst-plugins-base, gst-plugins-good
mp3 gst-plugins-mad (w gst-plugins-ugly) ffmpeg sprawia problemy - nie używać dla plików 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