Releases: regorxxx/Playlist-Tools-SMP
v4.6.0 - JSplitter (SMP and x64) support
There may be a SMP's bug on installation. See wiki.
REQUIRES SMP 1.6.1 (mod version attached has some improvements by marc23)
See full changelog here.
4.6.0 - 2024-10-09
Added
Changed
- Pools: expanded 'Top tracks' and 'From current track' presets. Restore defaults at pools submenu to show them.
- Pools: 'Top tracks' folder is now split into 'Top tracks (rating)' and 'Top tracks (playcount)'.
- Pools: expanded 'Genre mixes' presets. Restore defaults at pools submenu to show them.
- UI: preset entries on pools submenu are now split into multiple columns if there are more than 10 elements.
- UI: preset entries can now be cloned or updated with current settings in most buttons and menus.
- JSplitter (SMP) support and ES2021 compatibility.
- Helpers: in case saving a file throws an error due to long paths (+255 chars) a warning popup will be shown.
- Helpers: updated helpers.
Removed
Fixed
v4.5.0 - Compatibility update
There may be a SMP's bug on installation. See wiki.
REQUIRES SMP 1.6.1 (mod version attached has some improvements by marc23)
See full changelog here.
4.5.0 - 2024-08-13
Added
- Quickmatch: added support for similar artists retrieved with ListenBrainz-SMP and tag files with the 10 most similar artists into 'SIMILAR ARTISTS LISTENBRAINZ' tag. Restore defaults to 'By similar artists' entry to use it.
- Last.fm: added support for similar artists retrieved with ListenBrainz-SMP and tag files with the 10 most similar artists into 'SIMILAR ARTISTS LISTENBRAINZ' tag. Restore defaults to 'Similar artists' tag remap entry to use it.
Changed
- Pools: input popup for queries now also allow 'SORT BY' expressions a the end of the query. They ware already supported in JSON presets and internally, but were throwing a warning about invalid queries when added with this method.
- Search by Distance: updated helpers related to similar artists handling.
- UI: added a restore defaults option to configurable menu entries related to tags (Quickmatch, Last.fm tools, etc.).
- Helpers: updated helpers.
Removed
Fixed
- Playlist Revive: fixed handling of files with tags showing '.' as value, being reported as exact matches in some cases.
v4.4.0 - Property fix + Check tags improvements
There may be a SMP's bug on installation. See wiki.
REQUIRES SMP 1.6.1 (mod version attached has some improvements by marc23)
See full changelog here.
4.4.0 - 2024-07-30
Added
- Other Tools\Check tags: added ALBUM to the list of default tags to check.
Changed
- Helpers: updated helpers.
- Pools: minor tweaks to pool presets.
- Other Tools\Check tags: ALBUM tag skips now some rules for multi-value tags.
Removed
Fixed
- Fix 'Property value is wrong' error. See.
v4.3.0 - Pools revamp & new tags automation plugins
There may be a SMP's bug on installation. See wiki.
REQUIRES SMP 1.6.1 (mod version attached has some improvements by marc23)
See full changelog here.
4.3.0 - 2024-07-24
Added
- Buttons: added presets to Search same by query and Search same by combinations buttons, which allow to quickly switch between any combination of settings. They can be found at the button's settings menu.
- Buttons: added presets to remove/show duplicates and filter playlist buttons, which allow to quickly switch between any combination of settings. They can be found at the button's settings menu. Additionally, a preset can be directly applied (without changing the button settings) pressing Shift + Ctrl + L. Click.
- Buttons: added direct preset processing to search same by (combinations) and search same by (query), without changing the button settings, pressing Shift + Ctrl + L. Click.
- Pools: new pools presets at 'Music Graph mixes' for all style clusters and supergenres present on search by distance/music graph descriptors (the script must be also present on the installation folder). While they are not finetuned like manually created pools, they can be considered equivalent to Spotify's genre mixes, creating playlists with random high rated tracks from different styles which mix well together. These presets are automatically generated everytime the menu is opened.
- Pools: new pools presets at 'Genre mixes', manually created to cover some arbitrary style clusters. It may be expanded on the future.
- Pools: added top last x years track mix presets, which make use of #YEAR# dynamic query expression. Use 'Restore defaults' on Pools submenu to enable them.
- Pools: added top not played tracks mix presets, which output similar tracks to "top tracks" mixes but only if they were not played on the last 2 weeks (to ensure fresh tracks every time). Use 'Restore defaults' on Pools submenu to enable them.
- Pools: added subfolders to pools, so now pools can be grouped on submenus and have many more of them with proper classification. Restore default entries to see changes.
- Other tools\Write Tags: added True Peak Scanner support. Is preferable to use the default custom tags, beware other settings may not work properly, your mileage may vary (and no further support will be given). Used along ReplayGain scanner, it could introduce unnecessary extra processing if ReplayGain is also enabled on True Peak Scanner. It's recommended to test in a few sample files to ensure tagging and settings are applied as desired anyway.
- Other tools\Write Tags: added BPM Analyser support.
- Quicksearch: added new entry at 'Partial match' submenu named 'By Title and same Artist', which further filters the partial match by title to only output results by the same artist than the selected one(s). This may be used to easily find duplicates by title, no matter if they have extra strings like '(live)', etc. The old entry also worked the same but the output included tacks from any artist, so the new one reduces the search one step.
- Remove Duplicates: added multi-value parsing to tools and buttons related to duplicates search and removal. i.e. A track with multiple artists but same title can be considered a duplicated if at least one of those artists matches (instead of requiring all to match). This can also be used for more exotic uses, like filtering a playlist and ensuring only X tracks share any genre. This setting can be switched at the 'Configuration\Duplicates Handling' submenu. See this for more info.
- Readmes: added readme for global settings found at 'foobar2000\js_data\presets\global' .json files.
- Configuration: expanded user configurable file at '[FOOBAR PROFILE FOLDER]\js_data\presets\global\globSettings.json' with a new setting for console logging to file. Disabled by default. Now this is a change from the previous behavior, where console was always logged to 'console.log' file at the [FOOBAR PROFILE FOLDER]. It can now be switched, but since it's probably not useful for most users is disabled by default.
Changed
- Pools: automatic numbering of sources has been enhanced to also cover playlist sources and any other source even if they have been partially numbered to avoid duplicates ('_LIBRARY,5:_LIBRARY_0,5' -> '_LIBRARY_1,5:_LIBRARY_0,5').
- Pools: 'pickMethod' key per source on pool is no longer needed and if any is omitted, 'random' is used by default.
- Pools: added extra checks to pools before processing them, console will output any error or wrong source setting.
- Presets: added extra checks when importing any Playlist Tools preset. Popups will be thrown if an error is found.
- Remove Duplicates: improved performance of duplicates removal in multiple places.
- Other tools\Import track list: added setting to skip lines starting with some string.
- Other tools\Import track list: improved file retrieval from online sources.
- Selection manipulation\Find & remove: greatly improved performance (~99%) (which affects when clicking the button to show the menu). It should be much faster now if you have tons of playlists or select many tracks to look for, requiring less than 30 ms with 5K tracks at the same time. As result, the default value for selection limit has been raised, up to 250 tracks (and the same for the limit configuration submenu).
- Configuration: changed the remove duplicates bias to prefer lossless tracks with 16 bits per sample, 44.1 Khz sample rate and greater %DYNAMIC RANGE% values.
- UI: preset name is now shown along the TF settings on Search same by (query), Search same by (combinations), Remove duplicates, Filter duplicates and Show duplicates buttons.
- UI: SMP main menus entries (at File...) are now cut to 70 chars in length before creating them.
- UI: Quickmatch, Playlist Tools and Last.fm buttons' tooltip cut to 50 chars per tag line.
- UI: changed wording on menu entries related to Playlist Revive.
- UI: changed wording on some submenus.
- UI: minor menu tweaks to reports.
- Buttons: reworked presets on same by query/combinations buttons. Restore defaults on these buttons upon installation if you have any error.
- Buttons: filter playlist button default tags now use artist and date but not title.
- Readmes: updated dynamic queries readme with latest additions.
- Helpers: minor performance improvements caching multiple playlist/selection checks on menu processing.
- Helpers: most json data files are now saved with Windows EOL for compatibility improvements with Windows text editors.
- Helpers: json button files are now saved with Windows EOL for compatibility improvements with Windows text editors.
- Helpers: updated helpers.
- Improved compatibility when running foobar2000 on drives without recycle bin.
Removed
Fixed
- Pools: multiple instances of the same playlist as source could not be used. See https://hydrogenaud.io/index.php/topic,126321.msg1048219/topicseen.html
- Playlist Revive: fixed handling of files without tags which were supposed to match by paths similarity.
- Quicksearch: workaround for 'ALBUM ARTIST' not working with multi-value tags in queries. It now uses that tag only when it's present on files, and fallbacks to 'ARTIST' otherwise. To use the new query, restore defaults on the 'Same Artist(s)' entry, the entire entry list or the button (the last 2 will remove any customized entry too).
- Quickmatch: tags no longer use '%' if not explicitly added to the entries, which solves unwanted usage of ARTIST or ALBUM ARTIST tags on queries.
- Other tools\Write Tags: tool not processing next step automatically after Chromaprint tagging in some cases.
- Top played tracks from: first and last years were not used when looking for a range. For ex. Top tracks from 2020-2024 did not output tracks from 2020 or 2024.
- Top rated tracks from: first and last years were not used when looking for a range. Top tracks from 2020-2024 did not output tracks from 2020 or 2024.
- Configuration: .json files at 'foobar2000\js_data\presets\global' not being saved with the calculated properties based on user values from other files.
- Fixed possible crash handling web request while closing foobar2000. See this, although current methods don't use 'WinHttp.WinHttpRequest.5.1' but 'Microsoft.XMLHTTP' which hasn't given any problems yet.
v4.2.0 - Internal update
There may be a SMP's bug on installation. See wiki.
REQUIRES SMP 1.6.1 (mod version attached has some improvements by marc23)
See full changelog here.
4.2.0 - 2024-03-21
Added
Changed
- Helpers: updated helpers.
Removed
Fixed
v4.1.0 - Quicksearch improvements
There may be a SMP's bug on installation. See wiki.
REQUIRES SMP 1.6.1 (mod version attached has some improvements by marc23)
See full changelog here.
4.1.0 - 2024-03-15
Added
Changed
- Quicksearch: 'Partial match' option now also checks for tag values matching everything but words within parentheses or brackets. For ex. "Eric's trip (live)" also matches "Eric's trip (home demo)" and "Eric's trip". Previously it only matched the last one (which matched both if used as reference).
- Configuration: expanded user configurable file at '[FOOBAR PROFILE FOLDER]\js_data\presets\global\globSettings.json' with a new setting to check OS features on every panel startup. Enabled by default. This has been the default behavior since OS' features check was implemented, but it can now be disabled to improve init performance a bit, specially at foobar2000 startup (since it seems to hang in some cases when running it on slow HDDs or systems).
- Helpers: updated helpers.
Removed
Fixed
v4.0.1 - Write tags (Audio MD5) fix
There may be a SMP's bug on installation. See wiki.
REQUIRES SMP 1.6.1 (mod version attached has some improvements by marc23)
See full changelog here.
4.0.1 - 2024-03-02
Added
- Configuration: expanded user configurable file at '[FOOBAR PROFILE FOLDER]\js_data\presets\global\globSettings.json' with a new setting for panel repaint debugging purpose. Disabled by default.
Changed
- UI: Improved panel repaint routines to minimize resources usage.
Removed
Fixed
- Other Tools\Write tags: Audio MD5 tagging not working due to menu name change on v0.6.5.
- Presets: fixed LUFS TitleFormat CUI preset.
v4.0.0 - UI revamp + Selection/playlist manipulation improvements
There may be a SMP's bug on installation. See wiki.
REQUIRES SMP 1.6.1 (mod version attached has some improvements by marc23)
WARNING:
Changed filename for 'buttons_others_device_selector.js' to 'buttons_device_selector.js' and 'buttons_others_main_menu.js' to 'buttons_utils_main_menu.js'. Before updating, rename all instances of these names at '[foobar2000 profile]\js_data\buttons_XXXXX.json' with the new names. 'buttons_XXXXX.json' are all json button toolbar files.
See full changelog here.
4.0.0 - 2024-02-28
Added
- Last.fm: added caching to YouTube links lookup, which can now be configured by date (or disabled setting it to zero). Pressing Shift + Click on any menu entry will also bypass the cache.
- Selection manipulation\Advanced sort...: new harmonic mixing entries to repeat patterns in small cycles (30 tracks) instead of applying a pattern for the entire selection (which results in too many consecutive tracks with same key for big selections).
- Playlist manipulation\Harmonic mix: new harmonic mixing entries to repeat patterns in small cycles. See above.
- Selection manipulation\Advanced sort...: new harmonic mixing entry to apply a semi-random pattern.
- Playlist manipulation\Harmonic mix: new harmonic mixing entry. See above.
- Selection manipulation\Expand...: added 'By Album Artist', 'By Decade', 'By Protocol' and 'By File/Url' entries.
- Selection manipulation\Jump...: added 'By Album Artist', 'By Decade', 'By Protocol' and 'By File/Url' entries.
- Playlist manipulation\Query filtering: added 'Not links' and 'Same decade' entries.
- Other Tools\Check tags: new option to also check if genre/styles exist at the Music Graph from Search-By-Distance-SMP.
- Macros: custom macro button now has a menu entry to edit the button name (which was previously only editable on first init).
- Buttons: added more icons to Playlist Tools submenu custom button.
- Toolbar: new settings for text (or icon) position: left, right (default), top and bottom. These settings mimic CUI options at the buttons bar.
- Toolbar: new settings for text scale (now independent of button and icon scale).
- Toolbar: new settings for icon scale (now independent of button and text scale).
- Quicksearch: added new option 'Partially includes' which uses 'HAS' instead of 'IS' to find matches at any place of a tag.
- Configuration: added COMPOSER to the list of global tags.
- Configuration: added LOCALE LAST.FM to the list of global tags.
- Configuration: added integrity checks to global user settings files, found at '[FOOBAR PROFILE FOLDER]\js_data\presets\global[...].json'. In particular queries are now check to ensure they are valid and will throw a popup at init otherwise. Other settings are check to ensure they contain valid values too.
- Configuration: expanded user configurable file at '[FOOBAR PROFILE FOLDER]\js_data\presets\global\globSettings.json' with a new setting to output to console profiling logs at script init. They work globally. Disabled by default.
Changed
- Selection manipulation\Expand...: greatly enhanced performance for large selections.
- Selection manipulation\Jump...: greatly enhanced performance for large selections.
- Other Tools\Write tags: checks now if the tracks exist (as file) before processing and will skip those being a link or dead. This should have been handled by the external tools but it produced errors on some cases.
- Other Tools\Check tags: list of excluded values is now checked after using and rewritten in case there are duplicate tag keys with different casing (STYLE vs style) or duplicated tag values.
- Search same by: default entries now use the global tags set.
- Search same by: if an entry tag matches one at global tags, the entry is named as its key (instead of using the TF expression). For ex. using '$year(%DATE%)' as TF, will be shown as 'Date' on the menu entries.
- 'Other tools\Check tags': composer check now uses the vale at global tags.
- Pools: .xspf playlists now follow the complete specification, allowing multiple locations per track. In case one is not found, the next one is used. Previously only one location per track was allowed. Content resolution via tags has not changed since that was already implemented.
- Quicksearch: 'Partial match' and 'Begins with' options now formats the tag values with lower case to retrieve more matches.
- Configuration: changed the remove duplicates bias to prefer tracks with higher play-counts and positive feedback tag (love/hate).
- Helpers: updated helpers.
- Console: improved log file formatting on windows text editors which parse new lines only with CR+LF instead of LF.
- Buttons: changed filename for 'buttons_others_device_selector.js' to 'buttons_device_selector.js' and 'buttons_others_main_menu.js' to 'buttons_utils_main_menu.js'. Before updating, rename all instances of these names at '[foobar2000 profile]\js_data\buttons_XXXXX.json' with the new names. 'buttons_XXXXX.json' are all json button toolbar files.
- Code cleanup.
Removed
Fixed
- Macros: fixed macros button and custom macro button to work with the latest changes to macros on 3.7.0.
- Other tools\Import track list: error setting custom path.
- Other Tools\Check tags: fixed regression with value comparison not working in some cases.
- Toolbar: buttons' size not restored back to normal height after disabling 'Full size buttons' without reloading the panel.
- Pools: in .xspf playlists, identifier tag was not working properly at the content resolution step (usually used for MUSICBRAINZ_TRACKID).
- Pools: .xspf playlists not loading properly when content resolution was used in some cases.
- UI: wrong parsing of png masks on unix systems (currently, it only affected the ListenBrainz icon when changing the font color).
- Most played tracks at: last.fm listens are now deduplicated within a 30 seconds range to ensure tracks are not counted twice in some cases where the timestamp differs by some second.
- Minor fixes.
v3.7.0 - Macros fixes and revamp
There may be a SMP's bug on installation. See wiki.
REQUIRES SMP 1.6.1 (mod version attached has some improvements by marc23)
See full changelog here.
3.7.0 - 2023-12-17
Added
Changed
- Macros: changed implementation to don't record entries called by other macros, just the parent; this ensures any action run by other macros is always run and up to date with any change at a later point. Also no double processing (due to recording of both the parent and child items).
- Macros: added a limit on the recursion within macros, not allowing infinite loops due to Macro A calling Macro B and Macro B calling Macro A at the same time.
- Helpers: updated helpers.
Removed
Fixed
- Portable: 'Other tools\Check tags' error on portable installations while setting dictionaries with relative paths.
- Macros: saving a macro corrupted the Playlist Tools button configuration.
- Macros: did not save properly the asynchronous flag as true/false.
- Macros: did not apply the asynchronous flag properly to the configurable tools (in this case only to 'Other tools\Check tags').
v3.6.0 - Top played tracks from + Pool fixes
There may be a SMP's bug on installation. See wiki.
REQUIRES SMP 1.6.1 (mod version attached has some improvements by marc23)
See full changelog here.
3.6.0 - 2023-12-08
Added
- Pools: can now read .fpl playlist files from Playlist-Manager-SMP.
- Toolbar: now supports color for image icons (which are not drawn using fonts).
- Top played tracks from: added 'Top played tracks from' tool to retrieve most played tracks with a %DATE% tag value within a period or equal to a year.
- Macros: more tests added to the default macros.
Changed
- Pools: now indicate the total and deduplicated size of the source.
- Renamed 'Most played tracks from' tool to 'Most played tracks at', along its entries, so there is no confusion about the tracks selected, those which were listened at an specific year (or perior), and not related to a %DATE% tag.
- Helpers: updated helpers.
Removed
Fixed
- Pools: crash at deduplication step.
- Pools: crash at custom pool menu entry usage.
- Pools: custom pool menu entry did not save some of the settings for posterior executions.
- Pools: error at pools' entry list edition.
- Pools: 'start' picking method was retrieving one track less than intended.
- Selection manipulation\Scatter by tags: crash using By... (tag-value)' due to a typo.
- 'Most played tracks at' and 'Top rated tracks from' now always output the first X tracks (with highest scoring) when randomized and the random sorting is applied afterwards.
- First menu entry on the 'Switch enabled menus' list was skipped due to a typo. Now available. This bug made 'Most played tracks from...' to not be available on previous installation.