Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: foo_auto_dj (Read 12971 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

foo_auto_dj

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

[a href='index.php?showtopic=84900']Instructions, Discussion and Help Topic.[/a]

foo_auto_dj

Reply #1
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.

foo_auto_dj

Reply #2
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.

 

foo_auto_dj

Reply #3
Version 0.9.3
  • Fixed hopefully the last OpenCL related crash, and some minor logic bugs. Still not sure why OpenCL calls fail, sometimes.
  • ReplayGain analysis should now be able to finish, even if all OpenCL calls and thus the BPM detection fail.

foo_auto_dj

Reply #4
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.

foo_auto_dj

Reply #5
Formulas as *.xls spreadsheet.


foo_auto_dj

Reply #6
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.

foo_auto_dj

Reply #7
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.

foo_auto_dj

Reply #8
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.

foo_auto_dj

Reply #9
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.

foo_auto_dj

Reply #10
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.

foo_auto_dj

Reply #11
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.

foo_auto_dj

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

foo_auto_dj

Reply #13
Version 1.02
  • Some bug fixes and improved compatibility and speed.

foo_auto_dj

Reply #14
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.

foo_auto_dj

Reply #15
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.