Amarok / Manual / Różne / Moodbar
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ą 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.
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:
. 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