Script should be installed as package, using the package manager at the SMP Configuration window. Old method is still supported anyway.
REQUIRES SMP OR JSPLITTER
Download below clicking at '[...]-package.zip'. Check installation instructions here.
See full changelog here.
1.0.0-beta.1 - 2025-09-25
Added
- AutoTags: new 'bMirrorChanges' tag which forces playlists reloading (if playlist was already loaded on UI) when the manager refreshes due to external changes. It may be used to mirror any change on files due to external software. Note this behavior may clash with changes made to playlists within foobar2000, since external changes always take precedence. There is not any kind of specific changes comparison, only the last modified date is checked.
- Search: new setting to search within queries by string matching. i.e. you can look for 'Rock' within all AutoPlaylists queries, and display those which use that word.
- Sorting: new entry at 'Filter and sorting' button menu to apply current panel sorting to playlist tabs. Not available unless UI-only playlists are tracked. Note it follows the folder tree (if folders are present), thus respecting the sorting within (sub)folders. For ex. if there is a folder named 'UI' which is the last one alphabetically, and it contains two playlists named '3', '2', etc. these playlist will be the last one at tabs, since they belong to 'UI' parent. Thus, for items in panel being shown as '4', 'My pls', 'UI'['2',3'], it would result in a sorting for the playlist tabs as '4', 'My pls', '2', '3' instead of '2', '3', '4', 'My pls' (if folders were not considered). Note flat/folder view may easily be switched pressing Ctrl + B. Benefits of this feature over other approaches (as shown here), apart from following folder tree, include being able to sort with any other method supported by the panel. i.e. not only alphabetically, but also by playlist size, date, etc.
- Sorting: new entry at 'Filter and sorting' button menu to alphabetically sort playlist tabs no matter if UI-only playlists are tracked or not (as shown here). Pressing shift while clicking the menu entry will invert order.
- AutoPlaylist: new submenu with AutoPlaylists presets at 'List menu' ('+' button). It has both standard presets and some based on current selection. For ex. 'Rated >3 tracks by selected artist' which outputs a different AutoPlaylist every-time you change the selection. Both query and playlist names are dynamically adjusted. This is based on Dynamic Queries, but entries are not configurable (use my other scripts for that). Feel free to suggest additional default entries though.
- AutoPlaylist: UI-only AutoPlaylists have a new menu entry to show the native AutoPlaylist properties window.
- Playlists maintenance tools: new entries to check for duplicates by TF for AutoPlaylists and standard playlists.
- Queue: new entry for folders, multiple and single selection to add playlist(s) contents to queue. See related thread. If any of the playlist is already present on UI, the tracks are sent from them, thus having queue idx associated (which may be used via TF on playlist viewers).
- Installation: new panel menu, accessed through 'Ctrl + Win + R. Click' (which works globally on any script and panel, at any position), used to export/import panel settings and any other associated data. These entries may be used to fully backup the panel data, help when moving between different JS components (JSplitter <-> SMP) or even foobar2000 installations, without needing to manually backup the panel properties or other external files (like .json, playlists, etc.).
- UI: new menu entry to share current UI settings across all available Playlist Manager panels within foobar2000. It can be found at the settings menu 'Panel UI' submenu. Every other panel will be highlighted and show a popup asking to import the new settings or ignore them.
- UI: new menu entry to close a playlist on the contextual menu.
- UI: new menu entries to add new playlists by specified extension (and not only the panel's default one).
- UI: new setting to force quick-searching by name instead of being associated current sorting method (by category, size, etc.). It's enabled by default.
- UI: added multiple popups and info related to the use of non-tracked items on library and files with subsongs (.cue, .iso, etc.).
- UI: settings button tooltip now shows 'Shift + Win + R. Click' shortcut to open SMP/JSpliter panel menu (which works globally on any script and panel, at any position).
- UI: quick help popup also shows the 'Shift + Win + R. Click' shortcut (see above).
- UI: settings to selectively chose what playlist metadata is shown on the tooltip.
- UI: created and last modified date can now be shown on tooltip.
- UI: new settings exposed for scrolling: smooth scrolling, reverse and rows per step. Smooth scrolling displays the animation within intermediate steps. Auto setting for rows per step will dynamically adjust the steps to the current size of the list.
- UI: new settings to control font scaling for different UI elements.
- UI: exposed color settings via window.NotifyOthers() method for themes/multi-panel support. You may pass a color scheme -size 6 recommended- (output from GetColourScheme()) at 'Colors: set color scheme' (applies to all compatible panels) or 'Playlist Manager: set color scheme' (applies only to this script), which will set appropriate colors following panel's color logic; alternatively you may set direct color settings at 'Playlist Manager: set colors' which needs an array of 5 colors or an object {toolbar, text, button, hover, active}. Panel has also independent settings to listen to colors from other panels (but not for sending colors as a color-server to others). See this and this.
- Playlists maintenance tools: new entry to check for subsong items in AutoPlaylists and Smart Playlists.
- Statistics: X-Axis shown values at display menu now allows any custom value.
- Statistics: Y-Axis filter at display menu now allows any custom value for 'greater than'/'lower than' filters.
- Statistics: option to filter data between 2 custom values on Y-Axis at display menu.
- XSP: added support for foo_playcount_2003 tags in Smart Playlists. i.e. '%2003_ADDED%', '%2003_LAST_PLAYED%', '%2003_PLAYCOUNT%' and '%2003_RATING%'.
- FPL: new settings to control .fpl playlists behavior, found at 'Playlist behavior\FPL playlists'. This submenu now exposes some previously hidden settings and also new ones related to JSplitter/marc2003's SMP mod.
- Exporting Playlists: 'Export and convert' presets have an additional option (at 'Playlist format' submenu) for .m3u and .m3u8 formats to switch Extended M3U usage. By default is set to true (previous behavior). It can be disabled for devices which can't parse comments prefaced by '#' (like Fiio devices). Fiio default preset has been updated with this setting.
- Console: additional logging options at settings menu.
Changed
- Installation: added support for foobar v2.25+ file-relative protocols.
- Installation: script may now be installed at any path within the foobar profile folder, no longer limited to '[FOOBAR PROFILE FOLDER]\scripts\SMP\xxx-scripts' folder. Obviously it may still be installed at such place, which may be preferred if updating an older version.
- Installation: multiple improvements to path handling for portable and non-portable installations. By default scripts will always try to use only relative paths to the profile folder, so scripts will work without any change when exporting the profile to any other installation. This change obviously doesn't apply to already existing installations unless restoring defaults.
- Installation: added popup warnings when scripts are installed outside foobar2000 profile folder. These checks can be tweaked at globSettings.json.
- Playlists maintenance tools: better handling of asynchronous processing, should work now better on slow HDDs when checking physical files (dead items, etc.).
- XSPF: revamped .xspf playlist loading for links and non-tracked files. It will now filter dead items and also there are multiple settings to control if non-tracked files should be loaded (they must exist) and how it's done. Added compatibility with foo_xspf1 as fallback loader, which may be specially useful to load single tracks from non-tracked cue files or other containers; without the component is not possible to do so, unless the container file is tracked (the manager handles it) since native foobar2000 is unable to load tracks by subsongs from external files.
- Playlist formats: already saved tracks file size and duration values will be rounded to 2 decimals on first init (after updating).
- Exporting Playlists: pressing SHIFT when clicking on any of the 'Export and convert' menu entries will skip tracks conversion and exporting and only process the playlist file. The submenu shows now this tip at the header. Issue 86.
- Exporting Playlists: 'Export and convert' action on folders or multi-selection will now collect all tracks first and fire a single converter thread for them, instead of one converter window per playlist. Total number of tracks which will be converted is shown on console.
- Exporting Playlists: updated preset for FiiO devices to handle Cyrillic and other special chars.
- Dynamic Menus: setting has been split into 3 options, with a new one omitting all entries related to playlists (by name) since they conflict with the way main menus are handled by Idx on DUI/CUI buttons, thus not pointing to the right entries when the playlists change and menus are refreshed. The option to expose the full list of entries is still available for CMD/foo_httpcontrol, which works fine for that usage (but will be broken on UI buttons).
- Folders: added support for 'External UI-only playlists' on destination folder for newly created playlists according to their format or action. Issue 83.
- Folders: 'Move to folder' submenus now also display the entire folder tree instead of a plain list with all folders. i.e. a folder containing folders will have its own submenu, etc. In any case folders are still sorted by name.
- Documentation: improved quick help and shortcuts referencing at multiple popups.
- Keyboard shortcuts: pressing Shift + F11 will open the quick help popup.
- Keyboard shortcuts: F6 shortcut now opens a menu to export selected playlists, while Shift + F6 export them to ListenBrainz.
- Instances manager: simplified the way multiple panels are handled (and library cache shared); it should work better now, without the need for an external file. Old method may also be used if new one gives problems on startup (see below).
- Configuration: expanded user configurable file at '[FOOBAR PROFILE FOLDER]\js_data\presets\global\globSettings.json' with a new setting to choose the instances manager used. By default is now set to 'v1' (see above).
- JSplitter (SMP) support for locked playlists.
- Configuration: simplified wording and popups when installing the package for the first time. In lite mode there is an additional popup suggesting to hide the bottom toolbar.
- Statistics: scrolling cursor is displayed when scrolling using mouse + dragging.
- Statistics: added horizontal (x) scrolling using the mouse wheel (for mouses with horizontal moves).
- Statistics: 'fill' chart type.
- Statistics: settings button tooltip now shows 'Shift + Win + R. Click' shortcut to open SMP/JSpliter panel menu (which works globally on any script and panel, at any position).
- Statistics: settings button tooltip now shows 'Double Click' shortcut to force data update (see above).
- Statistics: general improvements and optimizations of point statistics. Now also show the total number of tracks before deduplication.
- Statistics: axis legend is now shown at tooltip and point statistics popup.
- Statistics: X-axis keys are now shown even when not all keys can be displayed, omitting some of the values. This ensures that charts displaying numbers at the axis at least show the initial and some middle values. This applies for bars, lines, scatter, fill and timeline charts.
- Statistics: left scrolling button position is now adjusted following Y-Axis display (except for doughnut and pie charts).
- Statistics: scrolling buttons are now shown only when the chart is not showing all data (no zoom).
- Statistics: multiple menu entries at 'Display settings' have been renamed for clarity's sake.
- Statistics: buttons are now smoothly hidden when panel is not on focus. Transparency may be adjusted from 0 to 255 by setting buttons.alpha, timer to hide them by setting buttons.timer.
- Search: searching by tracks' paths now includes AutoPlaylists.
- Search: timeout for autosearch changed to 700 ms (previously 500 ms).
- Search: the search input box will parse RegExps if they are written in /[expression]/[flags] form, there is no need to enable additional settings.
- Search: the search input box setting to parse RegExp now controls whether all input is parsed as RegExp by default or not. i.e. 'test.' will be equivalent to /test./i. Note 'i' flag is forced in these cases, to specify other flags use /[expression]/[flags] format.
- Search: the search input box will allow the usage of wildcards on plain text search, without the need of RegExp usage. i.e. 'test* ' will be internally converted to /test.* /i.
- Search: drag n' drop multiple tracks using path search is now always allowed no matter if the setting to parse as RegExp is enabled or not.
- Tags: contextual menu on multiple selection to set tags now doesn't switch the presence of the tag value but first tries to add the value to all items and when it's already present, tries to delete it. This should simplify usage, since items already having the tag will not remove it when trying to also add it to those missing it.
- AutoPlaylist: UI-only AutoPlaylists are now treated as AutoPlaylists internally and not only as UI-only playlists (this involves some big changes internally so there may be some minor bugs as consequence). Thanks to these changes a lot of other improvements have been possible.
- AutoPlaylist: new AutoPlaylists created are now automatically loaded.
- AutoPlaylist: 'Clone in UI' menu entry or action also updates metadata now.
- AutoPlaylist: UI-only AutoPlaylists use the AutoPlaylist icon when using Lite mode, otherwise use the locked icon.
- AutoPlaylist: last modified date is now changed whenever the num of tracks (size), tracks file size or duration doesn't match the last saved value (rounded to 2 decimals).
- AutoPlaylist: sorting expressions at end of queries are now recognized at multiple input popups as the desired sorting, instead of asking for sorting again with another popup. For ex. at AutoPlaylist or Smart playlist (.xsp) creation, or when editing an existing playlist's query (in this case, the sorting will be replaced with the new one).
- AutoPlaylist: editing an AutoPlaylist query or sorting will also refresh the the associated UI playlist if loaded.
- XSP: new Smart Playlists created are now automatically loaded.
- XSP: 'Clone in UI' menu entry or action also updates metadata now.
- XSP: improved console logging for Smart Playlists loading, now the query part associated to playlists is also shown.
- XSP: last modified date is now changed whenever the num of tracks (size), tracks file size, playlist file size or duration doesn't match the last saved value (rounded to 2 decimals).
- XSP: editing an Smart Playlist query, sorting or limit will also refresh the the associated UI playlist if loaded.
- Shortcuts: multiple improvements to shortcuts shown on tooltips, adjusting them if lite mode is enabled or playlist is not compatible with such actions.
- Shortcuts: multiple improvements to shortcuts behavior, adjusting them if lite mode is enabled or playlist is not compatible with such actions.
- Shortcuts: multiple improvements to shortcuts available at settings menu, non compatible actions are grayed out.
- Playlists maintenance tools: on playlists with more than 20K tracks, opening the list menu no longer triggers a dead items check to show the count at the related menu entry. This should avoid situations where the menu is not shown immediately since the script is checking if every track exist first.
- UI: unified script updates settings across all my scripts, look for 'Updates' submenu.
- UI: quick-search settings menu is now duplicated at the search button's settings submenu.
- UI: pressing Up/Down arrow keys while quick-searching will jump to next/previous result.
- UI: playlist metadata (like size) is now updated when using the search tool if data was not cached.
- UI: modified and created date on tooltip is now shown as DD/MM/YYYY HH:SS.
- UI: clean up of 'List menu' entries to improve ease of usage.
- UI: clean up of 'Settings menu' entries to improve ease of usage. Import/export settings are now moved to its own submenu and renamed/moved a few other entries.
- UI: bottom toolbar is now adjusted to the font size settings.
- UI: improved bottom toolbar buttons size adjustment according to filter/sorting method.
- UI: improved multiple elements size adjustments according to font size.
- UI: UI-only Playlists load shortcut is displayed as 'Show playlist' instead of 'Load / show playlist', since they can not be (re)loaded.
- UI: general improvements to default color management. If no custom colors are set, text color is adjusted to dark/light backgrounds and they are updated immediately (not on panel reload). Also done some minor tweaks to playlist colors.
- UI: greatly improved repainting performance using columns, values are now cached when possible. This heavily affected the mouse movement smoothness over the panel.
- UI: improved general panel painting performance repainting only needed parts.
- UI: new tooltip settings implementation will reset to defaults any current tooltip related setting upon first init.
- UI: up/down buttons fading when mouse is not over the panel.
- Backup: delayed panel JSON backup and recycling on startup, which sometimes slowed down foobar2000 startup in old machines.
- Readme: updated readme pdf with latest changes, tips about 'Shift + Win + R. Click' shortcut (see above) and JSplitter install instructions.
- Helpers: updated helpers.
- Helpers: general code cleanup on menus internal code. Please report any bug on extra separators or menu entries not working as expected.
- helpers: performance improvements caching library items at multiple places.
Removed
- FPL: hidden setting to always lock .fpl playlists on load. This setting is now exposed on a more general 'FPL rules' property.
- UI: unnecessary double playlist backup when sending selection to a playlist.
- UI: unnecessary playlist refresh after changing fonts size.
Fixed
- Backup: auto-backup not including sorting and extra config file.
- Subsongs: fixed path handling for tracks with subsongs for any source different than ISO files (it was broken due to an un-tested change on previous versions). It should now properly handle all cases, even DSD files in .DSF and .WV formats (which report wrong 1 idx value).
- Search: last search not being applied on startup in some cases.
- Search: not excluding folders on internal processing on some cases.
- Auto-loading: manager kept reloading playlist files (auto-load) when tags, categories, etc. where changed via menus due to physical file changes.
- Playlists maintenance tools: fixed 'Revive dead items' maintenance tool changes being overridden by 'Playlist saving\Skip overwriting Playlists on file loading' setting added on 0.19.0. It also applies to the version on Playlist Tools.
- Playlists maintenance tools: fixed 'Subsong items' maintenance tool report, which did output a wrong number of found items.
- Exporting Playlists: 'Export and convert' not working properly with UI-only AutoPlaylists and Smart Playlists.
- Exporting Playlists: fixed output path option (without a popup asking for it) and filename presets introduced on 0.17.0 not working for AutoPlaylists and Smart Playlists.
- Folders: 'Move to folder' submenu was missing nested folders if they were not expanded. Now they are shown, although folders not present in current view/filter state, are still hidden.
- Folders: error restoring a deleted folder.
- FPL: wrong encoding of special chars '; , / ? : @ & = + $ #'.
- FPL: fix parsing of file paths.
- XSPF: wrong encoding of special chars '; , / ? : @ & = + $ #'.
- XSPF: malformed file paths when adding tracks to a .xspf playlist directly by mouse shortcut or drag n' dropping, which broke compatibility with other software.
- XSPF: URLS not being loaded properly in some cases due to forced lower casing. Now they are loaded with original casing. This error was heavily dependent on exotic servers being case sensitive.
- XSPF: container files different to .iso files did not had their subsong index saved.
- XSPF: cache not being cleared after using 'Update playlist' menu entry (or auto-updating), resulting on latest changes not being loaded without a manual panel refresh. It worked fine with other methods for sending tracks (like drag n' drop) though.
- XSP: unnecessary logging when checking for circular references on Smart playlists (.xsp).
- XSP: wrong size reported for Smart Playlists (.xsp) in some cases. For ex. at init or during search caching due to duplicates removal setting not being used in such cases.
- XSP: 'Reload playlist (overwrite)' not working properly for Smart Playlists.
- UI: fixed columns' width not being properly adjusted at 'auto' mode after changing font size (working fine after restarting panel).
- UI: fixed scrollbar resizing after changing font size or adding/deleting UI elements (like the header or bottom toolbar).
- UI: fixed rows resizing not being consistent with panel init.
- UI: fixed rows overlapping in some cases the bottom or header toolbar.
- UI: applying 'Multiple selection (range)' shortcut without a initial selection no longer selects all items up to the mouse position but only selects the current item.
- UI: panel shortcuts like focus on search (Ctrl + E) conflict with quick-searching while pressing Ctrl/Shift (to look at any position).
- UI: wrong column size in some cases -on auto mode- after using the search tool.
- UI: fixed multiple selection behavior when using filters, where random items where being selected after filtering by Idx, even if they were not the original ones. Now it tries to maintain items only when they are also present after filtering, reducing the selection otherwise.
- UI: sorting not being updated in some cases after playlist modifications.
- UI: minor fixes to available actions on playlist menus.
- UI: '&' being displayed as '_' on tooltips.
- UI: minor new line errors on folder button tooltip.
- UI: bottom toolbar tag/category filters showing 'Multiple...' (instead of 'All' by default) while loading the playlists at startup.
- UI: playlist highlighting animation was drawn over quicksearch box in some cases.
- UI: fix to nesting level of items within folders when parent folder was outside the view range.
- UI: fix to 'Export and convert' entry being grayed-out on multi-selection which only contains AutoPlaylists.
- UI: fix crash using 'splitter color' as background color on DUI.
- UI: workaround for dark theme not being identified on DUI foo_flowin panels.
- UI: multiple workarounds for rounded rectangles not being painted properly or producing crashes (SMP limitation).
- UI: fixed repainting errors in some cases at init related to sorting.
- UI: workaround for DPI checking under multiple OSes, specially for Wine (Unix).
- Dynamic menus: missing 'Clone in UI' exposed dynamic menu (at 'File\Spider Monkey Panel...' for AutoPlaylists.
- Statistics: chart not properly updating after the manager initializes all playlists on startup.
- Statistics: loading popup not being shown while the manager initializes all playlists on startup.
- Crash using drag n' drop or actions which moved the selection to a playlist if the source playlist was not tracked by the manager.
- Statistics: minor fixes.
- Fixed some misspelled terms on UI and variables (which also lead to some minor bugs).
