The BPM calculator for Amarok is a software that calculates beats per minute (BPM) for music tracks in the Amarok player. With this software, users can organize and create playlists based on the BPM of their music tracks for an optimized listening experience.
Since the Amarok script bpmcalc was not working on my computer and I needed a way to calculate the BPM quickly, I created this application. The application uses the Amarok database, but only mySQL. The BPM is calculated using the tool soundstretch, and the resulting BPM is written back into the database.
To find the BPM's, there are two parameters for the analysis: the starting point and length, both in seconds. Undiscovered BPM's are serialized with -9, and they can be re-analyzed repeatedly with different parameters.
There are 4 scan methods based on the information in Amarok's mySQL database: songs in which the BPM was not found, songs in which the BPM is outside of a range, repeating the BPM detection process for all songs, and processing only songs without BPM information by default.
Many parameters are available to control the application. A detailed description of the opportunities available may come later, but for now, here is the application's help text:
Usage:
Output to logfile --o=-filename
SQL login: --l=host address (default=localhost) --t=port number (default=3306) --u=username --p=password
BPM detection specific, optional: --k=skip seconds, default=0 (point at start BPM analyzing) --g=read seconds, default=60 (BPM analyzing)
Song selection, optional (SQL select limit): --b=start at row (default=0) --m=max rows to read (default=all)
Song scan options, optional. No parameter is default=only undetected songs: --f full rescan of all songs --r rescan failed BPM detection --j out of range BPM scan (see x,y and a,z)
BPM range accept, defaults=all (recommended: min=50, max=200 --x=min BPM; --y=max BPM --i round detected BPM
BPM "correction" when less(x) or bigger(y), optional: --a=multiplier (a*BPM=corrected BPM --z=divider (BPM/z=corrected BPM
Other options, optional: --v verbose information --h this help.
Version 0.1.2-1: N/A