Amarok / Manual / Różne / Moodbar

From KDE Wiki Sandbox
< Amarok‎ | Manual‎ | Various
Revision as of 15:54, 16 May 2012 by Annew (talk | contribs)

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.

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

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

|- | 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 |}

Zrzuty ekranu

Pasek nastroju w suwaku postępu w Amaroku 2
Pasek nastroju w suwaku postępu w Amaroku 2