Skip to content

Releases: regorxxx/Search-by-Distance-SMP

v4.0.2 - Hotfix

20 Feb 22:08
Compare
Choose a tag to compare

IF INSTALLING FROM AN OLDER VERSION THAN 4.0.0 FOLLOW THESE INSTRUCTIONS.

Otherwise just overwrite old files as usual.

There may be a SMP's bug on installation. See wiki.
REQUIRES SMP 1.6.1

This is a hotfix for a SMP bug (until it gets updated...).

[4.0.2] - 2023-02-20

Added

Changed

  • Helpers: updated helpers

Removed

Fixed

  • Buttons: 'buttons_search_by_distance.js' crash when showing tooltip under certain configurations.
  • Tags: Queries created with some tracks missing tags were wrong, thus giving 0 results, due to not working checks for missing tags since 4.0.0 tag system rework.

v4.0.1 - SMP bug hotfix

19 Feb 12:14
Compare
Choose a tag to compare

IF INSTALLING FROM AN OLDER VERSION THAN 4.0.0 FOLLOW THESE INSTRUCTIONS.

Otherwise just overwrite old files as usual.

There may be a SMP's bug on installation. See wiki.
REQUIRES SMP 1.6.1

This is a hotfix for a SMP bug (until it gets updated...).

[4.0.1] - 2023-02-19

Added

  • UI: added settings for buttons color (the border and filling).
  • UI: added settings for buttons transparency (the filling).

Changed

  • UI: enhanced colors and shading for buttons on mouse over/down when using custom toolbar color modes, etc.
  • UI: pressing Ctrl resets selected setting on buttons bar colors submenu.
  • Helpers: updated helpers

Removed

Fixed

  • Buttons: fixed 'Restore default buttons' entry crash (not needed anymore since there are no more 'default buttons'), now replaced with 'Restore all buttons' (which simply restores back default settings for every button).
  • Readmes: added missing 'Toolbar' readme.
  • Workaround for SMP bug which made properties not being saved when closing foobar. That made the initial popups on first installation to keep firing on every restart.

v4.0.0 - Tag System rework

15 Feb 19:52
Compare
Choose a tag to compare

DELETE ALL OLD FILES, AT 'xxx-scripts' before installing new ones.

Update all my other scripts too with latest releases.

Install on a blank panel. Clean the old panel first.

Note Playlist Tools does not include these scripts anymore. Both must be installed now separately!

Too many things have changed and it must be ensured a clean installation is done.

There may be a SMP's bug on installation. See wiki.
REQUIRES SMP 1.6.1

Highlights:

  • Fully customizable tags, with infinite number of slots available.
  • New smart shuffle mode.
  • New scoring methods.
  • Remove duplicates by RegExp.
  • A lot of fixes.

[4.0.0] - 2023-02-15

Added

  • Configuration: settings may now be shared among all search by distance buttons using the new menu entry. A popup asks to copy the configuration for every found button, which is highlighted on the buttons bar.
  • Configuration: added user configurable files at '[FOOBAR PROFILE FOLDER]\js_data\presets\global' to edit default queries and tags for multiple tools. Usually used internally or on properties panel. Don't forget to reload the panels/restart foobar and restore defaults on all relevant buttons and menus to use the new values. It's recommended to do it upon installation of this update.
  • Configuration: new setting to omit genre/styles not present on the descriptors while calculating the mean distance on GRAPH method. It was supposed to be done via exclusions, but that method did leave some things values on non properly configured setups, while this setting covers all use-cases (although it requires more processing time).
  • Presets: new preset 'Similar artists (G)' to make use of Similar Artists analysis. Similar artists calculation is -obviously- required first.
  • Presets: added multiple integrity checks for presets which should ensure they are properly written. Warnings are shown with popups in case errors are found, when using the settings menu at the customizable button, selecting a preset (the list also shows an error warning on name) or when creating a new playlist with the tools.
  • Tags: reworked the entire tag system to allow for indefinite custom tags, with weights, ranges, scoring distribution methods, ... Recipes and buttons have been reworked too to account for this.
  • Tags: tags cache for Foobar2000 2.0, disabled by default. Disabled (forced) on lower versions (since it brings no improvement on processing time). After proper setup and caching of all library tags associated to remapped tags, processing time should be similar to Foobar2000 1.6+ versions. Enable it only on V2 in case low memory mode is used if better performance is desired.
  • Tags: menu entry to -only- reset tag remapping. Asks for cache rebuilding afterwards.
  • Smart Shuffle: shuffles tracks according to tags (Artist by default) in a semi-random pattern, ensuring no 2 consecutive tracks have the same tag value. Follows Spotify design. Overrides any other sorting when enabled. Contrary to Spotify's preferences to recently played/loved tracks, this algorithm is truly "random" in the sense that there is no preference for any track, it just ensures artists are distributed evenly with some randomness. Also differs from from 'Scatter by tags' (intercalate) at Playlist Tools in the way tracks are ordered (without strict alternation), i.e. it doesn't follow a pattern ABCABAA when it's possible to ensure no A tracks are together (ABACABA).
  • Scoring Method: new options to set scoring method ('LOGARITHMIC', 'LOGISTIC', 'LINEAR', 'NORMAL'). Default behavior is 'LINEAR' (working the same as before). 'LOGARITHMIC' and 'LOGISTIC' scoring methods take into account that some tracks having a lot of values for some tags don't return so many matches because it's almost impossible to match all of them. Therefore it applies a logarithmic curve, giving an extra weight to lower matches, specially for high tag values counts (n). For ex. when 50% of the tags are matched, that equals to 50% weight applied on 'LINEAR' method but ~70% weight for 'LOGARITHMIC' method and 64%(n<=1) to 85%(n=3) for 'LOGISTIC' method. 'LOGISTIC' method is much more sensitive to the tag value count (n). Configurable per tag. Added related readme to this feature along a chart comparison.
  • Base Score: new option to added base score for tags, in case tag is missing for the analyzed tracks. For ex. if BPM is set with a non-zero weight, and the reference track has such tag, usually the script would scan the entire library and check for tracks within a range compatible; in case a track has non BPM tag it would score zero for that tag, which may be undesirable in some situations (when not all tracks on a library contain the same tags or have not been tagged yet). In such case, that track would always get a lower scoring than any other, since the others have a BPM tag to compare against. Base score option allows to give a default score to such tracks, associated to the tag, to minimize the impact of track missing a tag (in relation to other tracks). Value is zero by default (previous behavior), but may be changed selectively for every tag. Value is also sensible to the scoring method set (see above).
  • UI: added icons-only mode for toolbar buttons at the toolbar configuration menu ('Other UI configuration'). Tooltip is adjusted to show the button's name there instead. Handy when creating a compact toolbar and icons are good enough to recognize the tools.

Changed

  • GRAPH: changed distance logic to be invariant to inversion (A->BC = BC -> A) and equivalent tag values (A->B1B2B3 = A-> B1B2) addition; both were lowering the total distance 'for free' in some cases. This will provide better results for tracks with lower tag counts, not so heavily weighted by the number of genre/style values. Distance values have changed for many use-cases so presets have been reworked to account for that.
  • GRAPH: minor performance improvement using non-oriented links.
  • GRAPH: variable performance improvement using dynamically created pre-filter queries (the same used on WEIGHT method).
  • DYNGENRE: variable performance improvement using dynamically created pre-filter queries (the same used on WEIGHT method).
  • Descriptors: changed style cluster distance. Presets have been reworked to account for that.
  • Descriptors: updated descriptors with multiple additions.
  • Descriptors: updated and improved descriptors documentation (present on .js files).
  • Tags: reverted default string tags to raw tags instead of using '$ascii(%TAG%)' in favor of internally converting values to ASCII. Works better for multi-value tags in queries. It's recommended to reset tag remapping to default for most users (or manually removing the TF functions if using other tags).
  • Tags: when using TF functions on tags, queries now use 'HAS' instead of 'IS' to ensure multi-value tags are taken into consideration (otherwise only single-value tags match). Note this has the side-effect of partial matching being allowed (i.e. 'Rock' matches 'Progressive Rock' too, but not the opposite).
  • Tags: all remapped tags now also allow TF functions instead of just tag names. Behavior previously available only on date and custom num tags.
  • Tags: the buttons now ask to check for missing genre/styles on the Graph on first initialization.
  • UI: unified tooltip structure and available info on all buttons (short description + relevant settings + keyboard modifiers).
  • UI: shift modifier now opens configuration menu on customizable button, and Shift + Ctrl now sets the theme. This is done to follow the same behavior than other buttons having the configuration menu on Shift.
  • UI: estimated time for similar artist calculation is now formatted into hours, min and seconds.
  • UI: buttons are animated while graph links cache or graph statistics are being calculated.
  • UI: customizable button now doesn't allow setting playlist sorting when using harmonic mixing. Submenu is greyed out.
  • UI: buttons now show info about background processing if any is being done (usually also animated).
  • UI: unified buttons size normalization settings and behavior for all axis modes.
  • UI: unified button icon alignment on reflow modes.
  • Similar artists: now shows a popup with the report of similar artists found along their similarity scoring. Previously this info was only logged to console.
  • Similar artists: now uses 'LOGARITHMIC' scoring method by default (set on preset file, can still be manually changed there).
  • Removed duplicates: all uses of function changed to make use of '$year(%DATE%)' and '$ascii($lower($trim(%TITLE%))' instead of 'DATE' and 'TITLE'. This is a changed ported from Search by Distance, to ensure the most matches possible.
  • Remove duplicates: advanced RegEx title matching option. For example, tracks like these would be considered to be duplicates: 'My track (live)', 'My track (acoustic)', 'My track (2022 remix)', ' My track [take 3]', ... but not those with keywords like 'part', 'pt.', 'act' or Roman numerals.
  • Remove duplicates: advanced RegEx title matching option. Words with "-in'" and a list of verbs ending in "-in" are matched against "-ing" verbs to further refine the search. For ex. "walkin", "walkin'" and "walking" are all considered equivalent.
  • Remove duplicates: TF/tag expression to match duplicates along the advanced RegEx title matching option can be configured on the customizable button. Also found on properties panel.
  • Key: queries involving key tags now use all possibles equivalences in different notations (standard, Open keys, Camelot keys). For ex: '((KEY IS A) OR (KEY IS 4d) OR (KEY IS 11B))'.
  • Cache: improved graph links cache asynchronous cal...
Read more

v3.1.0 - Compatibility update

22 Aug 19:14
Compare
Choose a tag to compare

There may be a SMP's bug on installation. See _TIPS and INSTALLATION.txt
PREVIOUS BUTTONS CONFIG (<3.0.0) WILL BE LOST ON UPGRADE DUE TO A CHANGE ON PROPERTIES
REQUIRES SMP 1.6.1.

  • Minor improvements to word lists within popups in some instances. Now split in new lines after X elements.
  • Updated to match Playlist Tools v3.0.0-beta.15 release.

See changelog for a full list: https://github.com/regorxxx/Search-by-Distance-SMP/blob/main/CHANGELOG.md

v3.0.0 - ASCII descriptors and QOL improvements

21 Aug 19:58
Compare
Choose a tag to compare

There may be a SMP's bug on installation. See _TIPS and INSTALLATION.txt
PREVIOUS BUTTONS CONFIG (<3.0.0) WILL BE LOST ON UPGRADE DUE TO A CHANGE ON PROPERTIES
REQUIRES SMP 1.6.1.

  • Added 'User descriptors' readme.
  • User file has been moved to profile folder at 'js_data/helpers/music_graph_descriptors_xxx_user.js'.
  • All style/genres on the graph use now ASCII only values, so it should be easier to match any value to them if required.
  • Default genre and style tags use now '$ascii()' TF function. This will ensure a match when using accents, etc. See change above. On previous installations, change tags to (without quotes): '$ascii(%genre%)' & '$ascii(%style%)'
  • After tag remapping, a popup asks to rebuild the cache.
  • Improved graph links cache asynchronous calculation.
  • Fixed console logging to file (lines were not being split properly).
  • Updated to match Playlist Tools v3.0.0-beta.14 release.

See changelog for a full list: https://github.com/regorxxx/Search-by-Distance-SMP/blob/main/CHANGELOG.md

v2.3.0 - Similar Artists improvements

12 Aug 19:14
Compare
Choose a tag to compare

There may be a SMP's bug on installation. See _TIPS and INSTALLATION.txt
PREVIOUS BUTTONS CONFIG (<3.0.0) WILL BE LOST ON UPGRADE DUE TO A CHANGE ON PROPERTIES
REQUIRES SMP 1.6.1.

  • Added diagrams explaining the design logic of similar artists calculation.
  • Added 'Dembow' and 'Renaissance Rock', along their influences, to descriptors.
  • Greatly improved Similar artists feature with better filtering and weighting of tracks.
  • Reduced console logging at startup.
  • Switched all callbacks to event listeners.
  • Updated Picard AcousticBrainz presets with fixes to output when values used scientific notation and other weird situations.
  • Workaround for some instances where the scripts would warn about some feature not being supported by the OS (due to an OS or SMP bug).
  • Updated to match Playlist Tools v3.0.0-beta.13 release.

See changelog for a full list: https://github.com/regorxxx/Search-by-Distance-SMP/blob/main/CHANGELOG.md

v2.2.4 - Hotfix

10 Aug 17:32
Compare
Choose a tag to compare

There may be a SMP's bug on installation. See _TIPS and INSTALLATION.txt
PREVIOUS BUTTONS CONFIG (<3.0.0) WILL BE LOST ON UPGRADE DUE TO A CHANGE ON PROPERTIES
REQUIRES SMP 1.6.1.

  • New menu entry, on custom button, to reset entire button configuration to default values.
  • Fix composer tag not being properly used on queries and scoring, leading to wrong results or query errors.
  • Fix custom string tag not being properly used on queries and scoring, leading to wrong results or query errors.
  • Fix date, BPM and custom num tag being skipped on calculations when equal to zero. While that may make sense for Date or BPM in real use-cases, the custom tag could be used to also store zero values.
  • Updated to match Playlist Tools v3.0.0-beta.12 release.

See v2.2.0 release info: https://github.com/regorxxx/Search-by-Distance-SMP/releases/tag/v2.2.0

v2.2.3 - Hotfix

09 Aug 15:16
Compare
Choose a tag to compare

There may be a SMP's bug on installation. See _TIPS and INSTALLATION.txt
PREVIOUS BUTTONS CONFIG (<3.0.0) WILL BE LOST ON UPGRADE DUE TO A CHANGE ON PROPERTIES
REQUIRES SMP 1.6.1.

  • New: new menu entry on customizable button to show all hidden presets (recipes or themes).
  • New: new option to hide selected preset (Shift + Click).
  • New: any recipe or theme file starting with 'test_' or 'int_' will be hidden everytime when opening the customizable button's menu.
  • Fix: None preset was not being shown as current preset when there were no more presets on the list.
  • Fix: 'test_with_forcedThemePath.json' recipe is no longer available by default (see change above). Previously a warning popup was shown everytime the menus were called due to inline forced theme path being wrong.
  • Updated to match Playlist Tools v3.0.0-beta.11 release.

See v2.2.0 release info: https://github.com/regorxxx/Search-by-Distance-SMP/releases/tag/v2.2.0

v2.2.2 - Hotfix

07 Aug 20:01
Compare
Choose a tag to compare

There may be a SMP's bug on installation. See _TIPS and INSTALLATION.txt
PREVIOUS BUTTONS CONFIG (<3.0.0) WILL BE LOST ON UPGRADE DUE TO A CHANGE ON PROPERTIES
REQUIRES SMP 1.6.1.

  • Variable 'Exclude any track with graph distance greater than (only GRAPH method' was not being parsed properly when set to a string.
  • Crash when trying to move a button when only a single button script was loaded on the panel.
  • Updated to match Playlist Tools v3.0.0-beta.10 release.

See v2.2.0 release info: https://github.com/regorxxx/Search-by-Distance-SMP/releases/tag/v2.2.0

v2.2.1 - Hotfix

06 Aug 09:02
Compare
Choose a tag to compare

There may be a SMP's bug on installation. See _TIPS and INSTALLATION.txt
PREVIOUS BUTTONS CONFIG (<3.0.0) WILL BE LOST ON UPGRADE DUE TO A CHANGE ON PROPERTIES
REQUIRES SMP 1.6.1.

  • Minor improvements to console logging when reporting track list.
  • Fix to theme checking. Themes were being reported as non valid when they were fine.
  • Forced query was not being properly saved when using pre-defined filters.
  • Updated to match Playlist Tools v3.0.0-beta.9 release.

See v2.2.0 release info: https://github.com/regorxxx/Search-by-Distance-SMP/releases/tag/v2.2.0