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: Playlist-Manager-SMP (Read 825 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Playlist-Manager-SMP

A playlist manager for foobar2000 and Spider Monkey Panel to save and load (auto)playlists on demand, synchronizing, ... along many more utilities.


Features


  • Manages Playlist files and AutoPlaylists.
    • Playlist files are linked to physical files (.m3u8, .m3u, .pls or .fpl).
    • AutoPlaylists are saved into json format.
    • All playlist are loaded in cache once, filtering just changes the "painted" playlist on the list.
  • AutoPlaylists: contains all functionality on Auto-playlist Manager by marc2003 plus more.
    • Create, rename, delete AutoPlaylists.
    • Edit query, sort pattern and sort forcing.
    • Adds tooltip info, UI features, filters, etc.
    • Number of tracks output is updated at foobar startup. (and/or 'at manual refresh')
  • Loads .m3u8, .m3u and .pls playlists x100 times faster than standard foobar (if all items are on library). i.e. "As fast as the native format".
  • Auto-saves changes within foobar to binded playlists files. (configurable)
  • Automatically updates changes within the tracked folder. (configurable)
  • New updates are delayed when performing internal updates/processing to avoid conflicts.
  • Bind playlist to files:
    • Tracks playlists for changes and update binded files.
    • Auto-saving (configurable).
    • Deleting the file also ask to delete the binded playlist.
    • Renaming the files also renames the binded playlist.
    • Show binded playlist (becomes active playlist).
  • Lock/unlock playlists (so they are read-only).
    • Automatically locking of native foobar playlists files (.fpl). (configurable)
    • When locked, playlists can not be updated nor edited. They can be deleted.
    • Filename can be changed, but not playlist name (inside the file). This allows to set different playlist and file names if required.
  • Playlist unique IDs. You can have multiple playlists with same name on the UI and binded to different files. (configurable)
    • If changing UUIDs config while having playlists already loaded, then new config will be used whenever they get updated.
    • You can manually force new UUID config just by renaming the files.
  • Show playlist size on the list. (some limits apply for .fpl playlist files) (configurable)
    • All (refresh autoplaylists queries)
    • Only standard playlist
    • No size
  • If you choose not to refresh autoplaylist sizes, then the first calculated size gets used: when imported from json or creating the autoplaylist.
  • Tooltips show different playlist info:
    • Name plus UUID.
    • Playlist size (tracks). Also for AutoPlaylists (the number of tracks output by the query).
    • Category / Tag(s).
    • Status (lock).
    • Query. Sort Pattern. (AutoPlaylists)
  • Cyclic filters:
    • Show All | Only Autoplaylists | Only Playlists
    • Show All | Not locked | Only locked
  • Cyclic Sorting:
    • Name: Az | Za
    • Size: Ascd. | Desc.
    • Category: Az | Za
  • UUIDs: added to the name, so they are separated from non tracked playlist by name when loaded in foobar. Some also allow some level of names duplication.
    • Invisible unicode chars plus (*)
    • (a-f)
    • (*)
    • Or none
  • 3 different writable formats. (some limits apply for .pls playlist files) (configurable)
  • Filter (configurable) and sorting gets saved between reloads.
  • RecycleBin: deleting and restoring.
    • Uses timestamps to uniquely identify files: no collisions with other files within the RecycleBin.
  • A backup of the previous playlist json file is created every time the panel is loaded. Old backups are sent to recycle bin.
  • Properties descriptions change according to things set on the panel, not just the values. i.e. if you change the sort method, then the description reflects the associated states dynamically.
  • UI:
    • UI resizable on the fly.
    • Selection indicators.
    • Now playing and loaded playlist indicators.
    • Empty / not empty playlist indicators. To be used as fallback when size is not shown.
    • Size (configurable).
    • Separators between different names/categories (configurable).
    • Colours for different playlists types and status (configurable).


Current limitations
.fpl playlists (native format) are read only and can not be autosaved since the format is closed source and there are no methods on  Spider Monkey Panel to save them on a path (without showing the 'save as' window), neither load them as handle lists (without loading on playlist tabs, for example to update the track count).
Whenever that changes, I will add full support for .fpl, and end pre-release state.

Also integrates
 1. Menu-Framework-SMP: Helper which allows to easily create customizable and dynamic menus.

Installation
Copy all files from the zip into YOUR_FOOBAR_PROFILE_PATH\scripts\SMP\xxx-scripts
Any other path WILL NOT work without editing the scripts. (see images_Installation_*jpg)
For ex: mine is c:\Users\xxx\AppData\Roaming\foobar2000\scripts\SMP\xxx-scripts...
For portable installations >= 1.6: .\foobar2000\profile\scripts\SMP\xxx-scripts...
For portable installations <= 1.5: .\foobar2000\scripts\SMP\xxx-scripts...
Then load 'playlist_manager.js' into a SMP panel within foobar.

Download latest release (or nightly releases) at github:
https://github.com/regorxxx/Playlist-Manager-SMP

Re: Playlist-Manager-SMP

Reply #1
Following a github suggestion, have been working on relative paths support for playlist and it should be ready on the next pre-release along these changes.

- Additional checks for portable installations.
- Relative Paths: playlists can now be saved with paths relative to the playlist folder.
- New menu to change playlist extension.
- New menu to relative/abs path config.
- Playlist loading is done using cache matching any of both absolute and relative path playlists, independently of configuration (for saving).
- Fpl playlist data (like tags, size or category) is now saved between sessions (removing some of the intrinsic limitations of the closed format).
- Multiple info popups at some points when working with fpl and pls playlists for the first time.
- Using pls format disables UUIDs menu and forces UUID refresh to none for consistency.
- Using pls format disables some menus for editing data (pls format doesn't allow extra comments).
- Changed the background text when filtering the lists and # items was 0. (previously it showed the default text)
- Multiple bugfixes for fpl and pls file edits.

Re: Playlist-Manager-SMP

Reply #2
[0.2.2] - 2021-05-19
### Added
- Portable: Additional checks for portable installations.
- Relative Paths: playlists can now be saved with paths relative to the playlist folder.
- Menu: entry to change playlist extension.
- Menu: entry to relative/abs path config.
- Menu: different tools to check for errors (absolute/relative paths mixing, dead items on playlist files, etc.)
- Fpl playlist data (like tags, size or category) is now saved between sessions (removing some of the intrinsic limitations of the closed format).
- Multiple info popups at some points when working with fpl and pls playlists for the first time.
### Changed
- Bugfix: All data arrays get updated on playlist saving/editing (previously only displayed data was updated, leading to some display bugs).
- Bugfix: Multiple bugfixes for fpl and pls file edits.
- Helpers: Playlist loading is done using cache for both absolute and relative path playlists, independently  of configuration (for saving).
- Using pls format disables UUIDs menu and forces UUID refresh to none for consistency.
- Using pls format disables some menus for editing data (pls format doesn't allow extra comments).
- Changed the background text when filtering the lists and # items was 0. (previously it showed the default text).
- Playlist loading should be much faster after the first time all libray paths have been cached, since that was the main culprit of loading time (+1 sec for 70k tracks).
### Removed

Re: Playlist-Manager-SMP

Reply #3
Just pushed a few updates you can try until I create a new pre-release. Categories are finally used to filter the playlist panel and not only as info on tooltips. Tags remain for relevant info-only data you may want to add to any playlist file.

## [Unreleased] (Download from repository not from the releases)
### Added
- Menu: tool to check for size mismatch. Compares # paths against size tag on files for .m3u8, .m3u or .pls. Also reports playlist files without those tags.
- Menu: New header menu invoked with R. Click at the top of the panel.
- Menu: Show/hide shortcuts info on tooltips.
- Filter: Playlist may now be filtered by category, multiple selection allowed in a menu.
- Filter: If lists are being filtered by category, an indicator is shown in the header text.
- Tooltip: Tooltip for header with complete path, current category filter and shortcuts info.
- Tooltip: Tooltip for playlists with shortcuts info.
- Shortcut: Shift + Click sends current selection directly to playlist file (without needing to load it first).
### Changed
- Shortcut: Shift + Ctrl + Click deletes selected playlist. (previously it was assigned to Shift).
- Menu: Config menus (R. Click) moved to header menus. For consistency now all contextual menus related to the playlists are invoked within the list, and the rest at the top.
- Menu framework: updated.
### Removed
### Fixed
- Deleting a playlist while pressing shift no longer deletes it without sending the file to the recycle bin (for later restoring). It matches menu behavior now.
- Selection indicator not being removed when moving mouse from list to header.

X

X

X

X

Re: Playlist-Manager-SMP

Reply #4
## [0.3.0] - 2021-05-26
### Added
- Menu: tool to check for size mismatch. Compares # paths against size tag on files for .m3u8, .m3u or .pls. Also reports playlist files without those tags.
- Menu: New header menu invoked with R. Click at the top of the panel.
- Menu: Show/hide shortcuts info on tooltips.
- Filter: Playlist may now be filtered by category, multiple selection allowed in a menu.
- Filter: If lists are being filtered by category, an indicator is shown in the header text.
- Tooltip: Tooltip for header with complete path, current category filter and shortcuts info.
- Tooltip: Tooltip for playlists with shortcuts info.
- Shortcut: Shift + Click sends current selection directly to playlist file (without needing to load it first).
### Changed
- Shortcut: Shift + Ctrl + Click deletes selected playlist. (previously it was assigned to Shift).
- Menu: Config menus (R. Click) moved to header menus. For consistency now all contextual menus related to the playlists are invoked within the list, and the rest at the top.
- Menu framework: updated.
### Removed
### Fixed
- Deleting a playlist while pressing shift no longer deletes it without sending the file to the recycle bin (for later restoring). It matches menu behavior now.
- Selection indicator not being removed when moving mouse from list to header.

Re: Playlist-Manager-SMP

Reply #5
Since the latest pre-release already supports sending tracks to a playlist file without loading it, I'm considering adding some integration with Playlist-Tools-SMP to create a pools utility.

Playlist tools already can do anything random pools component does (creating pools with queries), but I'm thinking about using pre-set playlists as sources. It will be available on the next release for loaded playlists on foobar, but I want to expand it to playlist files within any instance of a Playlist Manager.

That way it should be pretty easy to have some dummy 'container' playlists where you collect tracks by moods, occasion, whatever, ... (using Shift + Click which sends current selection directly to playlist file without loading it first). And then use the other script to use those 'container' playlists as source pools for a final playlist. The point of this approach is not having those dummy playlists always loaded on foobar cluttering the UI (using macros already allow this, but you have to add select/close playlist steps).

Finally, that should also work along Search-by-Distance-SMP. Since I wanted to use some 'container' playlist as source to create playlists on the fly with similar tracks to a given set (thus integrating all MusicIP functionality).

Re: Playlist-Manager-SMP

Reply #6
## [0.3.1] - 2021-05-28
### Added
- Menu: entry on header menu to reset all categories shown.
### Changed
- Menu framework: updated.
### Removed
### Fixed
- Changing extension to .pls did not update the UUID to "nothing".

Re: Playlist-Manager-SMP

Reply #7
v0.4.0 - File restructuring and cleanup
Maintenance release for better compatibility with other repositories.

## [0.4.0] - 2021-06-07
### Added
### Changed
- Helpers: Moved all SMP scripts without UI (those not meant to be loaded directly on panels) to 'main'.
- Helpers: Split 'helpers_xxx.js' file into multiple ones for easier future maintenance.
### Removed
### Fixed

Re: Playlist-Manager-SMP

Reply #8
v0.4.1 - Playlist Tools integration
See changelog for all changes.

    Playlist manager integration for pools. They will use playlists tracked by this manager as source is set to do so.
    Custom color improvements (standard text included).
    Minor improvements.

(*) Recommended to update all other scripts (Playlist Tools, Search by Distance, World Map) too. There have been major changes on those.


## [0.4.1] - 2021-06-15
### Added
- Integration: Listeners to share tracked playlist path with other panels (use 'window.NotifyOthers('Playlist manager: playlistPath', null)'). Used on [Playlist-Tools-SMP](https://github.com/regorxxx/Playlist-Tools-SMP) to use tracked playlist files as source for pools. i.e. Playlist A would match first a playlist within foobar with same name, then a playlist file with matching '#PLAYLIST:Playlist A' tag and finally any playlist file named 'Playlist A.m3u8'. Autoplaylists are excluded (use queries instead) and fpl files too. This feature allows to use virtual playlists as containers, where you can easily collect tracks (since Playlist Manager allows to send tracks directly to a file without loading it) to be used later on pools without polluting the UI with tons of dummy playlists.
- Colors: added menu option to change standard text color, switchange between CUI\DUI color or custom one.
### Changed
- Portable: when properties are set for the first time, now use relative paths on profile folder for portable installations (>= 1.6).
- Integration: Moved some functions to 'playlist_manager_helpers.js' to easily integrate others scripts with the playlists objects.
- Data: json file for playlists is now formatted to be readable.
- Colors: background color menu moved to 'Set custom colour...' submenu. Now all colour options reside in the same submenu.
- Buttons framework: skip icon drawing if font is not found.
- Buttons: icons to all buttons.
- Helpers: warn about missing font on console if trying to load a font and is not found.
### Removed
### Fixed
- Colors: panel did not repaint with default color values in some cases after using 'Reset all to default' entry.
- Avoid 2 possible crashes when playlist json files get corrupted. Warns about it whit a popup (to restore a backup).

 
SimplePortal 1.0.0 RC1 © 2008-2021