IPB

Welcome Guest ( Log In | Register )

 
Reply to this topicStart new topic
foo_auto_dj, Playlist generation with accurate BPM and ReplayGain scanner
iya
post Nov 12 2010, 00:42
Post #1





Group: Members
Posts: 50
Joined: 3-October 10
Member No.: 84306



If you can't decide what to listen to next, this plugin might be for you.

Instructions, Discussion and Help Topic.
Go to the top of the page
+Quote Post
iya
post Nov 12 2010, 21:27
Post #2





Group: Members
Posts: 50
Joined: 3-October 10
Member No.: 84306



Version 0.9.1

Fix: Replaced all unsafe functions (atof, atoi), to fix the most obvious crashes.
Changed: BPM are less likely to be half the proper value.
Changed: Rating is now squared. Unrated tracks are considered to be 1.5 stars. That means the limit priority of a 5 star track is 25 times that of a 1 star track.
Go to the top of the page
+Quote Post
iya
post Nov 13 2010, 06:50
Post #3





Group: Members
Posts: 50
Joined: 3-October 10
Member No.: 84306



Version 0.9.2
  • Added error checking and handling to most OpenCL calls.
    This should fix some crashes and help with debugging, as it shows exactly which line caused problems.
    It will also print lots of device info.
  • Added caching of the binary OpenCL kernel, after the first compilation.
  • Added a few more heuristics to BPM detection.
  • Changed the ratings exponent to 1.5, i.e. Rating = {1, unrated, 2, 3, 4, 5} -> Limit Probability = {1, 1.8, 2.8, 5.2, 8, 11.2}
    Would be nice to have a little more flexibility, but we're limited to 5+1 steps, for now.


This post has been edited by iya: Nov 13 2010, 07:23
Go to the top of the page
+Quote Post
iya
post Nov 13 2010, 21:41
Post #4





Group: Members
Posts: 50
Joined: 3-October 10
Member No.: 84306



Version 0.9.3
  1. Fixed hopefully the last OpenCL related crash, and some minor logic bugs. Still not sure why OpenCL calls fail, sometimes.
  2. ReplayGain analysis should now be able to finish, even if all OpenCL calls and thus the BPM detection fail.
Go to the top of the page
+Quote Post
iya
post Nov 14 2010, 08:18
Post #5





Group: Members
Posts: 50
Joined: 3-October 10
Member No.: 84306



Version 0.9.4
  • Fixed the cause for OpenCL failing, by embedding the source code in the dll.
  • OpenCL.dll now goes to "../user-components/foo_auto_dj/". Not sure if this will work in all cases.
  • The binary kernel is now saved to the user directory.
Go to the top of the page
+Quote Post
iya
post Nov 14 2010, 09:40
Post #6





Group: Members
Posts: 50
Joined: 3-October 10
Member No.: 84306



Formulas as *.xls spreadsheet.

Go to the top of the page
+Quote Post
iya
post Nov 15 2010, 09:28
Post #7





Group: Members
Posts: 50
Joined: 3-October 10
Member No.: 84306



Version 0.9.5
  • New moments calculation. If interested in this feature, you should rescan all files with "NOT %MOMENTS% MISSING".
  • Small BPM detection changes.
Go to the top of the page
+Quote Post
iya
post Nov 17 2010, 06:21
Post #8





Group: Members
Posts: 50
Joined: 3-October 10
Member No.: 84306



Version 0.9.6
Is double posting actually allowed or encouraged here? I hope so, as the edit button always times out so fast.
  • A badly scaled signal caused many wrong, e.g. halved BPM.
  • DB_ISO226 tag is no longer written as it was just used for calibration of the offset: ReplayGain = -21.96 - dB.
  • If a track is playing while updating tags, we wait until it's finished, instead of aborting the whole operation.
Go to the top of the page
+Quote Post
iya
post Nov 20 2010, 00:11
Post #9





Group: Members
Posts: 50
Joined: 3-October 10
Member No.: 84306



Version 0.9.7
  • More reliable BPM detection. Last version often doubled the <100 BPM range. If it still gives twice or half the BPM it's usually somewhat reasonable.
    Added "Sensitivity" to the options. Higher Sensitivity = increased chance for higher BPM on slow songs.
  • Implemented the similarity metric. Add a custom column with %DISTANCE%. This will display the distance of each track vs. the current selection. One standard deviation from the selection = 1000.
    For example: Select one track and then sort by distance. The tracks with the lowest distance are supposed to sound the most similar to the selected one.
    Unfortunately the custom display fields are not made for dynamic data updates, so repaints are kinda slow and buggy.
    It could be used to regularly remove the least similar track from the auto playlist.
Go to the top of the page
+Quote Post
iya
post Nov 25 2010, 06:00
Post #10





Group: Members
Posts: 50
Joined: 3-October 10
Member No.: 84306



Version 0.9.8
  • Very short tracks which are too short for BPM estimation will correctly analyze ReplayGain.
    Long tracks which are too big for GPU memory should no longer crash.
    Very long tracks will which are too big for main memory will no longer write wrong tags or ReplayGain.
  • GPU and main memory is now freed after scanning.
  • New database which allows aligned memory access.
  • Changed the way distance is calculated from the moments.
  • Added a similarity setting to the Playlist Manager options. Whenever new items are added, it is virtually done for the specified number of times, and the batch with the most similar adjacent tracks is chosen. If this setting is raised too high it could affect the probabilities of tracks being played.
    If there are duplicates with different names and artists, they now have a high chance to be played directly after another, because they are so similar.
    Everything with the the same name or artist is filtered out, regardless of similarity.
Go to the top of the page
+Quote Post
iya
post Dec 4 2010, 05:01
Post #11





Group: Members
Posts: 50
Joined: 3-October 10
Member No.: 84306



Version 0.9.9
  • Removed the configuration of "new" tracks. Damping is now always 0, and the zero crossing is determined automatically by the oldest track in the "new" playlist, i.e. the oldest tracks will have almost the same priority as tracks which are not in the "new" playlist.
  • You can overwrite the %ADDED% time (from playback statistics), which is relevant for the "new" playlist, with the %DATE% tag.
    This tag is only used if it's length is exactly 10 characters and the format is then assumed to be YYYY*MM*DD, with '*' being any character, most likely '-' or '/'.
    This could be useful, for example, when foobar2000 crashes after changing a track's info, and after the next startup it will treat it like a totally new track.
  • Fixed and slightly changed the selection of added tracks, to somewhat counter the bias towards low priority tracks, when choosing the most similar.
    Still, some tracks seem to have a hard time to be choosen. The only way the priority is honored to 100%, is to disable all similarity considerations by setting "Similarity" to 1, in the options. This is like the older versions worked.
  • Tracks are never removed, except the one just played, so you can manually add recently played tracks and artists.
  • Changed the delimiter when parsing data from '|' to the non-printing character 0x03, as I actually encountered a track which used '|'.
  • Encountered a crash during startup, but only once. Not sure about the cause or if the bug is sill there.
Go to the top of the page
+Quote Post
iya
post Jan 7 2011, 01:03
Post #12





Group: Members
Posts: 50
Joined: 3-October 10
Member No.: 84306



Version 1.0
  • Fixed a couple of lock-ups and crashes.
  • Silence is now ignored during ReplayGain calculation.
    Even for tracks with lots of silence, the difference is usually not more than ~0.3 dB.
  • New default sorting mode, which honors the priorities 100%, and balances BPM continuity and similarity.
    This is a combinatorial problem (TSP), so we don't try to find the best solution.
    If you upgrade from an old version, you must manually set "Similarity" to 0, in the preferences, to use this mode.
    Should work better with slightly longer playlists, so the default is now 18 tracks.
  • New commands for doubling and halving of BPM. (Cannot modify playing tracks)
  • New command for creating a number of pre-configured example playlists, for a quick and painless initial setup.
Go to the top of the page
+Quote Post
iya
post Jan 21 2011, 00:14
Post #13





Group: Members
Posts: 50
Joined: 3-October 10
Member No.: 84306



Version 1.01
  • Non media library tracks can be used (again).
  • Resume playback after restarting foobar2000 should now work.

Attached File(s)
Attached File  foo_auto_dj_1.01.zip ( 337.77K ) Number of downloads: 295
 
Go to the top of the page
+Quote Post
iya
post May 5 2011, 00:40
Post #14





Group: Members
Posts: 50
Joined: 3-October 10
Member No.: 84306



Version 1.02
  • Some bug fixes and improved compatibility and speed.

Attached File(s)
Attached File  foo_auto_dj_1.02.zip ( 328.28K ) Number of downloads: 358
 
Go to the top of the page
+Quote Post
iya
post Jun 4 2011, 20:19
Post #15





Group: Members
Posts: 50
Joined: 3-October 10
Member No.: 84306



Version 1.03. No need to update if the old version works.
  • If clBuildProgram fails, we use clGetProgramBuildInfo and print the build log to the console.

Attached File(s)
Attached File  foo_auto_dj_1.03.zip ( 325.7K ) Number of downloads: 460
 
Go to the top of the page
+Quote Post
iya
post Oct 2 2011, 09:50
Post #16





Group: Members
Posts: 50
Joined: 3-October 10
Member No.: 84306



Version 1.04
  • Added options to manually select OpenCL platform and device. View console to see the device names and IDs.
  • Auto detection tries to avoid CUDA, because of likely compiler bug.
  • Slightly changed distance metric.


This post has been edited by iya: Oct 2 2011, 10:06
Attached File(s)
Attached File  foo_auto_dj_1.04.zip ( 323.28K ) Number of downloads: 393
 
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



RSS Lo-Fi Version Time is now: 28th August 2014 - 03:37