Amarok/Manual/Various/Moodbar: Difference between revisions
Tuomas Nurmi (talk | contribs) No edit summary |
(added subpage anchor) |
||
(4 intermediate revisions by 3 users not shown) | |||
Line 21: | Line 21: | ||
<!--T:7--> | <!--T:7--> | ||
The '''Moodbar''' is due to the work of Gavin Wood and Simon O'Keefe, who designed the algorithms; their original paper is [http://cratoo.de/amarok/ismir-crc.pdf here]. | The '''Moodbar''' is due to the work of Gavin Wood and Simon O'Keefe, who designed the algorithms; their original paper is [http://cratoo.de/amarok/ismir-crc.pdf here]. | ||
</translate><span id="Summary of Requirements"></span> <translate> | |||
==== Summary of Requirements ==== <!--T:8--> | ==== Summary of Requirements ==== <!--T:8--> | ||
<!--T:9--> | <!--T:9--> | ||
* The '''Moodbar''' binary, in your PATH (it should be listed upon running {{Input|1=which moodbar}}from a console) — Remember to configure the '''Moodbar''' package with {{Input|1=./ | * The '''Moodbar''' binary, in your PATH (it should be listed upon running {{Input|1=which moodbar}}from a console) — Remember to configure the '''Moodbar''' package with proper path, e.g. build and install with commands {{Input|1=./autogen.sh --prefix=`pkg-config --variable=prefix gstreamer-1.0` && make && sudo make install}} | ||
<!--T:10--> | <!--T:10--> | ||
* The GStreamer 0 | * The GStreamer 1.0 library and [[Special:myLanguage/Amarok/Manual/Various/Moodbar#Supported Filetypes|plugins]] for the formats you want '''Moodbar''' to be able to analyse. (An earlier GStreamer 0.10 based version is also still available for some distributions) | ||
<!--T:11--> | <!--T:11--> | ||
Line 37: | Line 39: | ||
<!--T:13--> | <!--T:13--> | ||
{{Info|Systems with package managers should automatically install the GStreamer plugins and FFTW along with the Moodbar package; this information is provided mostly for people who want or need to compile from source or manually install packages.}} | {{Info|Systems with package managers should automatically install the GStreamer plugins and FFTW along with the Moodbar package if available; this information is provided mostly for people who want or need to compile from source or manually install packages, or where the distribution specific instructions are outdated and no updated moodbar package is yet available.}} | ||
==== Usage ==== <!--T:14--> | ==== Usage ==== <!--T:14--> | ||
Line 54: | Line 56: | ||
<!--T:19--> | <!--T:19--> | ||
:Latest release: [ | :Latest release: [https://github.com/Mazhoon/moodbar/archive/v0.1.4.tar.gz moodbar-0.1.4.tar.gz] — this is the Moodbar source package, which contains the '''Moodbar''' program (which generates .mood files from music files), and a GStreamer plugin that does the work. The Moodbar package needs GStreamer 1.0.* installed, plus the 1.0.* version of [[Special:myLanguage/Amarok/Manual/Various/Moodbar#Supported Filetypes|various plugins]]. Be sure to install the Moodbar package into the ''same prefix'' as GStreamer — follow the instructions in [[Special:myLanguage/Amarok/Manual/Various/Moodbar#Summary_of_Requirements | the summary of requirements chapter]]. The 0.1.4 is a a fork of original 0.1.2 sources, updated to use GStreamer 1.0. The old 0.1.2 sources are not reliably available online any more, but packages might be still available for some distributions. | ||
<!--T:20--> | <!--T:20--> | ||
Line 64: | Line 64: | ||
<!--T:22--> | <!--T:22--> | ||
{{Note|This section contains old instructions for the GStreamer 0.10 based moodbar version 0.1.2, they might be outdated.}} | |||
A package for Moodbar is now available in Debian unstable. Simply run {{Input|1=apt-get install moodbar}}. You will likely also want to install gstreamer0.10-plugins-ugly, gstreamer0.10-plugins-good, and gstreamer0.10-plugins-bad for format support. | A package for Moodbar is now available in Debian unstable. Simply run {{Input|1=apt-get install moodbar}}. You will likely also want to install gstreamer0.10-plugins-ugly, gstreamer0.10-plugins-good, and gstreamer0.10-plugins-bad for format support. | ||
Line 69: | Line 70: | ||
<!--T:24--> | <!--T:24--> | ||
{{Note|This section contains old instructions for the GStreamer 0.10 based moodbar version 0.1.2, they might be outdated.}} | |||
A package for Moodbar is available in the official package repository; just ensure the universe section is activated (which should be default anyway). Just install the package moodbar with your preferred package manager ('''Kpackagekit''', '''Aptitude''', '''Adept''', '''Synaptic'''). You will likely also want to install gstreamer0.10-plugins-ugly, gstreamer0.10-plugins-good, and gstreamer0.10-plugins-bad for format support. | A package for Moodbar is available in the official package repository; just ensure the universe section is activated (which should be default anyway). Just install the package moodbar with your preferred package manager ('''Kpackagekit''', '''Aptitude''', '''Adept''', '''Synaptic'''). You will likely also want to install gstreamer0.10-plugins-ugly, gstreamer0.10-plugins-good, and gstreamer0.10-plugins-bad for format support. | ||
Line 80: | Line 82: | ||
<!--T:28--> | <!--T:28--> | ||
{{Note|This section contains old instructions for the GStreamer 0.10 based moodbar version 0.1.2, they might be outdated.}} | |||
Moodbar is available in Portage, simply {{Input|1=emerge moodbar}} Unofficial ebuilds are no longer required. | Moodbar is available in Portage, simply {{Input|1=emerge moodbar}} Unofficial ebuilds are no longer required. | ||
Line 85: | Line 88: | ||
<!--T:30--> | <!--T:30--> | ||
{{Note|This section contains old instructions for the GStreamer 0.10 based moodbar version 0.1.2, they might be outdated}} | |||
If you are a rpm-based distro user, you can build a .rpm using rpmbuild with latest | If you are a rpm-based distro user, you can build a .rpm using rpmbuild with latest | ||
[http://cvs.pld-linux.org/cgi-bin/cvsweb/SPECS/gstreamer-plugins-moodbar.spec gstreamer-plugins-moodbar.spec]. The binary package will be soon available for [http://pld-linux.org PLD-linux] distro. | [http://cvs.pld-linux.org/cgi-bin/cvsweb/SPECS/gstreamer-plugins-moodbar.spec gstreamer-plugins-moodbar.spec]. The binary package will be soon available for [http://pld-linux.org PLD-linux] distro. | ||
Line 91: | Line 95: | ||
<!--T:32--> | <!--T:32--> | ||
{{Note|This section contains old instructions for the GStreamer 0.10 based moodbar version 0.1.2, they might be outdated.}} | |||
In Fedora 7 and higher (up to 16 as of this writing) Moodbar is available in the default repositories. Simply install it with your PackageKit GUI or with the following yum command: | In Fedora 7 and higher (up to 16 as of this writing) Moodbar is available in the default repositories. Simply install it with your PackageKit GUI or with the following yum command: | ||
Line 97: | Line 102: | ||
===== openSUSE packages ===== <!--T:34--> | ===== openSUSE packages ===== <!--T:34--> | ||
<!--T:35--> | <!--T:35--> | ||
openSUSE | GStreamer 1.0 based version 0.1.4 is available in KDE:Extra repository for openSUSE Leap 42.3 and later. An earlier GStreamer 0.10 based version 0.1.2 is also still available in the main repository for some openSUSE versions. | ||
<!--T: | <!--T:40--> | ||
For details on how to add repositories, see the [http://en.opensuse.org/SDB:Add_package_repositories openSUSE wiki]. | |||
<!--T:38--> | <!--T:38--> | ||
1-Click Install for openSUSE | 1-Click Install for openSUSE - just choose your version and installation procedure will do the rest: | ||
* [ | * [https://software.opensuse.org/ymp/KDE:Extra/KDE_Frameworks5_openSUSE_Tumbleweed/moodbar.ymp openSUSE Tumbleweed] | ||
* [ | * [https://software.opensuse.org/ymp/KDE:Extra/openSUSE_Leap_15.0/moodbar.ymp openSUSE Leap 15.0] | ||
* [https://software.opensuse.org/ymp/KDE:Extra/openSUSE_Leap_42.3/moodbar.ymp openSUSE Leap 42.3] | |||
* | |||
===== Mandriva packages ===== <!--T:42--> | ===== Mandriva packages ===== <!--T:42--> | ||
<!--T:43--> | <!--T:43--> | ||
{{Note|This section contains old instructions for the GStreamer 0.10 based moodbar version 0.1.2, they might be outdated.}} | |||
First of all, you need to add PLF repositories, so visit [http://easyurpmi.zarb.org easyurpmi.zarb.org] and add them to your repositories list. | First of all, you need to add PLF repositories, so visit [http://easyurpmi.zarb.org easyurpmi.zarb.org] and add them to your repositories list. | ||
Then simply install the following packages: | Then simply install the following packages: | ||
Line 142: | Line 134: | ||
<!--T:46--> | <!--T:46--> | ||
{{Note|This section contains old instructions for the GStreamer 0.10 based moodbar version 0.1.2, they might be outdated.}} | |||
There is a PKGBUILD for Moodbar in the [http://aur.archlinux.org Arch User Repository (AUR)] available [http://aur.archlinux.org/packages.php?ID=6552 here]. | There is a PKGBUILD for Moodbar in the [http://aur.archlinux.org Arch User Repository (AUR)] available [http://aur.archlinux.org/packages.php?ID=6552 here]. | ||
Line 150: | Line 143: | ||
<!--T:49--> | <!--T:49--> | ||
{{Note|This section contains old instructions for the GStreamer 0.10 based moodbar version 0.1.2, they might be outdated.}} | |||
There is a port: [http://www.freshports.org/audio/gstreamer-plugins-moodbar audio/gstreamer-plugins-moodbar here]. | There is a port: [http://www.freshports.org/audio/gstreamer-plugins-moodbar audio/gstreamer-plugins-moodbar here]. | ||
Line 235: | Line 229: | ||
<translate> | <translate> | ||
==== Troubleshooting ==== <!--T:58--> | ==== Troubleshooting ==== <!--T:58--> | ||
<!--T:59--> | <!--T:59--> | ||
* If the '''Moodbar''' executable gives you a ''bus error'', that almost always means it can't decode (or can't find) your file. Take a look at the [[Special:myLanguage/Amarok/Manual/Various/Moodbar#Supported Filetypes|supported file types]] below for ideas on which GStreamer plugins to install. You can also try the command below to test whether GStreamer can decode your file:{{Input|1=gst-launch filesrc location=[file] ! decodebin ! fakesink}} | * If the '''Moodbar''' executable gives you a ''bus error'', that almost always means it can't decode (or can't find) your file. Take a look at the [[Special:myLanguage/Amarok/Manual/Various/Moodbar#Supported Filetypes|supported file types]] below for ideas on which GStreamer plugins to install. You can also try the command below to test whether GStreamer can decode your file:{{Input|1=gst-launch-1.0 filesrc location=[file] ! decodebin ! fakesink}} | ||
<!--T:67--> | <!--T:67--> | ||
Line 251: | Line 242: | ||
<!--T:69--> | <!--T:69--> | ||
* 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:{{Input|1=moodbar -o test.mood [file]}} | * 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:{{Input|1=moodbar -o test.mood [file]}} To generate a test image preview, one can use the commandː{{Input|1=gst-launch-1.0 filesrc location=[file] ! decodebin ! audioconvert ! fftwspectrum ! moodbar height=50 max-width=300 ! pngenc ! filesink location=mood.png}} | ||
<!--T:70--> | <!--T:70--> | ||
* If you have multiple versions of GStreamer installed, make sure all of the required plugins are installed ''for version 0 | * If you have multiple versions of GStreamer installed, make sure all of the required plugins are installed ''for version 1.0.*'' -- different versions ''cannot'' use each other's plugins. | ||
</translate><span id="Supported Filetypes"></span><translate> | </translate><span id="Supported Filetypes"></span><translate> | ||
Line 261: | Line 252: | ||
<!--T:61--> | <!--T:61--> | ||
You will need various Gstreamer plugins to enable '''Moodbar''' to analyze your files. Here is a list of the plugins you will need; make sure to install the ''0 | You will need various Gstreamer plugins to enable '''Moodbar''' to analyze your files. Here is a list of the plugins you will need; make sure to install the ''1.0.* version'' of each plugin: | ||
<!--T:62--> | <!--T:62--> | ||
Line 269: | Line 260: | ||
<translate> | <translate> | ||
<!--T:71--> | <!--T:71--> | ||
| All || gstreamer-0 | | All || gstreamer-1.0.*, gst-plugins-base, gst-plugins-good</translate> | ||
|- | |- | ||
<translate> | <translate> | ||
Line 304: | Line 295: | ||
<!--T:65--> | <!--T:65--> | ||
{{Prevnext2 | {{Prevnext2 | ||
| prevpage=Special:myLanguage/Amarok/Manual/Various | nextpage=Special:myLanguage/Amarok/Manual/Various/ | | prevpage=Special:myLanguage/Amarok/Manual/Various | nextpage=Special:myLanguage/Amarok/Manual/Various/ReplayGain | ||
| prevtext=Various | nexttext= | | prevtext=Various | nexttext=Replay Gain | ||
| index=Special:myLanguage/Amarok/Manual | indextext=Back to Menu | | index=Special:myLanguage/Amarok/Manual | indextext=Back to Menu | ||
}} | }} |
Latest revision as of 13:20, 6 August 2018
The Moodbar
The Moodbar shows you the "mood" of a track, which you can then use to figure out when something interesting happens in the song.
In order for Amarok to display moodbars for your music, you will need the Moodbar program (see below for downloads and binary packages).
The Moodbar package requires GStreamer and various plugins depending on the filetypes you use (see Supported filetypes). You will not need the phonon-backend-gstreamer package to create .mood files.
There are two parts to the new Moodbar implementation: the Moodbar package, which contains a program that takes a music file and generates a .mood file, and support code in the Amarok source, which runs the binary and displays the Moodbar. The Moodbar package depends on the GStreamer libraries. Without the Moodbar package, Amarok cannot generate the moodbars for your music.
As an alternative, there is a new script which will create moodbar files for tracks in an Amarok playlist; this is an exception to the above. The script needs nothing but Amarok to work, but it only creates the .mood files as they are played in the Playlist.
The Moodbar is due to the work of Gavin Wood and Simon O'Keefe, who designed the algorithms; their original paper is here.
Summary of Requirements
- The Moodbar binary, in your PATH (it should be listed upon running
which moodbar
from a console) — Remember to configure the Moodbar package with proper path, e.g. build and install with commands./autogen.sh --prefix=`pkg-config --variable=prefix gstreamer-1.0` && make && sudo make install
- The GStreamer 1.0 library and plugins for the formats you want Moodbar to be able to analyse. (An earlier GStreamer 0.10 based version is also still available for some distributions)
- The Fastest Fourier Transform In The West (fftw.org) FFTW library version 3.0 or above (at least single-precision floating point version - libfftw3f) — If your platform does not provide this for you or you need to compile your own version, remember to configure the FFTW package with
./configure --enable-single
- A version of Amarok with a option in the section of the configuration screen. This means 1.4.4 or higher in the 1.4 series or 2.2.2 or higher in the 2.x series.
Usage
Currently .mood files must be generated manually. Amarok cannot do it for you. To do this for your entire collection, use the Moodbar File Generation Script described below.
To enable the display of moodbars in Amarok, activate it in the configuration:
. Moodbars should now appear in the track sliders in the player window and Playlist; there will also be a mood field that you may add to your playlist layouts.Installation
Source Downloads
- Latest release: moodbar-0.1.4.tar.gz — this is the Moodbar source package, which contains the Moodbar program (which generates .mood files from music files), and a GStreamer plugin that does the work. The Moodbar package needs GStreamer 1.0.* installed, plus the 1.0.* version of various plugins. Be sure to install the Moodbar package into the same prefix as GStreamer — follow the instructions in the summary of requirements chapter. The 0.1.4 is a a fork of original 0.1.2 sources, updated to use GStreamer 1.0. The old 0.1.2 sources are not reliably available online any more, but packages might be still available for some distributions.
If you find any bugs, please submit a bug report at bugs.kde.org.
Debian packages
A package for Moodbar is now available in Debian unstable. Simply run
apt-get install moodbar
. You will likely also want to install gstreamer0.10-plugins-ugly, gstreamer0.10-plugins-good, and gstreamer0.10-plugins-bad for format support.
Kubuntu and Ubuntu packages
A package for Moodbar is available in the official package repository; just ensure the universe section is activated (which should be default anyway). Just install the package moodbar with your preferred package manager (Kpackagekit, Aptitude, Adept, Synaptic). You will likely also want to install gstreamer0.10-plugins-ugly, gstreamer0.10-plugins-good, and gstreamer0.10-plugins-bad for format support.
Or, to install, paste this into Firefox or Konqueror and hit Enter.
apt://moodbar,gstreamer0.10-plugins-ugly,gstreamer0.10-plugins-good,gstreamer0.10-plugins-bad?section=universe?refresh=yep
Gentoo ebuilds
Moodbar is available in Portage, simply
emerge moodbar
Unofficial ebuilds are no longer required.
RPM builds
If you are a rpm-based distro user, you can build a .rpm using rpmbuild with latest gstreamer-plugins-moodbar.spec. The binary package will be soon available for PLD-linux distro.
Fedora
In Fedora 7 and higher (up to 16 as of this writing) Moodbar is available in the default repositories. Simply install it with your PackageKit GUI or with the following yum command:
yum install moodbar
openSUSE packages
GStreamer 1.0 based version 0.1.4 is available in KDE:Extra repository for openSUSE Leap 42.3 and later. An earlier GStreamer 0.10 based version 0.1.2 is also still available in the main repository for some openSUSE versions.
For details on how to add repositories, see the openSUSE wiki.
1-Click Install for openSUSE - just choose your version and installation procedure will do the rest:
Mandriva packages
First of all, you need to add PLF repositories, so visit easyurpmi.zarb.org and add them to your repositories list. Then simply install the following packages:
- gstreamer0.10-moodbar
- gstreamer0.10-plugins-ugly
- gstreamer0.10-plugins-good
- gstreamer0.10-plugins-bad
Arch Linux
There is a PKGBUILD for Moodbar in the Arch User Repository (AUR) available here.
For more information about the AUR and working with PKGBUILDs, see the AUR User Guidelines.
FreeBSD
There is a port: audio/gstreamer-plugins-moodbar here.
To install the port:
cd /usr/ports/audio/gstreamer-plugins-moodbar/ && make install clean
To add the package:
pkg_add -r gstreamer-plugins-moodbar
Moodbar File Generation Script
Here is a simple bash script that will add .mood files to your entire collection. It adds mood files for all files matching the extensions in the current directory and all subdirectories, so it's best run from the base of your music directory.
#!/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
Copy and paste the above into a text file named moodbar.sh in your music directory and run the following commands:
cd /path/to/music bash moodbar.sh
Alternatively if the above does not work, you may try:
chmod +x moodbar.sh ./moodbar.sh
This may take a very long time for large collections! Note that the moodbars will not appear in Amarok until Amarok rescans the collection. The generated mood files will be dotfiles (i.e., prefixed with a full stop), or hidden files - so keep this in mind if you can't find any generated mood files.
Based on the above script, an alternative for multicore CPUs:
#!/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
Troubleshooting
- If the Moodbar executable gives you a bus error, that almost always means it can't decode (or can't find) your file. Take a look at the supported file types below for ideas on which GStreamer plugins to install. You can also try the command below to test whether GStreamer can decode your file:
gst-launch-1.0 filesrc location=[file] ! decodebin ! fakesink
- 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]
To generate a test image preview, one can use the commandːgst-launch-1.0 filesrc location=[file] ! decodebin ! audioconvert ! fftwspectrum ! moodbar height=50 max-width=300 ! pngenc ! filesink location=mood.png
- If you have multiple versions of GStreamer installed, make sure all of the required plugins are installed for version 1.0.* -- different versions cannot use each other's plugins.
Supported Filetypes
You will need various Gstreamer plugins to enable Moodbar to analyze your files. Here is a list of the plugins you will need; make sure to install the 1.0.* version of each plugin:
Filetype | Required Plugin | Note |
---|---|---|
All | gstreamer-1.0.*, 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 |
Screenshots