Amarok / Manual / Różne / Moodbar

    From KDE UserBase Wiki
    Revision as of 16:11, 26 November 2011 by Kustosz (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.

    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

    Zrzuty ekranu

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