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

Re: Playlist-Tools-SMP

Reply #50
Did it wrong. Follow the instructions on the repo or the txt file.
Quote
Copy all files from the zip into YOUR_FOOBAR_PROFILE_PATH\scripts\SMP\xxx-scripts
Quote
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\...
Multiple scripts may share some files (specially helpers) so overwrite if asked to do so.
Then load any script into a SMP panel within foobar. See info for usage.

All files are meant to reside within xxx-scripts folder, not on a subfolder there.
X

EDIT: Hope it's clear now, will add this image on next releases.

Re: Playlist-Tools-SMP

Reply #51
hmm, i received the same error

i tried both locations:
For portable installations >= 1.6: .\foobar2000\profile\scripts\SMP\xxx-scripts\...
For portable installations <= 1.5: .\foobar2000\scripts\SMP\xxx-scripts\...

is there a special version of Spider Monkey Panel I should be using?

Re: Playlist-Tools-SMP

Reply #52
hmm, i received the same error

i tried both locations:
For portable installations >= 1.6: .\foobar2000\profile\scripts\SMP\xxx-scripts\...
For portable installations <= 1.5: .\foobar2000\scripts\SMP\xxx-scripts\...

is there a special version of Spider Monkey Panel I should be using?

nvm, it's working now

i had to explicitly right click the panel and click reload for it to work after i changed the location of the files

thank you for the help

Re: Playlist-Tools-SMP

Reply #53
Last update until September. Clone the repository to get the latest changes (Code/Download zip) instead of using the releases page.
Quote
### Added
- Pools: added new property to pools named 'insertMethod' which may be assigned a value. 'standard' or 'intercalate' methods are currently allowed. Standard works as previous behavior, where items from sources are added to the end of the previous sources (before final sorting), therefore the list being source 1 tracks then Source 2 tracks then... Intercalate method inserts items from each source intercalating them (Source 1 Track 1, Source 2 Track 2, Source 3 Track 3, Source 1 Track 2, ...). Note intercalate method is meant to be used without final sorting, otherwise it would be overridden. This may be used to alternately play one song from a set of playlists (instead of using foo_scheduler which has some problems for that specific use-case) https://hydrogenaud.io/index.php?topic=121432.msg1002053;topicseen#new.
- Pools: added new default pool preset 'Top tracks mix (intercalate)' to the default list (may need to restore defaults on the menus to enable it). It's equivalent to the 'Top tracks mix' default pool but intercalating the tracks by rate instead of using a final random sorting.
- Presets: added new presets for the new 'insertMethod' pools' feature. See 'presets\Playlist Tools\pools\intercalate_playlists.json'.

New pools method preview:
Spoiler (click to show/hide)

Currently 'insertMethod' can only be set editing/creating presets (and then loading it). Not using the 'Custom pool' menu entry, (since I have not created input popups for it).

(*) The new default preset will only appear after restoring defaults (Pools\Remove entry from list...‍‌‍​​\Restore defaults or Configuration\Reset all configuration... ) on previous installations. Export user presets if needed to create a backup.

Re: Playlist-Tools-SMP

Reply #54
I'm getting this error, but I'm pretty sure I have the path right, any tips?

Error: Spider Monkey Panel v1.2.3 ({B78E8E83-4E10-4B0D-BD92-E740CB69E8F3})
include failed:
Path does not point to a valid file: helpers\buttons_xxx.js

File: <main>
Line: 13, Column: 58

Stack trace:
  @<main>:13:58


My path is: C:\Users\______\AppData\Roaming\foobar2000\scripts\SMP\xxx-scripts

Re: Playlist-Tools-SMP

Reply #55
Some users are experiencing errors related to an SMP bug when including files. The file is there but SMP does not find it as you noted.
Are you using 1.5.2?
https://hydrogenaud.io/index.php?topic=116669.msg1001720#msg1001720

Try with it, if you still have errors report it at that thread. I have no clue what's going on since the same scripts work fine for some people and me on multiple PCs.

Re: Playlist-Tools-SMP

Reply #56
I'm using 1.5.2, but no worries, I've found what I was looking to do via Find & Play at this point. Thanks!

Re: Playlist-Tools-SMP

Reply #57
I'm using 1.5.2, but no worries, I've found what I was looking to do via Find & Play at this point. Thanks!
Totally different aims, great it works for you though.

Minor update to improve usability of search by distance customizable button: switches to only output acoustic, instrumental or female vocal tracks (+ the recipe or whatever you configuration is to find similar tracks). Clone the repository to get the latest changes (Code/Download zip) instead of using the releases page.
Quote
### Added
- Search by distance: added new presets for Search by Distance customizable button. Added Acoustic, Instrumental and Female Vocal versions for 'Similar tracks (G)' recipe which forces only acoustic, instrumental or female vocal tracks as output. Style, genre and Picard tags (acousticness, speechiness, gender) -see below- are taken into consideration.
- Search by distance: added a submenu on customizable button to set additional query filters (along the forced query): Acoustic, Instrumental and Female Vocal tracks. They can work in conjunction with any recipe as long as the recipe does not force a query too.

Spoiler (click to show/hide)

Re: Playlist-Tools-SMP

Reply #58
Just pushed a new update. Please read the new installation instructions. Added async processing for check tags and async support for macros. This update is required if you also update any of my other scripts due to the UTF-8 file saving/reading changes. Clone the repository to get the latest changes (Code/Download zip) instead of using the releases page.
Quote
### CHANGED
- Check tags: can now be set to be executed asynchronously, on the background, having a minimum impact on UI responsiveness. This is now the default behavior. Code has also been optimized, requiring now x0.96 the previous time (on synchronous mode). In async mode it takes x1.35 the previous time, a bit more but without blocking the UI. (tests done with 75.6K tracks)
- Check tags: when comparing tag values between different tags (genre -> style) to find possible errors, instead of comparing all tags with all other tags, only related groups are used (faster and more useful): [genre,style], [composer, involvedpeople, artist], etc. Configurable at properties panel.
- Macros: Are executed on synchronous mode by default (previous behavior but enforced now even for async tools).
- Macros: Possibility to set async mode on recorded macros (via popups), to execute all possible entries asynchronously (the list of async tools can be found on 'Configuration\Asynchronous processing'. Those tools will be executed on the set mode independently of the global configuration. If you want to selectively set entries in async mode, just create single macros for them and call those with another macro: Global macro -> Macro 1 (async), Macro 2 (sync), Macro 3 (sync)
- All json files are now saved as UTF-8 without BOM. All json files are now read as UTF-8 (forced).
- Updated installation instructions.
### FIXED
- Pools: Playlist files from Playlist-Manager-SMP were not being read properly due to a typo on path detection.
- Import track list: prefixes not being stripped properly.
- Macros: Typo on one of the entries of the 'Test tools' macro (so it was not being skipped instead of executed).
- Macros: Crash when trying to save a macro with duplicated name.

Reset Macros entries to get the new async versions! -> 'Macros\Remove entry from list...‎‌‎​​\Restore defaults'

Re: Playlist-Tools-SMP

Reply #59
Just pushed a new update. Added async processing to search by distance, and a new set of tools for playlist manipulation (merge, intersection, difference). Also updated lock status checks with new SMP functionality, so tools are available according to the allowed actions instead of just being disabled if a playlist is locked.This update is required if you also update any of my other scripts due to the UTF-8 file saving/reading changes. Clone the repository to get the latest changes (Code/Download zip) instead of using the releases page.

Quote
   ### Added
   - Search by Distance: Checks graph links cache size on startup and warns when file size > 40 Mb. This is done to avoid memory leaks, since the file is fully loaded on memory and a corrupted file may increase the map size indefinitely until crashing the panel.
   - Search by Distance: Customizable button now has all additional menu entries found at Playlist Tools button: debug graph, find genre/styles not on graph, reset cache, etc. i.e. both now should offer the same degree of customization and advanced tools.
   - Playlist manipulation: Merge, intersect and compute difference between playlists. New tools to join the tracks from 2 playlists (without duplicates), make an intersection of both or the difference. Overwrites currently selected playlist.
   ### Changed
   - Search by Distance: Graph links cache is now calculated asynchronously whenever it's required (on first initialization or when manually forced to do so, thus improving the startup time the first time the panel it's loaded and not blocking the UI on posterior updates.
   - Script requires at minimum SMP 1.5.2. now.
   - All tool entries now have specific lock status checks according to their functionality (adding items, reordering, etc.) instead of checking if playlist is globally locked. Therefore some entries may now work on locked playlist, as long as the action to be performed is allowed.
   - Macros: Macros set to be executed async have a flag on the menu entry to warn about it.
   ### Fixed
   - Pools: output playlist was not being checked for locked status properly.
   - Playlist manipulation: 'Go to/close playlist' entries were greyed out when current playlist had no items; they should have only been disabled when there were no playlists.

Re: Playlist-Tools-SMP

Reply #60
Just pushed a new update. Clone the repository to get the latest changes (Code/Download zip) instead of using the releases page.

Quote
### Added
- Buttons: buttons' text color can now be customized via menus on the bar menu (Shift + L. Click on the bar).

Re: Playlist-Tools-SMP

Reply #61
Just pushed a new update. A few bugfixes, great optimization of remove duplicates and improvements at import track list. Clone the repository to get the latest changes (Code/Download zip) instead of using the releases page.

Quote
   ### Added
   - Other tools\Import track list: added stackable conditions to check against the results, the tracks which satisfy more of them (by order) will be preferred. i.e. Tracks with rating > 3 + Not live. A track satisfying both conditions would be preferred to those satisfying only the first one. Note order is important, so the second filter is not checked for a track when the first one has not been passed. In case tracks don't satisfy any of them, then all will be eligible (so filters are not a requisite only a preference). Filters may be configured on the tool sub-menu.
   ### Changed
   - Remove duplicates: optimized the code, now runs at least x2 times faster. Updated all instances where the functions were being used to call the new version (playlist revive, search by distance, queries, etc).
   - Buttons: toolbar configuration menu now is opened with R. Click (instead of Shift + L. Click on empty space). This is done to allow opening the menu anywhere even when the bar has no empty space left anymore.
   - Buttons: colors are changed without reloading the panel.
   ### Removed
   ### Fixed

   - Other tools\Playlist Revive: tracks with commas (',') on title were not being recognized as intended due to tag splitting as soon as that char was found, now fixed. There may be other instances/tools where a tag value has a comma but is not supposed to be 2 different values, although they require to be treated on a case by case basis so the default behavior has been left untouched. Rationale: title format already list tag values separated by comma; replacing that behavior would require to edit all tags within TF scripts like this %artist% -> $meta_sep(artist,###). It would also affect user configurable tags and remapping within scripts and become a nightmare to cover all possible use-cases.
   - Other tools\Import track list: fixed incorrect query creation for values with special chars (%, $, [, ], or '). Now are handled as intended by being enclosed with quotes first. For ex. Anthony's Games as artist translates into Anthony''s Games for the queries.

Re: Playlist-Tools-SMP

Reply #62
Just pushed a new update. Some changes on Import track list and check tags. Clone the repository to get the latest changes (Code/Download zip) instead of using the releases page.

Quote
   ### Added
   - Other tools\Import track list: added additional checks for prefixes, multi-value tags, commas and parentheses. It should now find more matches, for ex. when the file's title is missing a comma contrary to the track's title on library (paint it black -> paint it, black) and vice-versa.
   - Other tools\Import track list: reworked the mask matching; it should be more effective now, allowing even reading complex files like m3u playlists.
   - Other tools\Import track list: added multiple predefined presets which can be loaded by number instead of writing a manual mask.
   ### Changed
   - Other tools\Import track list: improved code-page detection.
   - Other tools\Check library tags: tags exclusions are now saved into a file instead of properties panel ('check_library_tags_exclusion.json') in an human readable format to easily edit them instead of using the input menu. Input menu can still be used though. Note this is also a workaround to really long strings on input boxes not being shown properly (SMP limitation).
   - Helpers: reworked code-page detection when reading text files to patch some of the limitations of SMP code-page heuristics.
   - Properties: added extensive checks to most properties (specially to check json strings).

The last changes at 'import track list' tool allow to find matches on library from an m3u playlist. There is even a preset for that ready to be used on those files (it also works on playlist created by Playlist-Manager-SMP).

The point is simple: playlists may be shared between multiple library/users and the paths are totally ignored for that, relying just on items which have the same tags set on the mask. There is even a playlist format based on that idea named XSPF: https://github.com/Chocobo1/foo_xspf_1/ (*)
Spoiler (click to show/hide)

(*)  XSPF support will be added on next releases of Playlist-Manager-SMP (so it can replace the component too), but the ability to apply the same concept on any plain text playlist file has more utilities than only available within an specific format.

Re: Playlist-Tools-SMP

Reply #63
Just pushed a new update. Improvements and bugfix on Search by distance. Permanent console log to bypass foobar limitation of 'saving log to file' getting reset on every startup. obviously limited to the script output. Clone the repository to get the latest changes (Code/Download zip) instead of using the releases page.
Quote
   ### Added
   - Helpers: added full script console logging to file at foobar profile folder ('console.log'). File is reset when reaching 5 MB. Logging is also sent to foobar2000's console (along other components logging).
   ### Changed
   - Search by Distance: cache now gets refreshed not only when the descriptors change ('music_graph_descriptors_xxx.js' & 'music_graph_descriptors_xxx_user.js') but also when the 2 functions used to calculate the paths or the own graph constructor change and the influences method. Even if changing those functions is not planned, it ensures the cache reflects the actual state of the graph in any case. In particular, the 'influences bugfix' would have required a manual cache reset by the user without this change which now will be performed automatically. The properties panel now tracks the CRC32 of those 6 items as merged strings (instead of only the first 2).
   - Search by Distance: Added 4 methods top check influences: 'fullPath', 'adjacentNodes', 'zeroNodes' and 'direct'. 'direct' is the previous behavior ("bugged") checking only the fist against the last node. 'zeroNodes' the fix listed bellow. 'adjacentNodes' works like zeroNodes but without forcing the adjacent nodes to be substitutions (checks (A,B) against (Y,Z), i.e. max. 4 possible links). 'fullPath' checks all consecutive links on the path (A->B), (B->C), ...) and also applies 'adjacentNodes' logic (to check the origin and final nodes). 'adjacentNodes' is now the default behavior.
   - Descriptors: Added a few anti-influences.
   ### Removed
   ### Fixed
   - Search by Distance: influences were not being correctly parsed when the original or the final node was a substitution (zero weight). Now adjacent nodes which may be substitutions are also checked at both sides, for ex for this path: Hip-Hop <- Rap_supergenre <- Rap_cluster <- Rythm Music_supercluster <- Blue_Note_cluster <- Blues_supergenre <- Blues. Where Hip-Hop is a substitution for Rap_supergenre,  Rap_supergenre is checked against Blues_supergenre and/or Blues for (anti)influences. Note it doesn't check for links at Hip-Hop since the influences link are always added to the generic items by design (in this case Rap_supergenre_supergenre), so there is max. 1 possible link. (note this may be overridden by the default behavior listed at top)

Spoiler (click to show/hide)

Re: Playlist-Tools-SMP

Reply #64
Just pushed a new update. Fixed missing file on the previous update.. Clone the repository to get the latest changes (Code/Download zip) instead of using the releases page.