HydrogenAudio

Hosted Forums => foobar2000 => 3rd Party Plugins - (fb2k) => Topic started by: regor on 2021-05-13 11:22:50

Title: Playlist-Tools-SMP
Post by: regor on 2021-05-13 11:22:50
Playlist-Tools-SMP (https://github.com/regorxxx/Playlist-Tools-SMP)
(https://img.shields.io/github/release/regorxxx/Playlist-Tools-SMP.svg) (https://github.com/regorxxx/Playlist-Tools-SMP/blob/main/CHANGELOG.md)(https://www.codefactor.io/repository/github/regorxxx/Playlist-Tools-SMP/badge/main) (https://www.codefactor.io/repository/github/regorxxx/Playlist-Tools-SMP/overview/main)(https://api.codacy.com/project/badge/Grade/e04be28637dd40d99fae7bd92f740677) (https://www.codacy.com/gh/regorxxx/Playlist-Tools-SMP/dashboard?utm_source=github.com&utm_medium=referral&utm_content=regorxxx/Playlist-Tools-SMP&utm_campaign=Badge_Grade)(https://img.shields.io/github/license/regorxxx/Playlist-Tools-SMP) (https://github.com/regorxxx/Playlist-Tools-SMP/blob/main/LICENSE)
A collection of Spider Monkey Panel (https://theqwertiest.github.io/foo_spider_monkey_panel) Scripts for foobar2000, built within a menu, which serves as a hub for 'usage examples' and shortcuts to the most requested foobar missing functionalities: remove duplicates by tags, revive dead items, check errors on tags, spotify-like playlist creation, advanced queries, etc.

(https://user-images.githubusercontent.com/83307074/116756221-471e8500-a9fb-11eb-96c9-2c269bf91fef.gif)


Features

(https://user-images.githubusercontent.com/83307074/116756215-44239480-a9fb-11eb-8489-b56a178c70f4.gif)

It's impossible to offer a complete list of the things that can be done with these tools, in a few words: anything related to playlist creation, sorting, library maintenance, automation, etc. But a readme for every utility can be found using the corresponding menu.

The sky is the limit once you use the current scripts to create your own buttons and tools. Currently contains pre-defined use-cases for these scripts:

The menus are highly customizable. They are created on demand according to the selected tracks or current playlist, and many entries can be added, removed or edited to suit your needs. Also if some scripts are missing, the menu is rebuilt skipping those entries (letting you to install selectively what you need).

(https://user-images.githubusercontent.com/83307074/116756213-4259d100-a9fb-11eb-9452-657389977f69.gif)

(https://user-images.githubusercontent.com/83307074/116756219-4685ee80-a9fb-11eb-80be-413f0e691dd4.gif)

Also integrates
 1. Search-by-Distance-SMP (https://github.com/regorxxx/Search-by-Distance-SMP): creates intelligent "spotify-like" playlist using high-level data from tracks and computing their similarity using genres/styles.
 2. Music-Graph (https://github.com/regorxxx/Music-Graph): An open source graph representation of most genres and styles found on popular, classical and folk music.
 3. Camelot-Wheel-Notation (https://github.com/regorxxx/Camelot-Wheel-Notation): Javascript implementation of the Camelot Wheel, ready to use "harmonic mixing" rules and translations for standard key notations.
 4. Menu-Framework-SMP (https://github.com/regorxxx/Menu-Framework-SMP): Helper which allows to easily create customizable and dynamic menus.

(https://user-images.githubusercontent.com/83307074/116759000-cebac280-aa00-11eb-8a81-9a450e13205a.gif)

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 any button script into a SMP panel within foobar. 

There are buttons bars and independent buttons for each script and the playlist tools menu. 'buttons_playlist_tools_menu.js' is associated to the tools menu seen on the gifs, while '_buttons_merged.js' is the entire bar.

Download latest release (or nightly releases) at github:
https://github.com/regorxxx/Playlist-Tools-SMP
Title: Re: Playlist-Tools-SMP
Post by: regor on 2021-05-24 23:22:29
For the next release I'm working on macros. i.e. the ability to record and save multiple calls to different menu entries. For ex:
"My macro" -- DO  -> "Most played Tracks" then "Select All" then "Incremental key"
X

Then calling it...
X

It works in conjunction with the menu framework I have already shared, which lets you call menu entries by name, even when the menu has not been drawn. Therefore it's feasible to record where the user clicks when calling the menu, and store the different entries clicked for later usage.

At that point the sky is the limit.... for example, you can create a playlist with top rated tracks from 2021, filter playlist to only allow 1 track per artist, then select 1/4 of the playlist and sort it by key and select the rest and filter to only keep tracks with >4 rating. All that in just one click, totally configurable.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2021-05-26 11:00:00
Finally got macros fully working, with a configurable list, like other submenus previously done.
Only limitation:  Can not save user input on popups. Using entries which make use of those on macros will require user input every time they are called later.
X

To complement the use of macros, 3 new menus has been added: sort, select and cut playlist length.
Sort lets you do standard sorting (randomize, reverse, bpm, date or mood) but also advanced sorting which requires extra logic (by key using Camelot Wheel or by DynGenre).
The key logic was introduced previously, so no need to explain it again.
DynGenre sorting sorts tracks by genre/style considering a continuous line from Industrial music to Downtempo music. Thus similar styles/genres are grouped together. Uses notation described at 'dyngenre_map' on dyngenre_map_xxx.js.
X

The select menu lets you select specific parts of a playlist (like the third quarter), clear the selection, delete selected or unselected tracks, etc.
Obviously it can be used as a standalone utility, but it's real power comes when used along macros.
It allows to automate playlists manipulation along the other tools in the same macro without needing user input.
(for ex.. create a playlist by similar genre -> then select half of the tracks and sort then by incremental key -> then select the other half and sort them by decremental key)
X

The last tool lets you crop playlist length to the desired number, either starting from the beginning or the end of the playlist.
X

Since tools that create new playlists always change focus to those, it should be pretty easy to even create a macro which creates 10 playlist (similar by genre, by key, harmonic mix, etc.) at once with different settings, sortings, lengths, etc. linked -for ex.- to the currently playing track.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2021-05-26 21:22:31
Update the rest of the scripts too (specially the playlist manager) when used along this. The menu framework has a breaking change and it affects multiple scripts.

This release add macros and greatly expanded playlist and selection tools.

## [1.1.0] - 2021-05-26 (https://github.com/regorxxx/Playlist-Tools-SMP)
### Added
- Macros: Pre-recorded multiple calls to different menu entries. Save clicked entries by name.
- Select Menu: New menu meant to be used along macros. Select All / Clear selection. Select first / last track. Select random track (single) /random # tracks (multiple). Delete selected tracks / Non selected tracks. Select by halves. Select by thirds. Select by quarters.
- Cut playlist Menu: New menu meant to be used along macros. From start. From end. (multiple numbers)
- Sort Menu: New menu meant to be used along macros. Randomize, reverse, by BPM, by Mood, by Date, by Key (Camelot Wheel), by genre/style (DynGenre)
- Send playlist to playlist: New menu meant to be used along macros. Sends all tracks from current playlist to another playlist.
- Close playlist: New menu meant to be used along macros.
- Go to playlist: New menu meant to be used along macros.
- Find or create playlist: New menu meant to be used along macros.
- Send selection to playlist: New menu meant to be used along macros.
- Harmonic mixing: multiple debug additions.
- Search by Distance: New config menu.
- Search by Distance: Entry to compute and show graph on browsers.
- Search by Distance: Entries to descriptors.
- Search by Distance: New tool to find genre or styles not set on the graph (descriptors).
- Search by Distance: New entry to test the Graph on demand for errors.
- Search by Distance: New entry to test the Graph on demand against a set of paths predefined on 'music_graph_test_xxx.js'.
- Search by Distance: New entry to reset the Graph cache on demand.
- Search by Distance Cache: is now saved to a json file and reused between different sessions. Cuts loading time by 4 secs for 70K tracks on startup (!).
- Search by Distance Cache: gets automatically refreshed whenever the descriptors crc change. i.e. it will be recalculated with any change by the user too.
- Search by Distance Descriptors: Multiple new additions.
- Portable: Additional checks for portable installations.
### Changed
- Harmonic mixing: small changes and optimizations.
- Harmonic mixing: code for pattern creation moved to camelot_wheel.js.
- Harmonic mixing: code for sending to playlist moved to helpers and reused in multiple scripts.
- Search by Distance: updated with latest changes.
- Search by Distance Debug: Greatly expanded the debug functions to check possible errors or inconsistencies in the descriptors. It should be foolproof now.
- Split tools menu into 3 submenus: Playlist\Selection\Other tools.
### Removed
- Removed all lodash dependence and deleted helper.
### Fixed
- Search by Distance Descriptors: Multiple fixes on descriptors found with the new debug code.
- Buttons framework: icon bugfix.
- 'Top rated Tracks from...\From year' crash on input.
- 'Most Played Tracks from Date' crash.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2021-05-27 17:53:52
Next release will have fully configurable menus, which can be disabled/enabled by pressing shift + click on the button. Pressing on any entry will not load the associated menu anymore. (this in addition to only load entries when the scripts files are present, so they may be disabled either this way or removing the files)

The menu approach is more fine grained, since it allows to delete even parts of the same script (for ex. Only showing 1 Search Similar method).

X

Standard queries have been added too, just like regular foobar search. But entries can be saved, and reused later (like autoplaylist presets). With sorting. Dynamic queries have sorting added too now.

Finally, have added the possibility to add sorting entries to the sort menu (just like the regular foobar sorting). They work in conjunction to the advanced sorting logics (like key or grouping by similar genre), and are meant to be used along macros. Since macros allow to save any set of menu entries, they can now be used as an advanced alternative to autoplaylist and random pools component. Some examples of what you can do with a macro:
- You can set a query, a sort order, remove duplicates by any tag, filter and finally limit length to X tracks.
- Create 5 playlist, with different queries or sources, and use them as pools for a final playlist. (random pools has 2 main limitations: only 1 playlist associated to pools, and no way to mix specific pools to a final playlist -all or nothing-)
- Auto tag tracks found on a playlist (using Go to Playlist -> Select all -> Write tags).
- Send automatically all new added tracks on the library to a playlist for other processing. (Standard query 'Recently added' -> Send to -> ...)
- Etc.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2021-05-28 22:49:46
## [1.2.0] - 2021-05-28 (https://github.com/regorxxx/Playlist-Tools-SMP)
### Added
- Dynamic Queries: sorting can be set (on user configured entries).
- Alt Menu: Shift + L. Click on menu button allows to switch some entries functionality. Individual tools or entire submenus may be disabled/enabled. When all entries from a tool are disabled, the entire script files associated are omitted at loading.
- Standard Queries: new menu to apply standard queries and save user configured entries. Sorting too. (meant to be used along macros as an "autoplaylist" tool combined with other tools)
- Selection: added Global Playlist length as random # selection.
- Cut playlist length: added Global Playlist length as option (from start and end).
- Configuration: can set to which entries forced query is applied: Standad Queries, Dynamic Queries, Search same by tags. In any other case, it's always applied.
### Changed
- Macros: Entry name for last call and forced entries now omits ('main\' or the main menu name) when the entry resides on the main menu. i.e. just use the entry name for main menu entries, and submenu\entry name for the rest.
- Menu framework: updated.
- Legacy Sort: arbitrary sort entries can be added / removed. Standard foobar sorting. Can be undone.
- Advanced Sort: Can be undone.
### Removed
### Fixed
- Dynamic Queries: adding a new entry no longer executes it (thus creating a playlist too).
- Search same by tags: didn't apply user set playlistLength and forcedQuery to created playlists (using functions defaults instead).
- Standard Queries: didn't work when current playlist was empty.
- Cut playlist length: didn't allow undo.
- Send playlist's tracks to...: didn't allow undo.
- Remove tracks from...: didn't allow undo.
- Send selection to...: didn't allow undo.

Also updated the readme (on github) to explain much better what each thing does.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2021-05-31 17:40:28
## [1.3.0] - 2021-05-31 (https://github.com/regorxxx/Playlist-Tools-SMP/releases/tag/v1.3.0)
### Added
- Pools: playlist creation similar to Random Pools component. Multiple playlists sources (pools) can be set to fill a destination playlist. Configurable selection length per source, query filtering, picking method (random, from start, from end) and final sorting of destination playlist. Arbitrary presets can be added / removed.
- Pools: the library becomes a source when no playlist name is given. In that case the query is used to retrieve items from the library. At that point is equivalent to using a playlist as a source. i.e. you can mix sources using playlists and library, or even using multiple times the library as source. (This is obviously a shorthand to recreate first the source playlists with macros using queries)
- Pools: queries can also use dynamic queries format, where #TAG# is replaced with value for the currently focused track. i.e. it can create dinamic pools where the query changes according to the selection, thus not forcing an specific playlist type. A 'GENRE IS #GENRE#' source would translate into a rock, jazz, ... playlist according to current selecion. (This is obviously a shorthand to recreate first the source playlists with macros using dynamic queries)
- Presets: entire user preset list can be exported, for editing on a text editor or later importing in another Playlist Tools panel. (Only works for presets added from this release version and future ones)
- Presets: a presets json file can be imported, merging them with current ones (without overwritting).
- Readmes: Sscatter by tags readme added.
- Playlist history: New tool to traverse through the last active playlists by name or simply previous one (useful for macros since you can go back and forth between 2 arbitrary playlists without knowing their names). The tool tries to track playlists even if they are reordered after saving them to the history, only possible if names are unique.
### Changed
- Query filtering: some new default presets.
- Dynamic Queries...: now allow working with multivalue tags by default. i.e. 'GENRE IS #GENRE#' translates into '(GENRE IS Folk) AND (GENRE IS World)' automatically. When using using TF expressions, multivalue tags are not converted, thus the expression is executed 'as is'.
- Dynamic Queries...: standard queries may be added -only- to the end of a dynamic query expression. i.e. 'GENRE IS #GENRE# AND NOT (%rating% EQUAL 2 OR %rating% EQUAL 1)' translates into '(GENRE IS Psychedelic Rock) AND (GENRE IS Hard Rock) AND NOT (%rating% EQUAL 2 OR %rating% EQUAL 1)'. Merging both types of expressions in other positions will not work as intended.
- Dynamic Queries...: to work reliably with multiple dynamic queries on the same expression they must be enclosed on parenthesis, that way the code knows up to what point it must expand the queries. i.e. '((GENRE IS #GENRE#) OR (STYLE IS #STYLE#))' translates into '(((GENRE IS Psychedelic Rock) AND (GENRE IS Hard Rock)) OR ((STYLE IS Acid Rock) AND (STYLE IS Live)))'. Doing it in any other way will not work as intended.
- Query filtering\Filter playlist by... (query): also converts multivalue tags when using dynamic queries.
- Reset all configuration: resetting all no longer deletes all user presets, but asks to merge them with the default ones (or discards them). Presets can also be exported (previous change) before resetting and later re-imported to do essentially the same. If merging is not chosen, then a backup is automatically created.
- Readmes: all readmes entries now follow the same name of the menus automatically.
- Readmes: Dynamic Queries's readme updated with examples and usage rules.
### Removed
### Fixed
- Search same by tags...\By... (pairs of tags): was using default search paramaters no matter the input.
- Search same by tags...\Add new entry: error when remap tags was empty.
- Query filtering\Filter playlist by... (query): last argument used was not being saved.
- Configuration: setting global forced query or playlist length only updated the properties panel, thus not applying the changes until next script reload.
- Missing font fontawesome-webfont (just cosmetic arrow on button).
- Advanced Sort...\Incremental genre/style (DynGenre): Missing sort_by_dyngenre.js file, so menu entry was missing on previous release.
- Changing Global Forced Query via menus also changed Global Playlist Length.



Recommended to use 'Configuration\Reset all configuration...' after installing (to reload the new presets) (*). You will lose any user configured entry on the process (make a backup of the properties panel if needed).

From now on, user presets can be exported and maintained when using "Reset all", thus making easier to update the panel in the future. Or sharing presets, etc.

3 main changes have been added:
-    Pools (i.e. a total replacement of Random Pools component with many more features). They can obviously be expanded even more with macros.
-    Dynamic queries improvements: see changelog for details... but essentially they allow now complex queries and even multivalue tags expansion. 'GENRE IS #GENRE#' translates into '(GENRE IS Folk) AND (GENRE IS World)'
-    Presets: already mentioned at top.
Title: Re: Playlist-Tools-SMP
Post by: loz on 2021-06-01 13:22:51
Am I correct in assuming that all of your scripts go into the root of 'xxx-scripts' instead of subfolders like 'xxx-scripts\Playlist-Tools-SMP'? If so, that seems to me like that could be problematic in the long term just from a management/updating perspective.

Title: Re: Playlist-Tools-SMP
Post by: regor on 2021-06-01 15:51:20
Am I correct in assuming that all of your scripts go into the root of 'xxx-scripts' instead of subfolders like 'xxx-scripts\Playlist-Tools-SMP'? If so, that seems to me like that could be problematic in the long term just from a management/updating perspective.


As you note they are all added to the same root (which is only used by my scripts).

The other scripts (playlist manager, world map) use different files, so there is no mixing, except the main helper which is shared between all of them (and I don't plan to change it more). I know it could bring some problems (if I edit the helper, update a repository but no the rest, and someone installs the oldest files over the new ones, thus using an old helper version) , but right now it makes my life easier so... I can not care less about it since these are clearly WIP things updated every week.

At some point I will simply split the main helper to fix that, use packages, different folders or simply create an additional repository for the helpers, so they are always up to date and a requirement for any other script. The last option is the most probable one I will take, since all the panels require the menu framework, the buttons framework and the main helper.

PD: Also the change-logs clearly indicate if I edit one of those helpers and which things could break if mixing files. And I try to follow semantic versioning, so no such changes should happen between minor releases.

PD2: I would love to use packages but it becomes a nightmare when updating things every week and it totally breaks the buttons bar and the idea of having selectively installed things just by deleting/adding files. Or having other people using my scripts as a base for their own ones. Packages are a zip not meant to be touched. So.. I'm more inclined on the additional repository. (open to suggestions though)
Title: Re: Playlist-Tools-SMP
Post by: loz on 2021-06-01 16:18:01
I know it could bring some problems (if I edit the helper, update a repository but no the rest, and someone installs the oldest files over the new ones, thus using an old helper version)...
This is my point. It becomes much easier to mix up files and much harder to troubleshoot if everything is in the same root directory. Secondly, if all the scripts are in subdirectories a user can just checkout the repositories from git and then just git pull each subdirectory when updates are available.

create an additional repository for the helpers
That is definitely a good solution, but it still doesn't completely solve the problem of everything being convoluted in the root directory. These scripts really need some sort of better organizational structure if your project is going to continue long term and evolve, and it is best to keep that in mind earlier on than changing it later when your project is more mature.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2021-06-01 16:30:32
Quote
This is my point. It becomes much easier to mix up files and much harder to troubleshoot if everything is in the same root directory. Secondly, if all the scripts are in subdirectories a user can just checkout the repositories from git and then just git pull each subdirectory when updates are available.
I don't see whay you can not do that right now? I would not really advise at all to do that with SMP scripts, which sometimes require a bit of thinking  ::)  If someone wants to just pull my changes without checking the changelog can do it, but it will probably break things whether I add 20 subfolders more or not. That's why I add the releases, I don't expect people doing that.

create an additional repository for the helpers
That is definitely a good solution, but it still doesn't completely solve the problem of everything being convoluted in the root directory. These scripts really need some sort of better organizational structure if your project is going to continue long term and evolve, and it is best to keep that in mind earlier on than changing it later when your project is more mature.
Can't say more... Only planned change is to move scripts without buttons to another subfolder, but that's all. That would mean only 3 or 4 scripts in the root folder (if that's what you mean). But I will simply not move the Playlist manager to a directory, and then Playlist tools to another, and then...  Anything which can be loaded within foobar as a panel will be in the main directory (which will be 3 or 4 files, not the 20 files I have right now yep)
Title: Re: Playlist-Tools-SMP
Post by: regor on 2021-06-01 17:03:56
This is the current structure for future releases, that has the planned change I wrote (most files on 'Main').

X

X

Also ngraph and typo will be moved to helpers-external. Good enough?
Title: Re: Playlist-Tools-SMP
Post by: regor on 2021-06-03 10:27:28
For people using All Music and Last. FM tags, here is a pack of presets which use those tags that can be imported using the config menu (they will be included on next releases)

Feel free to share your own presets too, since that's the point of being a tool fully configurable  :) (and I plan to have multiple presets pack which can be installed as addons)

Title: Re: Playlist-Tools-SMP
Post by: regor on 2021-06-03 18:54:45
And another 5 presets for pools, they use standard (*) mood, genre and bpm tags. (in next release pools will be able to use the global forced query too, removing that way low rated tracks, etc. easily)

To install, just use the import menu entry:
X

(*) Neither All Music, nor Last FM tags. But the standard ones you got at picard and found in any program (mood, genre, bpm). If you want to use the others, copy the tags with any editor to standard tags or edit the presets -before importing- by yourself replacing "MOOD" with "ALL MUSIC...", etc.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2021-06-07 19:29:39
v1.4.0 - File restructuring and cleanup + Presets, shortcuts & bugfixes (https://github.com/regorxxx/Playlist-Tools-SMP)

2 new experimental features (shortcuts and include other scripts), along the file restructuring discussed, new presets and many bugfixes.

## [1.4.0] - 2021-06-07
### Added
- Search by Distance: 4 sets of buttons, one for each method: GRAPH, WEIGHT, DYNGENRE + ONE CONFIGURABLE (method at properties). (This in addition to the fully customizable buttons)
- Shortcuts: Some shortcuts have been added (global shortcuts without requiring panel to be in focus). Are shown on the related menu entries tabbed to the right. Experimental feature, read the popup before activating it at config menu.
- Other tools\Include Scripts: easily include ('merge') multiple SMP scripts into the same panel, thus not wasting multiple panels. Useful for those scripts that don't require any UI, user interaction,... like scripts which set the main menu SPM entries (File\\Spider Monkey Panel). Experimental feature, read the popup before activating.
- Configuration: pools have toogable forced query now.
- Presets: All Music and Last FM presets which use their genre/mood tags (for Search by tags, Dynamic Queries, Playlist Filters and Pools). Pools moods presets (Happy Mix, Sad Mix, Angry Mix, Chill Mix and Slow Chill Mix). Pools genre presets (Rock mix, Hip-Hop mix, etc.).
- Macros: 2 macros examples to test all tools (with or without input). Since all input box have defaults, you can simply press enter and process all without reading for testing.
### Changed
- Search by Distance\GRAPH: mean distance is now also divided by the number of genre/styles of the reference track. That should give more results for tracks with too many tags, while not changing so much for the rest. Distance filters have been updated accordingly in all buttons to reflect the change (and users should do the same in their customized buttons).
- Search by Distance: All buttons have not needed properties deleted to not confuse users about things changed on properties not being reflected on the buttons.
- Buttons framework: updated for better shortcuts and macros compatibility.
- Helpers: Moved all external libraries to 'helpers-external'.
- Helpers: Split 'helpers_xxx.js' file into multiple ones for easier future maintenance.
- Moved all SMP scripts without UI (those not meant to be loaded directly on panels) to 'main'.
### Removed
### Fixed
- Search Same By: button did not work correctly due to bad property parsing.
- Search Same By: bypass query checking if current track has no tags configured on new entry addition. Previously it was not saved due to checking error.
- Playlist manipulation\Harmonic mix: was not working on entire playlist, only on selection in both cases.
- Search by Distance: crashes when trying to access non present properties on the arguments (found while applying the previous changes).
- Search by Distance: crash when sharing cache between 2 panels due to a typo.
- Search by Distance: crash when pool was smaller than set playlist length.
- Pools: using random picking method, sometimes the last element was omitted, thus resulting on (total length - 1) tracks per source choosen.
- Pools: when only 1 track is retrieved from a source, skips picking methods and adds it directly to the final playlist. Previously it was simply skipped (due to previous bug).
- Pools: not working when current playlist was empty. It tried to check for dynamic queries even when there was none, thus failing wihtout a track to check against.
- Pools: random picking method was not really random due to using sort + random method. Using an array shuffle now instead.
- Select...\Select random...: not really random due to using sort + random method. Using an array shuffle now instead.
- Search by Distance: in key mixing and random picking not really random due to using sort + random method. Using an array shuffle now instead.
- Harmonic mix\Harmonic mix from...: not really random due to using sort + random method. Using an array shuffle now instead.
- Tooltip: missing new line before shortcuts tips.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2021-06-09 22:41:39
Finally the integration with Playlist Manager is working, and pools will be able to use either playlists within foobar as source or playlist files in folders tracked by any Playlist Manager instance... 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.

It would be an alternative to tagging files with custom tags (like 'Rock Ballads') to then create queries to send those tracks to playlists (which could also be done with pools). Instead, you could simply send the tracks to a playlist named 'Rock Ballads' and use it later as a source, while not having the playlist loaded within foobar but just on the manager. Obviously there are many other uses (like having an arbitrary number of playlists used as sources: for ex. a mix of all Summer playlists of the last 10 years which obviously could be archived as m3u8 files but makes no sense to have them loaded within foobar polluting the UI).

In resume, sources may be a mix of any of these 3: library (query filtering), playlists within foobar (query filtering optional) and playlist files (idem).

Next release will also have some quality of life changes for presets, with descriptions popups before importing, summary of menu entries which will be added, etc. along better documentation for some tools

A playlist file within a manager instance is used as source using Pools tool. Duplicated tracks are omitted, so only 5 tracks are used (although the total reported count is 12). On the example, 1 more track is taken from the library.
X

An example of a preset created within foobar and exported to json. Used on the screenshot above. Note the queries reported on the console an the ones here doesn't match because a global forced query is added to all sources (configurable).
X
Title: Re: Playlist-Tools-SMP
Post by: regor on 2021-06-10 22:23:35
Continuing with the presets, search by distance buttons will be able to use pre-defined sets of tags (saved as json) instead of a track as source for playlist creation. That's exactly what MusicIp's moods (https://www.spicefly.com/article.php?page=musicip-moods)did and here is called "themes". I plan to expand that functionality allowing to save tracks as "themes" on demand and also allow using a playlist as a source (instead of a json file)... but right now it simply uses a json file which emulates one track.

Themes may be added to the properties panel of custom search by distance buttons either as a file path or directly as a JSON string. Whenever that property is set, the theme is used as source instead of the current track.

To make it easier to work with them, custom buttons now have a contextual menu called with shift + L. Click which lets you select any theme file in the presets folder or 'none' (current track standard behavior). Themes may be created easily with any text editor, allowing to create your own sets of buttons for custom playlist creation. An example file is provided.

X

X

X

Finally, continuing the pools feature, search by distance's output may be used as a source (apart from playlist and Library queries), greatly surpassing what Random Pools component and MusicIp allow. Setting a pool this way requires importing a preset file, since it's not viable to add so many arguments via popups.

Allows any of the 3 methods (GRAPH, WEIGHT and DYNGENRE) and uses the previous feature (Themes) along another one "Recipes". Themes would be the "virtual track" used as reference and Recipes work the same than MusicIp's recipes (https://www.spicefly.com/article.php?page=musicip-recipes) allowing to define how the playlist should be created (the arguments passed to 'do_searchby_distance').

After applying the recipe and theme, under the hood, it does the same than using any search by distance's button or menu entry named Search similar by [graph, ...]. But instead of sending the resulting tracks to a playlist, those tracks are used as source for the pool. Then they are processed the same than any other source on the pool. Any type of source can be mixed too (i.e. using a playlist named 'Rock', a playlist file 'summer.m3u8' in the manager, a library query '%RATING% GREATER 3' and the output of SearchBy to get tracks similar by key and genre to a given reference.

X

Recipe and pools preset example are provided to test it.

In theory the same behavior could be emulated using "macros" feature, creating first the playlist with the appropriate tool, then selecting tracks by any desired order, sending them to the final playlist and repeating the process as long as needed. The difference here is the use of recipes and themes, which allow easy customization and the possibility to use them in multiple presets. Also recipes allow far more detailed config than using menus + macros, since many advanced features are only used/configurable on custom buttons and recipes may set the same arguments than those. And themes allow to create playlists without a reference track, while the menus for [graph, ...] are always associated to a track.

In the end, both tools are complementary and have their uses. Pools is meant as a direct replacement of Random Pools and MusicIp's, offering many more possibilities than them. Macros is a general tool to automatize anything, but obviously is the "hard" way to do it.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2021-06-15 17:33:21
v2.0.0 - Improved pools and Major buttons rework (https://github.com/regorxxx/Playlist-Tools-SMP)
DO NOT COPY OVER PREVIOUS INSTALLATION (*). Remove all previous panels within foobar and follow the instructions at the readme and installation tips. You can safely delete all files at 'xxx-scripts' first. If you are using other scripts, then download their latest version too and reinstall (Playlist Manager and World Map can be updated without de-installing their panels first, i.e. you can maintain all your settings).

See changelog for all changes.

    Playlist manager integration for pools.
    Search by distance integration for pools.
    New presets for pools.
    Recipes and themes for Search by distance.
    Major buttons rework with easy to install and configure toolbars which allow to add\remove buttons on the fly.

(*) File structure has changed and now all buttons are meant to be used with a main toolbar file for easy config. Not doing so will lead to missing features.


## [2.0.0] - 2021-06-15
### Added
- Playlist Manager Integration: Listeners to retrieve tracked playlist paths from Playlist Manager panels.
- Pools & Playlist Manager Integration: May now use playlist files tracked by Playlist Manager panels as source. 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 anu 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.
- Pools & Search by GRAPH\WEIGHT\DYNGENRE: May now use the output from 'Search by (method)' as source, setting source name as '_SEARCHBYGRAPH_X', '_SEARCHBYWEIGHT_X', etc. (where X is any number). Therefore it allows intelligent playlist creation instead of using queries for the pool. Multiple sources can be set this way (beware of computing time) and mixed with the other sources (library and playlists). This new source may only be used by creating a preset pool with a text editor, since it requires to set so many arguments that is not reasonable to do it via popups. 'recipe' and 'theme' (see below) keys must be set when using this type of source (a recipe may force a theme too). Both may point to a filename (i.e. another preset like themes -see below-) or contain the arguments object. Examples are offered in the presets folder for all use-cases.
- Search by GRAPH\WEIGHT\DYNGENRE: now allows user configurable menus (which can only be added using the properties panel or loading presets). Reasoning: it's not practical to add so many popups to just set a new entry but it makes sense to be able to add new entries to the tool... so it's left to the user to add them manually. The presets may link to recipes and themes as arguments too (see below).
- Search by distance: Recipes presets may be used to set variables of the function. Whenever the argument is set, it's used instead of related property. Custom button now allows to use a recipe file. Once set, button would always use the recipe as arguments instead of the properties variables. A recipe may force the use of a theme.
- Search by distance: custom button now allows to set the recipe file used by pressing Ctrl + L. Click. 'None' would use the current properties variables, which is the default behaviour.
- Search by distance: themes presets may be used as reference instead of tracks. Whenever the argument is set, it's used instead of the selection. Custom button now allows to use a theme file. Once set, button would always use the theme as reference instead of the current selection.
- Search by distance: custom button now allows to set the theme file used by pressing Shift + L. Click. 'None' would use the current selection, which is the default behavior.
- Search by distance: custom button now allows to create a theme file using the currently focused track's tags.
- Configuration\Search by distance: new entry to create a theme file using the currently focused track's tags.
- Readmes: for Presets usage, Global Shortcuts, Include Script, Search by GRAPH\WEIGHT\DYNGENRE (specific readmes for each method) and Recipes\Themes.
- Presets: new presets for Search by GRAPH\WEIGHT\DYNGENRE.
- Buttons: new 'buttons_toolbar.js' toolbar which can be customized without editing the js file. Allows to enable/disable buttons -even add multiple copies- on demand and customize toolbar background color (L. Click on the bar).
- Buttons: new 'buttons_playlist_history.js' button. On click switches to previous playlist (since it's a switch, pressing it indefinitely always switches between the same 2 playlists). Shift + L. Click shows the entire list of previous playlists.
### Changed
- Popups: all titles renamed to script name + sub menu name.
- Presets: current date is added as description when exporting user presets or creating a backup.
- Presets: now include a description ('readme' key) which is shown after importing them. Property associated is also shown (the one linked to each configurable menu), along the entries -ny name- which will be imported. Presets are not imported until popup is accepted.
- Search by distance: shows on console the track or theme used as reference (name and path).
- Search by distance: custom button code cleanup and improvements on name changing.
- Search by distance: custom button tooltip shows the theme and recipe being used, along tips to change them.
- Readmes: updated pools readme with latest changes.
- Data: json file for presets is now formatted to be readable.
- Portable: when properties are set for the first time, now use relative paths on profile folder for portable installations (>= 1.6). When possible, any other stored path is also stored as relative paths (for example themes or recipes on buttons).
- Buttons: icons to all buttons.
- Buttons framework: skip icon drawing if font is not found.
- Buttons framework: allow a menu when clicking on the panel (and not on buttons).
- Helpers: warn about missing font on console if trying to load a font and is not found.
- Code refactoring and cleanup.
- Split all buttons into examples, toolbar and buttons folder. 'buttons_toolbar.js' is now the main script -in root folder- which can be loaded within a panel for easy configuration of buttons from this repository or any other. 'buttons_playlist_tools.js' is the independent button.
### Removed
### Fixed
- Presets: after resetting all config, presets were not being deleted.
- Presets: duplication after adding multiple presets.
- Pools: crash removing entries due to a typo.
- Search by distance: setting both genre and style weights to zero output nothing with GRAPH method instead of using the values for the graph and not for weighting.
- Search by distance: when playlist length is set to Infinite, warnings are no longer shown about number of tracks being less than it (which obviously always happened).
Title: Re: Playlist-Tools-SMP
Post by: regor on 2021-06-15 17:48:46
A small gif to show how the buttons work now:
X

Everything is now configurable on the bar, either with menus or properties. If you want multiple copies of the same button, just add it again. Buttons can be repositioned and the background is customizable.

Playlist tools also has the enable/disable menu to switch functionality of its entries.

And search by distance buttons are fully configurable with either themes, recipes or individual arguments set on menus to your liking. Recipes may link to (forced) themes. And pools may link to both. So presets can be created inheriting multiple files easily.

This should be the end of the file restructuring, making it easier to update thins on the future too.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2021-06-17 16:24:12
v2.0.1 - Bugfixes and shortcuts/query improvements (https://github.com/regorxxx/Playlist-Tools-SMP)
Minor bugfixes and improvements. See changelog.
Recommended to call 'Configuration\Reset all configuration...'  to load the new changes. You can maintain your presets (see the popups), so only new changes are applied ;)
Don't forget to apply 2.0.0 recommendations too if updating from a earlier version!


## [2.0.1] - 2021-06-17
### Added
- Shortcuts: now saved as json file (at '.\profile\js_data\playlistTools_shortcuts.json'), to be easily configurable. Shortcuts can be arbitrarily added, changed or deleted. Menu entries linked to a shortcut will show the keys in their name tabbed to the right. See popup when enabling them. New entry to open shortcuts file.
- Standard queries...: New default standard queries to retrieve entire library with or without forced query. Restore defaults to load them. (To be used with macros)
- Macros: New default macros to check all library tags (automates retrieving entire library and using check tags). Restore defaults to load them.
- Global Forced Query: 'Playlist Manipulation\Query filtering' is now also added to the list of toogable forced query application.
### Changed
- Queries behavior on Standard queries, Dynamic queries, Query filtering and Pools menus is now unified. 'ALL' always retrieves entire source, no matter if global forced query is enabled or not. Empty retrieves source filtered with forced query (or behaves as 'ALL' if it's disabled). Updated related readmes with the changes.
- Config menu: reworked a bit the menus for Global forced query, Shortcuts and presets.
### Removed
### Fixed
- Check tags: Fixed typo on dictionaries path after file restructuring on latest release. Recommended to reset folder calling 'Other Tools\Check tags\Configure dictionary...\Sets dictionaries folder...' and deleting the current value. Then the default one will be restored.
- Duplicates and Tag filtering:  User settings (tags and number allowed) were not being loaded at startup.
- Standard queries...: menu error when using a query with 'ALL' and global forced query was enabled.
- Typo on 'Top rated Tracks from...\From year...'. Adjusted 'Test Tools (with input)' macro with the change. Recommended to restore defaults for macros to apply the change (and change any user-set macro with that entry).
Title: Re: Playlist-Tools-SMP
Post by: regor on 2021-06-20 22:01:56
v2.0.2 - Symlink zip decompressing hotfix (https://github.com/regorxxx/Playlist-Tools-SMP)
This is just a copy of the previous release with replaced symlinks, using duplicated files instead. Some file archivers (like 7zip) don't manage symlinks well and gave errors decompressing the zip... so this fixes it. PeaZip works fine, but since 7zip is pretty popular...

There are no other changes, so if you had no problems using the previous release, can be skipped


## [2.0.2] - 2021-06-20
### Added
### Changed
- Duplicates of main buttons files are now on the root, instead of using symlinks. Some file archivers, like 7zip, did not decompress correctly the releases...
### Removed
### Fixed

.
Title: Re: Playlist-Tools-SMP
Post by: Koshingg on 2021-06-25 18:52:58
A problem about playlist revive.....When I move a file from a partition to another partition , let's say D\music to E\music (obviously the folders are included in the media library) or when I rename a folder this is what happens

Playlist Tools - Other Tools - Playlist Revive - Replace dead items on selection (or if I use Replace dead items on current playlist), I have this kind of errors :

Query not valid. Check query:
(title IS I Will Always Love You) OR (undefined)

I don't know why but I can't revive dead items in a playlist....

Problem number 2.
Most played tracks from.....from last -- 1 week (for example)
It seems that songs that have a high playcount are favoured, so they get at the top of the playlist
I'll give you this example: Let's say that in the last week I have listened Bon Jovi - Always , ONLY once, BUT the total playcount for this song is 30.
This week I also listened Madonna - Frozen , 10 times BUT the total playcount for this song is 12.
The conclusion:  Most played tracks from last week will look like this :
Bon Jovi - Always (playcount in a week :1 , total playcount : 30)
Madonna - Frozen (playcount in a week :10 , total playcount : 12)
I think it should be exactly the opposite, like this :
Madonna - Frozen (playcount in a week :10 , total playcount : 12)
Bon Jovi - Always  (playcount in a week :1 , total playcount : 30)

I tested on a few songs and it's the same. This way Most played tracks from.....from last -- 1 week (or other period) it's a bit useless because I'll see songs with high playcount at the top (obviosly if I played those songs with high playcount in the selected period), it doesn't reflect the reality. Maybe you can fix it
As I said in the other post , I used the last version of the scripts, portable Foobar 1.6.6 , clean install, only SMP ( vers. 1.4.1) installed
Title: Re: Playlist-Tools-SMP
Post by: regor on 2021-06-26 11:44:06
Ups missed the comment. Sorry.

Quote
A problem about playlist revive.....When I move a file from a partition to another partition , let's say D\music to E\music (obviously the folders are included in the media library) or when I rename a folder this is what happens

Playlist Tools - Other Tools - Playlist Revive - Replace dead items on selection (or if I use Replace dead items on current playlist), I have this kind of errors :

Query not valid. Check query:
(title IS I Will Always Love You) OR (undefined)

I don't know why but I can't revive dead items in a playlist....
Will check it since that's clearly a bug! The second query is the MD5 of the file, you are probably using MP3s (or a format without audio crc checksums), they have no MD5, so the query becomes undefined and throws a query error just after testing it.

It was supposed to skip that tag, but I clearly made a mistake. Will be solved on next release, thanks!

Quote
Problem number 2.
Most played tracks from.....from last -- 1 week (for example)
It seems that songs that have a high playcount are favoured, so they get at the top of the playlist
I'll give you this example: Let's say that in the last week I have listened Bon Jovi - Always , ONLY once, BUT the total playcount for this song is 30.
This week I also listened Madonna - Frozen , 10 times BUT the total playcount for this song is 12.
The conclusion:  Most played tracks from last week will look like this :
Bon Jovi - Always (playcount in a week :1 , total playcount : 30)
Madonna - Frozen (playcount in a week :10 , total playcount : 12)
I think it should be exactly the opposite, like this :
Madonna - Frozen (playcount in a week :10 , total playcount : 12)
Bon Jovi - Always  (playcount in a week :1 , total playcount : 30)

I tested on a few songs and it's the same. This way Most played tracks from.....from last -- 1 week (or other period) it's a bit useless because I'll see songs with high playcount at the top (obviosly if I played those songs with high playcount in the selected period), it doesn't reflect the reality. Maybe you can fix it
As I said in the other post , I used the last version of the scripts, portable Foobar 1.6.6 , clean install, only SMP ( vers. 1.4.1) installed
I understand you use both statistics plugins (the one that comes with foobar, and the advanced one which adds playcounts stamps). That tool only works if both are installed, there is a check to disable the tool if they are not found... but just to be sure.

Now you are seeing the tracks are sorted by total playcount,  instead of playcount on the period. Are you are right, I coded it that way (the final sorting after getting the tracks), which It's clearly a typo. Again, will be fixed on next release.
Thanks for both reports
Title: Re: Playlist-Tools-SMP
Post by: Koshingg on 2021-06-26 16:29:58
regor, good news, I solved the mystery with playlist revive. After I read your comment I looked more closely at the audio files. I tested only on flac files (they had tags for Artist, Title, and other tags) I didn't used mp3
I was confused because if you do right click on a file in foobar - Properties - Details , if you look at the panel at section General , you have Audio MD5.
So, I thought, ohh, it's ok. But it wasn't . If you use foo_audiomd5, you'll have in metadata AUDIOMD5...
After I scanned the files with foo_audiomd5, it works (AUDIOMD5 was added in metadata) the dead items in the playlist are replaced correctly
So, this is why these error reports appearred :
Query not valid. Check query:
(title IS I Will Always Love You) OR (undefined)

and in the console I had this:
Called: Playlist Revive\Replace dead items on selection
Found 1 dead item(s) on active playlist: test
query_combinations(): tagsArray [] was null, empty or not an array

So, if I understood correctly AUDIOMD5 must be present in metadata ( using the component foo_audiomd5), in all the files in the library.

Maybe its possible to add a little warning in the error report about this, to be more explicative, something like this : "files must have a value for AUDIOMD5 tag , scan the files using foo_audiomd5 component " or something else :)

"I understand you use both statistics plugins (the one that comes with foobar, and the advanced one which adds playcounts stamps). That tool only works if both are installed, there is a check to disable the tool if they are not found... but just to be sure."

Yes, I use both plugins (Playback Statistics and Enhanced Playback Statistics). Most Played Tracks in a Year works great  , problems were only with Most played tracks in a period of time (weeks, days), as I said



Title: Re: Playlist-Tools-SMP
Post by: regor on 2021-06-26 18:23:10
No no... Audio MD5 tag is used for query creation, if and only if it's found. It was an "extra" if you also use that plugin (which I do), because it would find the files faster.

But that it's only used at query creation, and should have been skipped if not found. That's the error. Therefore there is no need to warn about foo_audiomd5 since it's not a requirement at all (BUT I could add a note in the readme about it being useful for faster matching).

At a later point I compare md5 info (from file), which as you noted, it's found on the details panel. And only exists for some formats. When there is no md5 info, it simply matches file size. If there is not a match, then it compares tags. and computes a similarity. So... the audio md5 tag is not used at all at later points.

The tools allow to only replace with exact matches or by some similarity threshold. That's why there are so many entries on the tool. Also the "simulate option" just simulates the processing, but does nothing. I prefer to do that always before editing a playlist so I know what will be going on. And finally the console always shows the tracks changed, contrary to what the plugin revive did (which changed things without telling you what was changed).

By the way, there is a readme for every tool at config/readmes. If something doesn't work as the readme says, feel free to report it since that's probably a bug. (and I will add some of these comments there too).
Title: Re: Playlist-Tools-SMP
Post by: regor on 2021-06-26 18:40:43
Was a one line problem.

Line 56 -> (filter empty queries)
Code: [Select]
const query = query_join(queryArr.filter(Boolean), "OR");

Feel free to totally delete the AUDIOMD5 tag if you don't use it. It's not required at all.

And this will be the readme, hope it's clearer now.
Quote
Alternative to foo_playlist_revive.
Playlist Revive makes dead items in a playlist alive again by replacing them with the matching ones in media library.
A handy utility for those who often move or rename their media files/folders.

Querying:
   - TITLE
   - AUDIOMD5 (tag from foo_md5 if found) (*)
   - MD5 (tag from foo_md5 if found) (*)

Matching (rules by order):
   - Audio MD5 (file info) (Exact Match) (*)
   - AUDIOMD5 (tag from foo_md5 if found) (Exact Match) (*)
   - MD5 (tag from foo_md5 if found) (Exact Match) (*) (**)
   - TITLE + Length + Size (Exact Match)
   - Tags (Similarity)

Usage:
   - Select the tracks in the relevant playlist.
   - Apply script (using a button, menu entry, main menu SMP, etc. associated to it).
   - The tools allow to only replace with exact matches or by some similarity threshold.
   - 'Simulate' options just simulates the processing, does nothing but reporting you -planned- changes.
   - The console always reports the tracks changed and info, contrary to what foo_playlist_revive plugin did.

(*) Audio MD5 is a feature of some formats which store audio checksums as part of their file info.
That's different, although similar, to a tag named AUDIOMD5 (or MD5) by foo_md5 plugin.
On the first step -querying-, the tag is used if available (it's not a requisite).
On the second step -matching-, the file info is used if available (for some formats), if it's not found
then it tries the tag counterpart. If it's not found it tries the next rule, ...
(**) foo_md5 plugin lets you configure the tag name. I use those 2 as possible names to look for.
Plugin can be found here: https://foobar.hyv.fi/?view=foo_audiomd5
Note that for formats having CRC checks (like flac), you can also get an md5 tag with mass tagger scripts:
$info(md5) -> copy -> AUDIOMD5
You can find such preset at '.\presets\Masstagger'

Title: Re: Playlist-Tools-SMP
Post by: Koshingg on 2021-06-27 02:26:35
 Yes, now it makes sense, thanks for explaining. I downloaded the file and I tested again, this time it works ( even without  AUDIOMD5, as you said) but another problem appears : the other songs in the playlist disappear,  only the fixed song remains.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2021-06-27 16:54:22
Songs not "dead" are removed or the dead songs not revived are removed from the list?

Can't reproduce any of those cases. Have tried with a playlist with:

- Tracks on library.
- Dead items but with alternative on library.
- Dead items with no match.

After reviving playlist, with selection or entire playlist, all items are the same on the playlist. Dead ones are substituted, but that's all. The one without match is left, the same than the other tracks
Title: Re: Playlist-Tools-SMP
Post by: regor on 2021-06-27 19:52:41
A problem about playlist revive.....When I move a file from a partition to another partition , let's say D\music to E\music (obviously the folders are included in the media library) or when I rename a folder this is what happens

Playlist Tools - Other Tools - Playlist Revive - Replace dead items on selection (or if I use Replace dead items on current playlist), I have this kind of errors :

Query not valid. Check query:
(title IS I Will Always Love You) OR (undefined)

I don't know why but I can't revive dead items in a playlist....

Problem number 2.
Most played tracks from.....from last -- 1 week (for example)
It seems that songs that have a high playcount are favoured, so they get at the top of the playlist
I'll give you this example: Let's say that in the last week I have listened Bon Jovi - Always , ONLY once, BUT the total playcount for this song is 30.
This week I also listened Madonna - Frozen , 10 times BUT the total playcount for this song is 12.
The conclusion:  Most played tracks from last week will look like this :
Bon Jovi - Always (playcount in a week :1 , total playcount : 30)
Madonna - Frozen (playcount in a week :10 , total playcount : 12)
I think it should be exactly the opposite, like this :
Madonna - Frozen (playcount in a week :10 , total playcount : 12)
Bon Jovi - Always  (playcount in a week :1 , total playcount : 30)

I tested on a few songs and it's the same. This way Most played tracks from.....from last -- 1 week (or other period) it's a bit useless because I'll see songs with high playcount at the top (obviosly if I played those songs with high playcount in the selected period), it doesn't reflect the reality. Maybe you can fix it
As I said in the other post , I used the last version of the scripts, portable Foobar 1.6.6 , clean install, only SMP ( vers. 1.4.1) installed

Revising the code of top tracks from... everything seems to be right. They are indeed sorted by playcount, but the count is taken from the period.

Could you send me 2/3 tracks with those tags (with play timestamps) to check? I'm currently on a system without enhanced statistics, so can not check that part!
Title: Re: Playlist-Tools-SMP
Post by: Koshingg on 2021-06-27 20:14:40
This is what I do : I make a playlist with songs from library
Then I move a song in a new folder that I create (the created folder is in library, on the same drive) , or I just simply move a song from one drive (let's say D\Music) to another drive (E\Music), both on library

Songs not "dead" are removed . The only song that remains in the playlist is the revived item( song) . So, the ''dead" song is successful
revived, BUT the other not dead songs are removed . All songs are in library,


"- Dead items with no match.""

If I try this all songs remain in the playlist , but obviously it's useless
I've sent you a message with a gif


Yes, I'll send you 2 tracks in 20-30 minutes
Title: Re: Playlist-Tools-SMP
Post by: regor on 2021-06-27 21:03:40
The playlist revive is done now. Thanks for the gif... you see selecting the culprit or all changed totally the behavior, would have not found the problem without it.

Check latest file :)

PD: has also fixed another related bug
Quote
- Other tools\Playlist Revive: undefined queries when file didn't had AUDIOMD5 tag (from foo_md5) are now skipped. The plugin was never a requirement, but an extra to find faster matches by query. If you use the plugin, their tags will also be used; otherwise, the tool queries by title and compares md5 file info first (if avalaible) or file size (for exact match) and then all tags to compute similarity.

- Other tools\Playlist Revive: reviving selection (instead of entire playlist) no longer outputs only the selected items, but recreates the entire playlists; dead items with matches are replaced and dead items without a match or other items are left untouched. Current item selection will also remain selected after processing.

- Other tools\Playlist Revive: bug on reviving All playlists which made only active playlist to be actually changed (the rest was analyzed but not touched).
Title: Re: Playlist-Tools-SMP
Post by: regor on 2021-06-28 11:56:39
This week I also listened Madonna - Frozen , 10 times BUT the total playcount for this song is 12.
The conclusion:  Most played tracks from last week will look like this :
Bon Jovi - Always (playcount in a week :1 , total playcount : 30)
Madonna - Frozen (playcount in a week :10 , total playcount : 12)
I think it should be exactly the opposite, like this :
Madonna - Frozen (playcount in a week :10 , total playcount : 12)
Bon Jovi - Always  (playcount in a week :1 , total playcount : 30)

I tested on a few songs and it's the same. This way Most played tracks from.....from last -- 1 week (or other period) it's a bit useless because I'll see songs with high playcount at the top (obviosly if I played those songs with high playcount in the selected period), it doesn't reflect the reality. Maybe you can fix it
As I said in the other post , I used the last version of the scripts, portable Foobar 1.6.6 , clean install, only SMP ( vers. 1.4.1) installed

Solved. Was a really stupid typo I made at some point while refactoring the code at a later release... I was substracting current date to played dates, instead of doing the opposite. So it was in fact reporting tracks less played -but at least played once- in the given period hahahaha (*). Resulting in playcounts -within the given period- from low (top) to high (bottom). Having an absolute playcount track at top was just a coincidence on your library.

Btw the files did not prove useful at all because the statistics are saved within foobar config and not the files. But anyay it's solved now.

Replace at .\main\top_tracks_from_date.js

(*) Not sure if such function has any utility btw. Usually we want to find the most played tracks... but maybe it has some use to revisit tracks played less on a given period (?)
Title: Re: Playlist-Tools-SMP
Post by: Koshingg on 2021-06-28 23:39:45
Yay, great that it's solved :) Well, I remember that I saw Moya Brennan - Show Me , at the top of the list, I accidentally listened this song only once and I knew it was the song with the most playcounts in the library (but lately I didn't listened at all) so I said "hmm something is wrong here" :) So I tested again with other 2 songs with high playcount , I listened them only once .
So now it makes sense why they were at the top of the list :) Good that it's solved, I tested again and everything seems ok
Title: Re: Playlist-Tools-SMP
Post by: regor on 2021-07-15 21:56:46
Have updated the repository with all the latest changes and all bugfixes.  There are major changes, HTTP control integration (https://hydrogenaud.io/index.php?topic=62218.1125), some new tools, readme for all tools, auto-show readmes when adding buttons, etc. If anyone want to test it, download the files directly from the repository not the releases.

(it's recommended to also download the latest files from the rest of my scripts, since I have changed all with major changes)

Changelog is up to date on github. Check unreleased.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2021-07-21 09:45:24
Since someone asked for it, to change key tag on Playlist tools (for harmonic mixing) change this variable at: xxx-scripts\main\playlist_tools_menu.js (line 21)
X

(it will be configurable on next release)


Title: Re: Playlist-Tools-SMP
Post by: regor on 2021-07-24 20:51:13
Have updated the repository with the new menus to remap tags, an important change to harmonic mixing and pools which should greatly speed up (x1000) their use with large handle lists and new presets (masstagger).

If anyone want to test it, download the files directly from the repository not the releases. Please have in mind the relative path bug on SMP has not been solved yet, so I have no idea if it will work for you!
(it's recommended to also download the latest files from the rest of my scripts in that case, since I have changed all with major changes)


EDIT: Export your Playlist Tools preset list (at config menu) to have a backup if you added your own entries to the menus! The last update will break previous properties (and thus presets). Save them and re-import them after installing.
Title: Re: Playlist-Tools-SMP
Post by: Koshingg on 2021-07-25 12:11:37
Maybe I misunderstand something but when I use:  Playlist tools - other tools - import track list - import from file \ url  , I get no result, using the example track_list_to_import.txt .

As you see in the pic, I put a song in the library Aretha Franklin - Respect, but it doesn't find anything.

Also, when I export a playlist from Spotify in txt. format I have this, for example :
Aretha Franklin - Respect

I tried to modify this [". ","%title%"," - ","%artist%"] from your example, but it didn't worked.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2021-07-25 16:02:26
Error on my side. Missed some quotes somewhere on a last minute change so no query worked. Fixed, replace file at 'main\'. Now should work in all cases. Updated also github.

And it seems I also forgot to add it to the 'test tools' macro, which would have found the problem too automatically (both macros run all tools from menu for easy testing). Fixed it too (at github and requires restoring defaults on macro menu).
Thanks!
Title: Re: Playlist-Tools-SMP
Post by: Koshingg on 2021-07-25 21:29:26
Yep, your example (that text file, track_list_to_import) is working now.
But now I think it's a error on my side :)
I made another txt file (a playlist exported from Sotify in txt format), track_list_to_import. It looks like this :

Cock Robin - Stumble and Fall
Joe Hisaishi - A Road to Somewhere
The Police - Every Breath You Take

You have this (for your txt file) : [". ","%title%"," - ","%artist%"]

What should I use for my case? I probably tried everything , except the good version :)

Btw, this is a nice little feature, now it's easier to import a playlist from Spotify to Foobar and vice versa. Also it will be cool if we can save more presets, not only your example
Title: Re: Playlist-Tools-SMP
Post by: regor on 2021-07-25 21:57:09
Yep, your example (that text file, track_list_to_import) is working now.
But now I think it's a error on my side :)
I made another txt file (a playlist exported from Sotify in txt format), track_list_to_import. It looks like this :

Cock Robin - Stumble and Fall
Joe Hisaishi - A Road to Somewhere
The Police - Every Breath You Take

You have this (for your txt file) : [". ","%title%"," - ","%artist%"]

What should I use for my case? I probably tried everything , except the good version :)

Btw, this is a nice little feature, now it's easier to import a playlist from Spotify to Foobar and vice versa. Also it will be cool if we can save more presets, not only your example
In fact I created it for online playlists found at random places: 'Top 100 guitar tracks', etc. It was a pain having to look for all the tracks  matching them manually in my own library! But yep, it may be used to sync spotify playlists and probably other use-cases.
This is an easy way to share playlists between users too, since they are path agnostic and may be loaded in anyone's library matching just what they got.

Uhm... I could make it remember the last "preset" used.  But not sure about adding a list or presets, it's unnecessarily complex.
I mean, if you download random lists from internet, you will need to edit it no matter what. And if you use it for an specific source (Spotify) then using the last one should be good enough, since it will always be the same.

Code: [Select]
["%artist%"," - ","%title%"]

You probably used the right one But it's a(nother) bug on my side. I didn't contemplate the first value being a tag (expected a number, etc.), so it always failed. Use the above code with the new file. Now it should work as expected in any case, no matter the tag positions.
Title: Re: Playlist-Tools-SMP
Post by: Koshingg on 2021-07-25 22:40:01
Yeah, I used that too , good that it's solved :)
"Uhm... I could make it remember the last "preset" used.  But not sure about adding a list or presets, it's unnecessarily complex."

You're right . I only asked for presets because I didn't managed to get the results that I wanted (but now we know it was because of the bug) and I was thinking : "hmmm , maybe we need presets here, so next time I will have faster results with the playlist? " haha :)
No need for presets

Title: Re: Playlist-Tools-SMP
Post by: regor on 2021-07-29 10:06:34
Now it stores the last value used at Import track list\Import from file \ url...
The other entry uses the same (last) format mask value. No further changes.

Will update it on github later today.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2021-08-02 18:45:52
Have updated the repository with all the previous fixes. The latest SMP dev build fixes the relative paths bug too, so it should be safe to update to the new version from now on.
https://ci.appveyor.com/api/projects/theqwertiest/foo-spider-monkey-panel/artifacts/_result%2FWin32_Release%2Ffoo_spider_monkey_panel.fb2k-component?branch=master&job=Configuration%3A%20Release
Title: Re: Playlist-Tools-SMP
Post by: Koshingg on 2021-08-05 17:51:05
I have a suggestion if you like it and it's easy to implement. When using: Playlist tools - other tools - import track list - import from file \ url ...... It's possible after we import that text file with songs to have the results about tracks not found on libary, like this :

the buggles - video killed the radio star
peter gabriel - sledgehammer
culture club - karma chameleon
billy ocean - when the going gets tough, the tough get going
guns n' roses - sweet child o' mine

Currently we have this :

Line 0-> Artist: the buggles, Title: video killed the radio star
Line 2-> Artist: peter gabriel, Title: sledgehammer
Line 6-> Artist: culture club, Title: karma chameleon
Line 7-> Artist: billy ocean, Title: when the going gets tough, the tough get going
Line 10-> Artist: guns n' roses, Title: sweet child o' mine
This is useful for big playlists (I had a playlist with 1300 songs from spotify, and this behavior would be great ) , because the returned songs that are not found on the library can easily be imported for example in a playlist on youtube ( using this https://www.tunemymusic.com/File-to-Spotify.php#step5) , and then played inside foobar  (or you can do something else with that playlist)
I'm not saying the old behavior must be removed, just if it's possible to add this too, the possibility to return only Artist - Title (for the songs not present in library).
Title: Re: Playlist-Tools-SMP
Post by: regor on 2021-08-06 08:29:15
I have a suggestion if you like it and it's easy to implement. When using: Playlist tools - other tools - import track list - import from file \ url ...... It's possible after we import that text file with songs to have the results about tracks not found on libary, like this :

the buggles - video killed the radio star
peter gabriel - sledgehammer
culture club - karma chameleon
billy ocean - when the going gets tough, the tough get going
guns n' roses - sweet child o' mine

Currently we have this :

Line 0-> Artist: the buggles, Title: video killed the radio star
Line 2-> Artist: peter gabriel, Title: sledgehammer
Line 6-> Artist: culture club, Title: karma chameleon
Line 7-> Artist: billy ocean, Title: when the going gets tough, the tough get going
Line 10-> Artist: guns n' roses, Title: sweet child o' mine
This is useful for big playlists (I had a playlist with 1300 songs from spotify, and this behavior would be great ) , because the returned songs that are not found on the library can easily be imported for example in a playlist on youtube ( using this https://www.tunemymusic.com/File-to-Spotify.php#step5) , and then played inside foobar  (or you can do something else with that playlist)
I'm not saying the old behavior must be removed, just if it's possible to add this too, the possibility to return only Artist - Title (for the songs not present in library).
Note you can easily get what you want with any text editor:
Replace -> ", Title: " with ""
Select and remove "Line X-> Artist: "

For the 2nd step you need a text editor which allows vertical selections, with alt. Notepad works, Word too. It takes 10 seconds on my side to do that.

Replicating the same list on the same popup does not seem a good idea, so I may offer a config to either show Lines (default) or what you suggest.

Note there is a reason why I didn't return a list like you suggest: that list is created with the results the script got from reading the file after applying the masj, i.e. they may be wrong. That's why Lines are shown. Offering an alternate playlist implies the assumption of those lines being right, so that can not be the default behavior.

I will edit the reports of tag checking too for the same reason. I added all text to one popup and It should be in multiple popups.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2021-08-07 09:26:32
Just updated the repository.  It includes all previous fixes. The invert selection is a pretty simple utility but noticed it was missing on Foobar! Has become really useful along playlist search or macros.

### Added
- Select...\Invert selection: inverts current selection on active playlist.

- Presets: scripts for Picard to retrieve high level tags (gender, valence, danceability, speechiness, ...) from AcousticBrainz high level data. Tags are easily configurable. AcousticBrainz Tags plugin 2.2+ is required (within Picard). Those tags are meant as a direct replacement, using an open source data model, of Spotify's tags... which can only be retrieved with an API in some software and rely on closed source models and data (new data can not be added by users). If some tracks are not in AcousticBrainz database, they may be analyzed locally to then send send the results to their server (https://musicbrainz.org/doc/How_to_Submit_Analyses_to_AcousticBrainz) and later get the results on Picard.
See discussion here: https://hydrogenaud.io/index.php?topic=120982.msg1001549#msg1001549

- Other tools\Import track list: Reads a txt file containing a track list and finds matches, if possible, on library. The results are output to a new playlist ('Import'). The input path may be a file path or an url pointing to a txt file. Specially useful to easily create playlists (with matches from your library) from online playlists, charts, etc. (like '100 greatest rock songs', ...). Skipping the need to manually add one by one the tracks to your own version of the playlist. Not found tracks are reported with a popup. Format mask is saved between calls.

### Changed
- Check tags: Split popup report on 3 different popups according to their content (queries, errors and exclusions).
- Import tool now shows 2 popups.
Title: Re: Playlist-Tools-SMP
Post by: Koshingg on 2021-08-07 23:02:00
Yup, finally we have Invert selection! Probably should be already included in foobar. Actually I wanted to ask you about this for a few days, haha. I was using a old component foo_menu_addons  (1.4.2) but it's from 2010 (I barely founded it, almost 2 years ago, because all links were dead) . Now I can uninstall it :)
And thanks also for the improvements for Import track list
Title: Re: Playlist-Tools-SMP
Post by: regor on 2021-08-10 12:04:38
Have also added the expand function (which is essentially the same than Playlist filtering but setting selection), move selection (on current playlist) and jump to next/previous tracks by tags. So it should fully replace the plugin now if we talk about selection manipulation (btw the jump part of the plugin crashed foobar on my side, so the plugin is not safe to use nowadays).
Will also consider creating buttons which can be assigned to the submenus... (for example to have a Selection manipulation button which opens the selection menu directly).

Spoiler (click to show/hide)

PD: using these entries along macros could be used to create really interesting playlist creation macros (since you may traverse the playlist using arbitrary tags to select things).
Title: Re: Playlist-Tools-SMP
Post by: regor on 2021-08-10 18:20:50
Was a bit harder than expected but works. The entire submenu tree from Playlist Tools may be recreated into an individual button, making it faster to work with some tools (like foobar main menus) (*). SMP 1.5.2 has been added as requisite on installation notes (since I noticed some people was using older versions... which may break things).

Also fixed a bug on Search by Distance (I accidentally deleted some lines so it always crashed with the latest files), and some minor fixes when adding/removing buttons (properties not being automatically deleted).

All is now updated in the repository. As soon as the relative path bug gets definitely fixed on SMP I will create a proper release...

Spoiler (click to show/hide)

(*) If someone was interested into integrating Playlist Tools within a custom theme, now it should be relatively easy to split all submenus and create a menu bar with the desired theme (ditching the used grey button theme).
Title: Re: Playlist-Tools-SMP
Post by: FritzLn on 2021-08-12 00:35:28
Looking for some guidance

I have a portable installation of foobar 1.6.6

Steps I followed

1. Create scripts\SMP\xxx-scripts folder structure in profile folder :
C:\Users\<MY_USERNAME>\.user\audio.players\foobar2000\profile\scripts\SMP\xxx-scripts

2. Drag Playlist-Tools-SMP-2.0.0 folder from archive folder into xxx-scripts :
C:\Users\<MY_USERNAME>\.user\audio.players\foobar2000\profile\scripts\SMP\xxx-scripts\Playlist-Tools-SMP-2.0.0

3. Enable Layout Editing Mode and create new UI element : Spider Monkey Panel v 1.5.1

4. Click panel created in step 3

5. Click File -> Import -> and locate buttons_toolbar.js

6. Click OK

7. Error window pops up (screenshot posted below)

any ideas? looking forward to using this, thanks!

(https://i.imgur.com/p1uFYd0.png)
Title: Re: Playlist-Tools-SMP
Post by: regor on 2021-08-12 08:49:09
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.
Title: Re: Playlist-Tools-SMP
Post by: FritzLn on 2021-08-12 14:32:44
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?
Title: Re: Playlist-Tools-SMP
Post by: FritzLn on 2021-08-12 16:39: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
Title: Re: Playlist-Tools-SMP
Post by: regor on 2021-08-19 14:04:11
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.
Title: Re: Playlist-Tools-SMP
Post by: Taynt3d on 2021-08-21 01:11:40
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
Title: Re: Playlist-Tools-SMP
Post by: regor on 2021-08-23 21:22:31
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.
Title: Re: Playlist-Tools-SMP
Post by: Taynt3d on 2021-08-24 19:03:07
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!
Title: Re: Playlist-Tools-SMP
Post by: regor on 2021-08-31 21:28:55
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)
Title: Re: Playlist-Tools-SMP
Post by: regor on 2021-09-19 14:39:27
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'
Title: Re: Playlist-Tools-SMP
Post by: regor on 2021-09-23 16:00:14
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.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2021-09-24 17:14:44
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).
Title: Re: Playlist-Tools-SMP
Post by: regor on 2021-09-29 19:20:25
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.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2021-10-05 20:24:26
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.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2021-10-08 21:50:54
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)
Title: Re: Playlist-Tools-SMP
Post by: regor on 2021-10-10 19:11:26
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.
Title: Re: Playlist-Tools-SMP
Post by: hamybal on 2021-12-10 16:19:12
Hey regor,
I've tried installing it natively and portable but the paths never seem to work.
I've always use portable but right now i'm also trying it normally just to get this to work.
c:\Users\xxx\AppData\Roaming\foobar2000\scripts\SMP\xxx-scripts...
For portable installations >= 1.6: .\foobar2000\profile\scripts\SMP\xxx-scripts...
https://imgur.com/a/VbM62R2
besides these I've also used these path although knowing this should be wrong.
c:\Users\xxx\AppData\Roaming\foobar2000\scripts\SMP\xxx-scripts\...
c:\Users\xxx\AppData\Roaming\foobar2000\scripts\SMP\...
c:\Users\xxx\AppData\Roaming\foobar2000\scripts\SMP\xxx-scripts\Playlist-Tools-SMP-main\
For portable installations >= 1.6: .\foobar2000\profile\scripts\SMP\xxx-scripts\...
For portable installations >= 1.6: .\foobar2000\profile\scripts\SMP\...
For portable installations >= 1.6: .\foobar2000\profile\scripts\SMP\xxx-scripts\Playlist-Tools-SMP-main\

As you can see I've really tried to get it to work but it just doesn't for me,
I use foobar 1.6.7 and also tried the new one 1.6.8
for SMP i've 1.5.2.

Main errors I get is Path does not point to a valid file: helpers\buttons_xxx.js.
But as far as I can see I've tried the right path plus 3 addional paths for either native and protable, so if you got any suggestion I would love to hear it.
I also looked through the comments of other people to see how they solved it, but for me that didn't work.

Really hoping to get it to work because of what I can see it looks absolutely amazing!
Title: Re: Playlist-Tools-SMP
Post by: regor on 2021-12-14 09:01:16
First, hope you are downloading the latest files directly from the repo instead of using the release page. See previous reply.
Then the installation instructions are pretty clear, there are even screenshots on the download. There is no need for subfolders, just copy all to 'xxx-scripts', and it seems that's what you did (except the 3rd image, check it again, it's wrong).
c:\Users\xxx\AppData\Roaming\foobar2000\scripts\SMP\xxx-scripts\... [all here]
or
MY PORTABLE FOOBAR\profile\scripts\SMP\xxx-scripts\... [all here] (portable 1.6)
X

Then if you still have errors.... that may be the bug at SMP with relative paths. It keeps saying files are missing even when they are clearly there! Please report it at the SMP thread, I'm really tired of it...
Then use '_switchPaths.zip' to "fix" it, it will edit every *.js file and change paths to absolute paths. Which is only a workaround.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2021-12-24 09:16:19
https://github.com/regorxxx/Playlist-Tools-SMP/releases/tag/v3.0.0-beta.1
Quote
Online controller integration, QOL and stability improvements
Considered a beta due to a SMP's bug on installation. See _TIPS and INSTALLATION.txt
REQUIRES SMP 1.5.2.

    Full script console logging to file at foobar profile folder ('console.log'). Meant to be used along http control on server.
    New tools for playlist manipulation: intersect, merge, difference, ...
    New methods for pools: Intercalate. New preset 'Top tracks mix (intercalate)' as example.
    New tools for selection manipulation: Move selection, Expand, Jump, Scatter by tags and here, Select next tracks, Invert selection.
    New tool to import track list: Reads a txt file containing a track list and finds matches, if possible, on library.
    New buttons for macros.
    New buttons to directly assign any Playlist Tools entry or submenu to its own button. (this one is a big QOL change)
    Reworked UI, colors for buttons and bar can be customized. Reworked menus order and presentation.
    Allows other scripts Integration via SMP Main menu: the nine Spider Monkey Panel menu entries ('File\Spider Monkey Panel') are now directly configurable within playlist tools menu.
    Online controllers integration: see also ajquery-SMP. When Playlist Tools is installed on a foobar server (foo_http_control), menu entries, output devices and DSP list will be available on the online controller to be executed or changed them on demand.
    Better tag remapping: Key, BPM can be remapped globally. There is a menu to directly remap tags.
    Harmonic Mixing: now works with Open Keys too (in addition to Camelot Keys and standard notation keys).
    Expanded logging options.
    Improved Search by Distance: caching and calculations for influences. Distance tests. Buttons customization, exposing now all the available variables via menus. Also adding the tools found only -previously- at the Playlist Tools button. New presets.
    Added scripts for Picard to retrieve high level tags (gender, valence, danceability, speechiness, ...) from AcousticBrainz high level data.
    Greatly optimized the code at multiple parts (faster processing): duplicate removing (minimum x2 times faster), pool picking methods, macros, etc. Other parts of code have been reworked to work asynchronously.
    Every tool now checks for fine-grained lock status on playlist (moving, removing, etc.), instead of using the global locked / not locked. So it will work consistently with external plugins that allow to block only specific actions on playlists.
    Multiple important bug fixes. (specially for Search by Distance)

See changelog for a full list: https://github.com/regorxxx/Playlist-Tools-SMP/blob/main/CHANGELOG.md
Title: Re: Playlist-Tools-SMP
Post by: keyboard on 2022-02-18 16:54:50
I haven't had a chance to try out the script yet so this is more of an aesthetic problem, but when I open the buttons in a SMP they're extremely small. Like to the point where they're illegible.

(https://i.imgur.com/8KdBPk0.jpg)

I have a 4k screen on my laptop so this happens with UIs pretty frequently, but I can't tell if it's that or something else. The image is CUI but it happens on both.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-02-19 22:08:10
I haven't had a chance to try out the script yet so this is more of an aesthetic problem, but when I open the buttons in a SMP they're extremely small. Like to the point where they're illegible.

(https://i.imgur.com/8KdBPk0.jpg)

I have a 4k screen on my laptop so this happens with UIs pretty frequently, but I can't tell if it's that or something else. The image is CUI but it happens on both.
The buttons and font have a fixed size, I suppose that's your problem. They work fine on my side in multiple screens although I don't use a 4k screen.

I can add a config to set the buttons size (+ font), so everyone can tweak it to their liking.  I could also change the scale according to DPI, not sure if that's your problem. Could you make some tests if I send you a few files?
Title: Re: Playlist-Tools-SMP
Post by: keyboard on 2022-02-20 03:47:17
The buttons and font have a fixed size, I suppose that's your problem. They work fine on my side in multiple screens although I don't use a 4k screen.

I can add a config to set the buttons size (+ font), so everyone can tweak it to their liking.  I could also change the scale according to DPI, not sure if that's your problem. Could you make some tests if I send you a few files?

If it works fine on your end it's almost certainly my resolution. I had to switch to foobar because the first music player I tried had the same problem with the entire interface. I'd definitely be willing to test out the files for you.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-02-22 09:23:07
Check your PM. Added a default scale associated to DPI. I don't really find the DPI check working in all cases anyway, because it works fine in my Win 7 system but in another PC with Win 10 and DPI 120, the buttons get bigger than they should be at some resolutions.

So I have also added a scale option at the bar menu and a warning popup if the script finds the buttons are bigger than the panel height. That should cover all use cases. (if it works fine for you, I will port the same changes to Playlist Manager buttons).

Spoiler (click to show/hide)

EDIT: there are also additional changes to button placement, like orientation being configurable, buttons can be moved using drag n drop, etc. which were meant for the next update. You can also play with that.
Title: Re: Playlist-Tools-SMP
Post by: mamema on 2022-02-25 14:59:01
….i‘m tryin to use the Playlist Manager, But i‘m failing in a very early Stage….

I have the Monkey Panel component installed, but the only reference that it‘s installed is an entry in the help menu.
Anyway then next step is

…..copy the Playlist  Manager data Into the scripts folderr er But my Foobar2000 on two Win10 Instances both do Not have a scripts  folder…

So i‘m a Little lost…

Can someone help?
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-02-28 22:32:27
….i‘m tryin to use the Playlist Manager, But i‘m failing in a very early Stage….

I have the Monkey Panel component installed, but the only reference that it‘s installed is an entry in the help menu.
Anyway then next step is

…..copy the Playlist  Manager data Into the scripts folderr er But my Foobar2000 on two Win10 Instances both do Not have a scripts  folder…

So i‘m a Little lost…

Can someone help?

There is no such folder by default, you have to create it by yourself, along any subfolder required following my install instructions. I thought that was obvious, but I have added a note about it in the installation notes to make it clear now ;)

The other question is not related to my scripts but how to use spider Monkey panel as far as I have understand. You have to add a SMP panel to the layout (it's supposed you have to know how to edit the layout and add custom panels). Once there  is a blank panel, and you have put all files in the proper place, then you can right click in the blank SMP panel and point it to load the .js file.
For ex:
Spoiler (click to show/hide)

It's not really my work, but have noticed there is not a SMP installation guide for newbies. I could add a step by step guide in the pdf which covers the part of adding a script to a panel which I have not found anywhere.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-03-02 20:49:45
https://github.com/regorxxx/Playlist-Tools-SMP/releases/tag/v3.0.0-beta.3

Quote
v3.0.0-beta.3 - Buttons framework rewritten, bugfixes, QOL changes and Search by Distance update Latest

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

    Search by distance: Updated to match 2.1.0 release with tons of improvements.
    Other Tools\Write tags: added LRA calculation (Loudness Range) via ffmpeg. ffmpeg executable must be downloaded and put into 'helpers-external\ffmpeg'.
    Harmonic Mixing: new option to perform a double pass on harmonic mixing which increases the number of tracks selected for the final mix.
    Dynamic queries: new option at configuration to allow evaluation of dynamic queries on multiple selected tracks, instead of only the focused item.
    Multiple minor changes to menu entries, tooltips and console logging.
    Improved UNIX compatibility.
    Fully reworked buttons framework: configurable scale, orientation, buttons position can be changed with drag n drop, reflow of columns/rows, etc.
    Fixed multiple crashes.

See changelog for a full list: https://github.com/regorxxx/Playlist-Tools-SMP/blob/main/CHANGELOG.md
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-03-06 22:31:28
https://github.com/regorxxx/Playlist-Tools-SMP/releases/tag/v3.0.0-beta.4
Quote
v3.0.0-beta.4 -Hotfix
There may be a SMP's bug on installation. See _TIPS and INSTALLATION.txt
PREVIOUS BUTTONS CONFIG WILL BE LOST ON UPGRADE DUE TO A CHANGE ON PROPERTIES
REQUIRES SMP 1.6.1.

    Fixed crash when using harmonic mixing due to a typo on the code.

See v3.0.0-beta.3 release info: https://github.com/regorxxx/Playlist-Tools-SMP/releases/tag/v3.0.0-beta.3
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-05-04 19:33:07
https://github.com/regorxxx/Playlist-Tools-SMP/releases/tag/v3.0.0-beta.6

Quote
v3.0.0-beta.6 - Bugfixes and new Pools method Latest

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.

    Pools: added new classic pools presets based on TF grouping (like foo_random_pools). Restore defaults to load them. It can also be used along (dynamic) query filtering; for ex: a pool with 2 tracks by 50 different artists which also match the genre of the currently selected track. See also 'presets\Playlist Tools\pools\classic_pool_*.json' for more examples.
    Other tools\Write Tags: tagging is done in smaller groups of tracks, so in case something goes wrong, it would be easier to re-tag missing files and less time would have been lost.
    Fixed errors on Dynamic queries, Advanced sort (dyngenre) and Import track list with special chars.
    Fixed crash on Search similar by... when pool of selected tracks was empty.

See changelog for a full list: https://github.com/regorxxx/Playlist-Tools-SMP/blob/main/CHANGELOG.md

Previous changes -there are some really important- (v3.0.0-beta.5):
Spoiler (click to show/hide)
Title: Re: Playlist-Tools-SMP
Post by: hamybal on 2022-05-15 17:52:18
Much appreciation for this craft regor the options and possibilites are remarkable!

I do have some question if I may,
I'm using the playlist tool to write tags like chromaprint, MD5, replaygain, and would like to uncheck replaygain but everything is greyed out.

Using the write tags tool upon the progression on fingerprinting I get the window, Warning: Unresponsive script, Continue or Stop script.
Panel: Playlist Tools: Buttons Bar: Playlist Tools: Buttons Bar
Script: 9442a60cd99bfec55e362636caa52d3d: 253
Pressing continue it does another ~10-20% until it is finished, but would like to know if i could do it different to speed up the progress for my whole library.
Also a few tracks do fail to get a fingerprint and I cannot make it work for these file.

Is it possible to combine Playlist-Tools-SMP & Playlist-Manager-SMP?
individual they work great, and have tried combining the folders and skipped the already existing files only I coudn't get it to work.

Thank you a lot for these great components it's absolutely amazing to be able to use these features!
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-05-15 21:24:22
I do have some question if I may,
I'm using the playlist tool to write tags like chromaprint, MD5, replaygain, and would like to uncheck replaygain but everything is greyed out.
You must be using and old version, there was no way to enable/disable things in previous versions, it was just informative. Update it ;)

Using the write tags tool upon the progression on fingerprinting I get the window, Warning: Unresponsive script, Continue or Stop script.
That's a SMP thing. Check the wiki:
https://github.com/regorxxx/Playlist-Tools-SMP/wiki/Known-problems-or-limitations

Pressing continue it does another ~10-20% until it is finished, but would like to know if i could do it different to speed up the progress for my whole library.
Not sure I understand your question. Once you "disable" the warning popup, there is nothing more to do. It takes a lot of time as soon as you add tags to many files

Also a few tracks do fail to get a fingerprint and I cannot make it work for these file.
There are some cases like that... and nothing can be done. As you can imagine, that's something on Chromaprint side (for tagging, I only coded the wrapper for foobar)... so if you have tracks failing you may either retry or report the bug to them.

Is it possible to combine Playlist-Tools-SMP & Playlist-Manager-SMP?
individual they work great, and have tried combining the folders and skipped the already existing files only I coudn't get it to work.

Thank you a lot for these great components it's absolutely amazing to be able to use these features!
They are supposed to work as is without any problems. I have all my scripts installed at the same time, obviously, without glitches... Have you downloaded latest versions? You can not match different versions, that's why I always update all scripts the same days.
Spoiler (click to show/hide)

Let me know if it works for you fine after updating.
Title: Re: Playlist-Tools-SMP
Post by: hamybal on 2022-05-16 15:23:22
You must be using and old version, there was no way to enable/disable things in previous versions, it was just informative. Update it ;)
They are supposed to work as is without any problems. I have all my scripts installed at the same time, obviously, without glitches... Have you downloaded latest versions? You can not match different versions, that's why I always update all scripts the same days.
Updating it to all the newest version actually solved all the problems, The reason I didn't go for them in the first place is because there was the word beta in it. When combining the folders with these versions seem to work great, I haven't fully tested it yet but so far it seems to work out just fine.

That's a SMP thing. Check the wiki:
https://github.com/regorxxx/Playlist-Tools-SMP/wiki/Known-problems-or-limitationsscript.
I did still get the message Warning: unresponsive script, before when i "checked" Don't ask my again and contiunued smp would crash. but with the newest version it's solved and it will continue and works perfectly.

There are some cases like that... and nothing can be done. As you can imagine, that's something on Chromaprint side (for tagging, I only coded the wrapper for foobar)... so if you have tracks failing you may either retry or report the bug to them.
Unacceptable how dare they to tarnish your perfect craft! Well in that case I might take a look around to see the what the options are, it's also just a few songs so it isn't too big of a deal.

Let me know if it works for you fine after updating.
So far it all looks to work brilliantly and I'm really forward on keep on using it, there are still so many things to try out which also still need to figured out how to use all these functions and if I really can't get something to work I might come and ask some around again :)

If you were to bring out another version of these 2 components what would be the proper way to update it, Preferably I would not replace it because it would lose the information it would already hold.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-05-16 16:40:36
Updating it to all the newest version actually solved all the problems, The reason I didn't go for them in the first place is because there was the word beta in it. When combining the folders with these versions seem to work great, I haven't fully tested it yet but so far it seems to work out just fine.

The beta versions are actually perfectly fine (I mean, if there is a breaking bug I would fix it as soon as it's found), I call them beta due to a bug on SMP in fact XD I think that's stated in the release page. The bug is present in any version of my scripts because it's a SMP bug, I just warn about it now (that's the only difference) because some people had problems.

Quote
I did still get the message Warning: unresponsive script, before when i "checked" Don't ask my again and contiunued smp would crash. but with the newest version it's solved and it will continue and works perfectly.
If you press cancel, it crashes because you stopped it ;) That's intended behavior, feel free to ask in the SMP thread about it if you find it non-intuitive. As said, it will always appear on subsequent restarts unless you configure it to a higher time. Since it usually only happens when tagging, I find it ok to just click ok on the popup from time to time.

Quote
Unacceptable how dare they to tarnish your perfect craft! Well in that case I might take a look around to see the what the options are, it's also just a few songs so it isn't too big of a deal.
:P For example any track with a length lower than 30 secs or so will fail, but that's how fingerprinting work. Oh and any track present in an ISO file (because there is no physical file to scan)! (they are skipped now in the latest version). You can bypass the ISO limitation by ripping the tracks, scanning them and finally copying the tags back. (These are "tricks" expect to explain the manual though)

Quote
If you were to bring out another version of these 2 components what would be the proper way to update it, Preferably I would not replace it because it would lose the information it would already hold.
Nothing is lost on updating, close foobar, overwrite the "xxx-scripts" files, start foobar and done. Config is saved at another place and the panel stores internally other config, so as soon as you restart all is the same. Playlist Tools has even a menu entry to export the user configured menus for backup or other purposes.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-05-16 20:52:39
Have edited the wiki with more info about it:
https://github.com/regorxxx/Playlist-Tools-SMP/wiki/Known-problems-or-limitations

And also added these suggestions on SMP:
https://github.com/TheQwertiest/foo_spider_monkey_panel/issues/167
Title: Re: Playlist-Tools-SMP
Post by: hamybal on 2022-05-17 19:24:20
:P For example any track with a length lower than 30 secs or so will fail, but that's how fingerprinting work. Oh and any track present in an ISO file (because there is no physical file to scan)! (they are skipped now in the latest version). You can bypass the ISO limitation by ripping the tracks, scanning them and finally copying the tags back. (These are "tricks" expect to explain the manual though)
Actually I could fingerprint any song if it's 2~3 second or 30minutes, also I found a workaround for the failed songs by converting them again.
https://imgur.com/a/YnymyUp
after giving them a fingerprint they do change from .FLAC to . FLA files? but after converting these once again they go back to normal and it's fixed ;)

Quote
Nothing is lost on updating, close foobar, overwrite the "xxx-scripts" files, start foobar and done. Config is saved at another place and the panel stores internally other config, so as soon as you restart all is the same. Playlist Tools has even a menu entry to export the user configured menus for backup or other purposes.
I will use the export system as back up but it's good to hear you can just swap it.


I found a lot of readme on how to make playlist but do not see anything about creating a playlist of a fingerprint, with the button "Playlist Tools" I see a lot of different options but nothing about the fingerprint, and right clicking to make a new button i also only see options like moods/search by distance, etc.
So I pressume I have to enter a kind of dynamic query to make this work, For ex. want to test out if I can select a song and find other songs relating or getting close to the same fingerprints.

Thanks for the extra info in the last post!
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-05-18 16:52:27
I found a lot of readme on how to make playlist but do not see anything about creating a playlist of a fingerprint, with the button "Playlist Tools" I see a lot of different options but nothing about the fingerprint, and right clicking to make a new button i also only see options like moods/search by distance, etc.
So I pressume I have to enter a kind of dynamic query to make this work, For ex. want to test out if I can select a song and find other songs relating or getting close to the same fingerprints.

Thanks for the extra info in the last post!
That's because I have not shared it. There is no documentation about it for a reason ;)

Already created the code and framework to search by ChromaPrint (and FooID) fingerprinting -and works fine!- BUT foobar2000 is currently limited by RAM to do it. In my system I have 70K tracks and when foobar tries to cache the raw fingerprints it uses +1.5 GB of RAM. On the search process sometimes it reaches +3GB of RAM and crashes. There is no workaround for that since the tags are always cached, so any ram the process takes is on top of +1.5 GB of fingerprint data cached.

Therefore I stopped development on that side until foobar2000 becames a 64 bit software (its 2022  ::)) or SMP includes a method to read tags directly from files (like this one at JSP (https://github.com/marc2k3/foo_jscript_panel/blob/HEAD/CHANGELOG.md#v271)).

I could share the FooID button though, since that works fine (the fingerprints are much smaller). Will have it in mind on the next release. FooID method is much slower though and less reliable, that's why I put all my energy on the ChromaPrint framework, I managed to find "duplicates" in 70K tracks in less than 10 seconds (while it takes minutes in FooID).

Spoiler (click to show/hide)

Note in any case that tool is only meant to look for duplicates or live versions (not for track similarity in musical terms), if you want that to create playlist by similarity -like spotify- use "search by distance".
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-05-23 20:52:22
https://github.com/regorxxx/Playlist-Tools-SMP/releases/tag/v3.0.0-beta.7
Quote
v3.0.0-beta.7 - Fingerprinting and compatiblity with new scripts Latest

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.

    Fingerprinting: added buttons for tagging with ChromaPrint and FooID. Added button for searching similar tracks in library by fingerprint with FooID. All other ChromaPrint tools are greyed out due to limitations on current Foobar2000 and SMP engine (https://hydrogenaud.io/index.php?topic=120978.msg1011036#msg101103).
    Other tools\Write Tags: tool has been reworked to better handle ISO and cue files along under the hood improvements.
    Profiler: configuration was not being applied until script was reloaded.
    Playlist Manager: Updated to match v0.5.0-beta.6 release.

See changelog for a full list: https://github.com/regorxxx/Playlist-Tools-SMP/blob/main/CHANGELOG.md

Have also updated the wiki on github.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-06-22 20:03:27
https://hydrogenaud.io/index.php/topic,120979.msg1011987.html#msg1011987
Fix for wine users. (unless you are using Wine, forget about this)

@paregistrase let me know if this lets you load the panel; although a foobar crash points to other problem... but at least this should "solve" the buttons bug down the road.
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2022-06-23 00:45:20
https://hydrogenaud.io/index.php/topic,120979.msg1011987.html#msg1011987
Fix for wine users. (unless you are using Wine, forget about this)

@paregistrase let me know if this lets you load the panel; although a foobar crash points to other problem... but at least this should "solve" the buttons bug down the road.

Nah, still crashing foobar.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-06-23 08:21:43
I will give you some test files to see the point where it crashes on Wine.
Btw, when using my scripts the console is also logged to a physical file (so it remains after a crash). Look at foobar profile folder, maybe that helps finding the problem.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-06-23 14:49:16
Put this file on the main folder (along buttons_toolbar.js, playlist_manager.js, ...) and load it in a blank panel.

It has been edited to load no buttons by default. Then keep adding buttons, one by one and lets check which one gives problems.

X

Wait 1 sec between adding buttons, to ensure the console is flushed to the file. Then post here the console log whenever foobar crashes (let playlist tool button be the last one, since probably that's the one crashing). If it fails even loading the blank bar, then it will be related to one of the file management helpers.

I will check it on Monday.
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2022-06-23 16:18:28
Like before, It crashes foobar2000 when I tried to add the script in the SMP configuration tool.

Console log
Code: [Select]
[17:13:35] Playlist manager: reading files from "Z:\home\xxxx\bin\foobar2000\profile\playlist_manager\"
[17:13:36] Buttons: window.CreateThemeManager('Button') failed, using experimental buttons
[17:13:37] Caching library paths 10%.
[17:13:37] Caching library paths 20%.
[17:13:38] Caching library paths 30%.
[17:13:39] Caching library paths 40%.
[17:13:40] Caching library paths 50%.
[17:13:41] Caching library paths 60%.
[17:13:42] Caching library paths 70%.
[17:13:43] Caching library paths 80%.
[17:13:44] Caching library paths 90%.
[17:13:45] Caching library paths 100%.
[17:13:45] precacheLibraryPaths: got paths from 73663 items.

Crash report

Code: [Select]
Illegal operation:
Code: E06D7363h, flags: 00000001h, address: 7B0122E6h
Additional parameters: 19930520h 0021C228h 03F6714Ch
Message: argument not found
Last win32 error: 3

Call path:
entry=>app_mainloop

Code bytes (7B0122E6h):
7B0122A6h:  83 EC 6C 8B 59 04 8B 31 C7 45 A0 00 00 00 00 8B
7B0122B6h:  41 08 8B 51 0C C7 45 A4 90 22 01 7B 83 E3 01 89
7B0122C6h:  75 98 89 5D 9C 85 C0 74 04 85 D2 75 2D C7 45 A8
7B0122D6h:  00 00 00 00 8D 45 98 89 04 24 FF 15 40 9B 0D 7B
7B0122E6h:  83 EC 04 8D 65 F4 59 5B 5E 5D 8D 61 FC C2 10 00
7B0122F6h:  8D B4 26 00 00 00 00 8D 76 00 83 F8 0F B9 0F 00
7B012306h:  00 00 0F 47 C1 89 45 A8 C1 E0 02 8B 4C 02 FC 89
7B012316h:  4C 05 A8 83 E8 01 83 F8 04 72 B9 83 E0 FC 31 C9

Stack (0021C164h):
0021C144h:  665C6E69 61626F6F 30303272 72705C30
0021C154h:  6C69666F 0021C1D8 7B0122E6 0021C170
0021C164h:  00000000 0021C190 00000013 E06D7363
0021C174h:  00000001 00000000 7B0122E6 00000003
0021C184h:  19930520 0021C228 03F6714C 02430000
0021C194h:  00000000 00000013 70B73406 02430000
0021C1A4h:  00000000 0021C1CC 70B74177 0073006A
0021C1B4h:  239C0000 0021C1DC 70B74177 0021C210
0021C1C4h:  00000013 00000013 0021C1F0 19930520
0021C1D4h:  03F33A81 0021C218 03ED67AD 0021C1F0
0021C1E4h:  03ED7ED7 0021C218 03ED67AD E06D7363
0021C1F4h:  00000001 00000003 0021C20C 0021C518
0021C204h:  0021C2CC 0021C228 19930520 0021C228
0021C214h:  03F6714C 0021C258 03D5E984 0021C228
0021C224h:  03F6714C 03F22BA8 4E4DBD08 00000001
0021C234h:  03F15114 00000000 00000000 03F21BC0
0021C244h:  03D5EA01 0121C2C8 0021C57C 03EFB17D
0021C254h:  FFFFFFFF 0021C2C0 03D5EA0D 03F33A80
0021C264h:  03F33A83 0021C310 0021C2C0 0000000F
0021C274h:  00000000 0021C5B8 0000003A 0021C310

Registers:
EAX: 0021C170, EBX: 0021C228, ECX: 00000008, EDX: 0021C20C
ESI: E06D7363, EDI: 03F6714C, EBP: 0021C1D8, ESP: 0021C164

Crash location:
Module: kernelbase
Offset: 122E6h
Symbol: "RaiseException" (+51h)

Loaded modules:
explorerframe                    loaded at 676C0000h - 6771F000h
rsaenh                           loaded at 6FE40000h - 6FED7000h
schannel                         loaded at 6DD00000h - 6DD1C000h
psapi                            loaded at 67840000h - 6784F000h
msxml                            loaded at 71040000h - 7105C000h
msdart                           loaded at 356C0000h - 356E4000h
msado15                          loaded at 43BA0000h - 43C1E000h
msxml3                           loaded at 494D0000h - 49EB5000h
msctf                            loaded at 6F900000h - 6F9F3000h
wintrust                         loaded at 6F4C0000h - 6F560000h
setupapi                         loaded at 6BCC0000h - 6BE61000h
userenv                          loaded at 0F350000h - 0F373000h
lgpllibs                         loaded at 0FD80000h - 0FE93000h
mozglue                          loaded at 0F840000h - 0F93D000h
nss3                             loaded at 0FB70000h - 0FD7F000h
xul                              loaded at 25E40000h - 2B494000h
mshtml                           loaded at 24020000h - 25596000h
scrrun                           loaded at 0F320000h - 0F346000h
wshom                            loaded at 0F300000h - 0F31C000h
mlang                            loaded at 69480000h - 69501000h
atlthunk                         loaded at 66540000h - 66554000h
foo_ui_std                       loaded at 0AD70000h - 0AE79000h
foo_dsp_vocal_exciter            loaded at 0AD50000h - 0AD64000h
foo_uie_console                  loaded at 0AD10000h - 0AD47000h
foo_dsp_std                      loaded at 0ACD0000h - 0AD06000h
foo_r128norm                     loaded at 0AAA0000h - 0AAC8000h
foo_rgscan                       loaded at 0AA50000h - 0AA9A000h
foo_enhanced_playcount           loaded at 0AA10000h - 0AA45000h
foo_run                          loaded at 0A9D0000h - 0AA0A000h
foo_enhanced_spectrum_analyzer   loaded at 0A980000h - 0A9C3000h
foo_musical_spectrum             loaded at 0A760000h - 0A77C000h
foo_facets                       loaded at 0A3A0000h - 0A555000h
foo_scrobble                     loaded at 0A2D0000h - 0A39C000h
foo_uie_typefind                 loaded at 0A2A0000h - 0A2C3000h
foo_fileops                      loaded at 0A260000h - 0A2A0000h
foo_musicbrainz                  loaded at 0A190000h - 0A253000h
foo_playcount                    loaded at 0A160000h - 0A187000h
foo_albumlist                    loaded at 0A110000h - 0A157000h
foo_uie_albumlist                loaded at 0A090000h - 0A103000h
foo_cdda                         loaded at 0A050000h - 0A085000h
foo_wave_minibar_mod             loaded at 09FA0000h - 0A041000h
foo_texttools                    loaded at 09D60000h - 09D94000h
foo_dsp_replaygain               loaded at 09D40000h - 09D53000h
foo_simplaylist_manager          loaded at 09A60000h - 09B38000h
foo_simplaylist                  loaded at 09710000h - 0985C000h
foo_uie_lyrics3                  loaded at 09650000h - 0970B000h
foo_stop_after_queue             loaded at 09640000h - 0964D000h
foo_jesus                        loaded at 09420000h - 0943A000h
avutil-fb2k-56                   loaded at 09170000h - 09416000h
avcodec-fb2k-58                  loaded at 08FB0000h - 0916B000h
foo_input_std                    loaded at 08E50000h - 08FA9000h
foo_stnaa                        loaded at 08E20000h - 08E4D000h
mpr                              loaded at 70940000h - 70994000h
wininet                          loaded at 61940000h - 61B3F000h
urlmon                           loaded at 08380000h - 08614000h
dwmapi                           loaded at 6EC40000h - 6EC5C000h
foo_ui_columns                   loaded at 08080000h - 0837C000h
foo_vis_vumeter                  loaded at 07BD0000h - 07C75000h
fooid                            loaded at 077B0000h - 077CA000h
foo_biometric                    loaded at 07770000h - 077A7000h
foo_dsp_eq                       loaded at 07730000h - 0776D000h
foo_textdisplay                  loaded at 074E0000h - 0752B000h
foo_multisource                  loaded at 06AC0000h - 06C50000h
foo_input_monkey                 loaded at 06A80000h - 06ABA000h
foo_runcmd                       loaded at 06840000h - 06873000h
foo_quicksearch                  loaded at 065E0000h - 06637000h
usp10                            loaded at 065D0000h - 065D2000h
riched20                         loaded at 7AC00000h - 7AE2A000h
msftedit                         loaded at 06590000h - 065C7000h
wsock32                          loaded at 69180000h - 691A5000h
nspr4                            loaded at 05B50000h - 05B81000h
mozjs-68                         loaded at 046A0000h - 05B48000h
propsys                          loaded at 69940000h - 699AA000h
windowscodecs                    loaded at 03FA0000h - 046A0000h
foo_spider_monkey_panel          loaded at 03D30000h - 03F99000h
foo_discogger                    loaded at 03B70000h - 03D2A000h
foo_dsp_sqrcomp                  loaded at 03960000h - 0396E000h
foo_unpack                       loaded at 038F0000h - 0395E000h
foo_freedb2                      loaded at 038C0000h - 038F0000h
foo_masstag                      loaded at 03880000h - 038BD000h
foo_dsp_dolbyhp                  loaded at 03650000h - 03674000h
foo_dsp_dynamics                 loaded at 03640000h - 03650000h
foo_lrc_metalarchives            loaded at 035A0000h - 03638000h
foo_converter                    loaded at 03510000h - 0359A000h
nsi                              loaded at 6F480000h - 6F49B000h
iphlpapi                         loaded at 61500000h - 6157A000h
dnsapi                           loaded at 6E4C0000h - 6E4FE000h
netapi32                         loaded at 688C0000h - 6894F000h
msv1_0                           loaded at 6D880000h - 6D8B5000h
kerberos                         loaded at 65F40000h - 65F65000h
concrt140                        loaded at 02AA0000h - 02B0E000h
winex11                          loaded at 027F0000h - 02867000h
secur32                          loaded at 01DB0000h - 01E3D000h
ws2_32                           loaded at 6D780000h - 6D808000h
jsproxy                          loaded at 68080000h - 680C4000h
winhttp                          loaded at 69600000h - 69700000h
oleacc                           loaded at 637C0000h - 63881000h
bcrypt                           loaded at 66240000h - 66283000h
crypt32                          loaded at 6E8C0000h - 6EB95000h
gdiplus                          loaded at 25CB0000h - 25E40000h
msimg32                          loaded at 70E80000h - 70E94000h
msvcr120                         loaded at 67340000h - 6763A000h
msvcp140                         loaded at 62300000h - 625D8000h
winspool                         loaded at 663C0000h - 66472000h
comdlg32                         loaded at 01B90000h - 01DA7000h
dbghelp                          loaded at 6FA80000h - 6FCD2000h
imagehlp                         loaded at 6DB40000h - 6DB72000h
shared                           loaded at 01B60000h - 01B81000h
vcruntime140                     loaded at 70240000h - 70255000h
zlib1                            loaded at 10000000h - 10017000h
oleaut32                         loaded at 64EC0000h - 652BB000h
shell32                          loaded at 00EB0000h - 01B58000h
uxtheme                          loaded at 68700000h - 68791000h
shcore                           loaded at 63BC0000h - 63C05000h
shlwapi                          loaded at 64A40000h - 64B2A000h
rpcrt4                           loaded at 62FC0000h - 631E2000h
combase                          loaded at 68500000h - 68640000h
ole32                            loaded at 00A40000h - 00EA9000h
msacm32                          loaded at 6A040000h - 6A0A2000h
winmm                            loaded at 008C0000h - 00A3C000h
imm32                            loaded at 71200000h - 71255000h
win32u                           loaded at 66B00000h - 66B69000h
version                          loaded at 63480000h - 6349B000h
user32                           loaded at 6ED00000h - 6F25B000h
gdi32                            loaded at 6C9C0000h - 6CBE0000h
ucrtbase                         loaded at 70B40000h - 70E13000h
sechost                          loaded at 6BC00000h - 6BC99000h
msvcrt                           loaded at 6A280000h - 6A4F4000h
advapi32                         loaded at 61740000h - 61836000h
comctl32                         loaded at 6CC40000h - 6D0BC000h
kernelbase                       loaded at 7B000000h - 7B4D2000h
kernel32                         loaded at 7B600000h - 7B757000h
ntdll                            loaded at 7BC00000h - 7BEAB000h
foobar2000                       loaded at 00400000h - 0067A000h

Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-06-26 23:57:18
Try again with this file please. It will crash but giving us a hint about the part crashing.

First open the native console panel and click on write log (write it to a different file than the one named console.log at the profile folder) for ex. to console2.log. Then load the script. Finally post the log (the one with more lines like "TEST X" of the 2 console files).
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2022-06-27 02:06:51
This time didn't crash foobar.
Log says:
Code: [Select]
Error: Spider Monkey Panel v1.6.2-dev+7c0928bf ({431A134A-DA45-41CB-B636-E251B4FBBE1C})
missing ) after argument list

File: buttons_toolbar_test.js
Line: 111, Column: 20
Source: console.log('TEST 6';

Edit:

Maybe I'm wrong but looking the other console.log(TEST) and the log itself "missing ) after argument list"  :D seems to me that a pair of ) are missing in TEST6 and TEST7

Now it crashes foobar

The log is

Code: [Select]
TEST 1

failure.text
Code: [Select]
Illegal operation:
Code: E06D7363h, flags: 00000001h, address: 7B0122E6h
Additional parameters: 19930520h 0021C228h 0490714Ch
Message: argument not found
Last win32 error: 3

Call path:
entry=>app_mainloop

Code bytes (7B0122E6h):
7B0122A6h:  83 EC 6C 8B 59 04 8B 31 C7 45 A0 00 00 00 00 8B
7B0122B6h:  41 08 8B 51 0C C7 45 A4 90 22 01 7B 83 E3 01 89
7B0122C6h:  75 98 89 5D 9C 85 C0 74 04 85 D2 75 2D C7 45 A8
7B0122D6h:  00 00 00 00 8D 45 98 89 04 24 FF 15 40 9B 0D 7B
7B0122E6h:  83 EC 04 8D 65 F4 59 5B 5E 5D 8D 61 FC C2 10 00
7B0122F6h:  8D B4 26 00 00 00 00 8D 76 00 83 F8 0F B9 0F 00
7B012306h:  00 00 0F 47 C1 89 45 A8 C1 E0 02 8B 4C 02 FC 89
7B012316h:  4C 05 A8 83 E8 01 83 F8 04 72 B9 83 E0 FC 31 C9

Stack (0021C164h):
0021C144h:  665C6E69 61626F6F 30303272 72705C30
0021C154h:  6C69666F 0021C1D8 7B0122E6 0021C170
0021C164h:  00000000 0021C190 00000013 E06D7363
0021C174h:  00000001 00000000 7B0122E6 00000003
0021C184h:  19930520 0021C228 0490714C 02430000
0021C194h:  00000000 00000013 70B73406 02430000
0021C1A4h:  00000000 0021C1CC 70B74177 00780078
0021C1B4h:  0064005F 0021C1DC 70B74177 006A002E
0021C1C4h:  00000013 00000013 0021C1F0 19930520
0021C1D4h:  048D3A81 0021C218 048767AD 0021C1F0
0021C1E4h:  04877ED7 0021C218 048767AD E06D7363
0021C1F4h:  00000001 00000003 0021C20C 0021C518
0021C204h:  0021C2CC 0021C228 19930520 0021C228
0021C214h:  0490714C 0021C258 046FE984 0021C228
0021C224h:  0490714C 048C2BA8 4BE0B540 00000001
0021C234h:  048B5114 00000000 00000000 048C1BC0
0021C244h:  046FEA01 0121C2C8 0021C57C 0489B17D
0021C254h:  FFFFFFFF 0021C2C0 046FEA0D 048D3A80
0021C264h:  048D3A83 0021C310 0021C2C0 0000000F
0021C274h:  00000000 0021C5B8 0000003A 0021C310

Registers:
EAX: 0021C170, EBX: 0021C228, ECX: 00000008, EDX: 0021C20C
ESI: E06D7363, EDI: 0490714C, EBP: 0021C1D8, ESP: 0021C164

Crash location:
Module: kernelbase
Offset: 122E6h
Symbol: "RaiseException" (+51h)

Loaded modules:
cryptnet                         loaded at 3CAA0000h - 3CAE3000h
rsaenh                           loaded at 6FE40000h - 6FED7000h
schannel                         loaded at 6DD00000h - 6DD1C000h
winepulse                        loaded at 3C4E0000h - 3C557000h
mmdevapi                         loaded at 67D40000h - 67DD5000h
avrt                             loaded at 63E00000h - 63E17000h
explorerframe                    loaded at 676C0000h - 6771F000h
psapi                            loaded at 67840000h - 6784F000h
msxml                            loaded at 71040000h - 7105C000h
msdart                           loaded at 2E4A0000h - 2E4C4000h
msado15                          loaded at 39FC0000h - 3A03E000h
msxml3                           loaded at 395D0000h - 39FB5000h
msctf                            loaded at 6F900000h - 6F9F3000h
wintrust                         loaded at 6F4C0000h - 6F560000h
setupapi                         loaded at 6BCC0000h - 6BE61000h
userenv                          loaded at 0F190000h - 0F1B3000h
lgpllibs                         loaded at 0FBC0000h - 0FCD3000h
mozglue                          loaded at 0FAC0000h - 0FBBD000h
nss3                             loaded at 0F8B0000h - 0FABF000h
xul                              loaded at 26E40000h - 2C494000h
mshtml                           loaded at 24020000h - 25596000h
scrrun                           loaded at 0F160000h - 0F186000h
wshom                            loaded at 0F140000h - 0F15C000h
mlang                            loaded at 69480000h - 69501000h
foo_dsp_dynamics                 loaded at 0AED0000h - 0AEE0000h
foo_stop_after_queue             loaded at 0AEC0000h - 0AECD000h
foo_discogger                    loaded at 0AD00000h - 0AEBA000h
foo_simplaylist                  loaded at 0A9B0000h - 0AAFC000h
foo_dsp_std                      loaded at 0A970000h - 0A9A6000h
foo_freedb2                      loaded at 0A940000h - 0A970000h
foo_multisource                  loaded at 09F20000h - 0A0B0000h
foo_lrc_metalarchives            loaded at 09E80000h - 09F18000h
foo_vis_vumeter                  loaded at 099D0000h - 09A75000h
foo_fileops                      loaded at 09990000h - 099D0000h
foo_converter                    loaded at 09900000h - 0998A000h
foo_cdda                         loaded at 098C0000h - 098F5000h
foo_unpack                       loaded at 09850000h - 098BE000h
foo_dsp_replaygain               loaded at 09830000h - 09843000h
foo_uie_albumlist                loaded at 097B0000h - 09823000h
foo_facets                       loaded at 093F0000h - 095A5000h
foo_simplaylist_manager          loaded at 09110000h - 091E8000h
foo_enhanced_playcount           loaded at 090D0000h - 09105000h
foo_uie_typefind                 loaded at 090A0000h - 090C3000h
foo_scrobble                     loaded at 08FD0000h - 0909C000h
foo_jesus                        loaded at 08DB0000h - 08DCA000h
foo_wave_minibar_mod             loaded at 08D00000h - 08DA1000h
urlmon                           loaded at 08A60000h - 08CF4000h
dwmapi                           loaded at 6EC40000h - 6EC5C000h
foo_ui_columns                   loaded at 08760000h - 08A5C000h
foo_stnaa                        loaded at 08730000h - 0875D000h
foo_runcmd                       loaded at 084F0000h - 08523000h
foo_input_monkey                 loaded at 084B0000h - 084EA000h
foo_uie_console                  loaded at 08470000h - 084A7000h
fooid                            loaded at 08050000h - 0806A000h
foo_biometric                    loaded at 08010000h - 08047000h
foo_rgscan                       loaded at 077C0000h - 0780A000h
mpr                              loaded at 70940000h - 70994000h
wininet                          loaded at 61940000h - 61B3F000h
foo_uie_lyrics3                  loaded at 07700000h - 077BB000h
foo_masstag                      loaded at 076C0000h - 076FD000h
foo_textdisplay                  loaded at 07470000h - 074BB000h
foo_run                          loaded at 07430000h - 0746A000h
foo_enhanced_spectrum_analyzer   loaded at 073E0000h - 07423000h
foo_r128norm                     loaded at 071B0000h - 071D8000h
foo_dsp_eq                       loaded at 07170000h - 071AD000h
avutil-fb2k-56                   loaded at 06EC0000h - 07166000h
avcodec-fb2k-58                  loaded at 06D00000h - 06EBB000h
foo_input_std                    loaded at 06BA0000h - 06CF9000h
foo_musicbrainz                  loaded at 06AD0000h - 06B93000h
foo_playcount                    loaded at 06AA0000h - 06AC7000h
foo_musical_spectrum             loaded at 06880000h - 0689C000h
usp10                            loaded at 06870000h - 06872000h
riched20                         loaded at 7AC00000h - 7AE2A000h
msftedit                         loaded at 06830000h - 06867000h
wsock32                          loaded at 69180000h - 691A5000h
nspr4                            loaded at 05DF0000h - 05E21000h
mozjs-68                         loaded at 04940000h - 05DE8000h
foo_spider_monkey_panel          loaded at 046D0000h - 04939000h
foo_dsp_dolbyhp                  loaded at 044A0000h - 044C4000h
foo_texttools                    loaded at 04260000h - 04294000h
propsys                          loaded at 69940000h - 699AA000h
windowscodecs                    loaded at 03760000h - 03E60000h
foo_quicksearch                  loaded at 03700000h - 03757000h
foo_albumlist                    loaded at 036B0000h - 036F7000h
foo_ui_std                       loaded at 035A0000h - 036A9000h
foo_dsp_vocal_exciter            loaded at 03580000h - 03594000h
foo_dsp_sqrcomp                  loaded at 03570000h - 0357E000h
atlthunk                         loaded at 66540000h - 66554000h
nsi                              loaded at 6F480000h - 6F49B000h
iphlpapi                         loaded at 61500000h - 6157A000h
dnsapi                           loaded at 6E4C0000h - 6E4FE000h
netapi32                         loaded at 688C0000h - 6894F000h
msv1_0                           loaded at 6D880000h - 6D8B5000h
kerberos                         loaded at 65F40000h - 65F65000h
concrt140                        loaded at 02AA0000h - 02B0E000h
winex11                          loaded at 027F0000h - 02867000h
secur32                          loaded at 01DB0000h - 01E3D000h
ws2_32                           loaded at 6D780000h - 6D808000h
jsproxy                          loaded at 68080000h - 680C4000h
winhttp                          loaded at 69600000h - 69700000h
oleacc                           loaded at 637C0000h - 63881000h
bcrypt                           loaded at 66240000h - 66283000h
crypt32                          loaded at 6E8C0000h - 6EB95000h
gdiplus                          loaded at 25CB0000h - 25E40000h
msimg32                          loaded at 70E80000h - 70E94000h
msvcr120                         loaded at 67340000h - 6763A000h
msvcp140                         loaded at 62300000h - 625D8000h
winspool                         loaded at 663C0000h - 66472000h
comdlg32                         loaded at 01B90000h - 01DA7000h
dbghelp                          loaded at 6FA80000h - 6FCD2000h
imagehlp                         loaded at 6DB40000h - 6DB72000h
shared                           loaded at 01B60000h - 01B81000h
vcruntime140                     loaded at 70240000h - 70255000h
zlib1                            loaded at 10000000h - 10017000h
oleaut32                         loaded at 64EC0000h - 652BB000h
shell32                          loaded at 00EB0000h - 01B58000h
uxtheme                          loaded at 68700000h - 68791000h
shcore                           loaded at 63BC0000h - 63C05000h
shlwapi                          loaded at 64A40000h - 64B2A000h
rpcrt4                           loaded at 62FC0000h - 631E2000h
combase                          loaded at 68500000h - 68640000h
ole32                            loaded at 00A40000h - 00EA9000h
msacm32                          loaded at 6A040000h - 6A0A2000h
winmm                            loaded at 008C0000h - 00A3C000h
imm32                            loaded at 71200000h - 71255000h
win32u                           loaded at 66B00000h - 66B69000h
version                          loaded at 63480000h - 6349B000h
user32                           loaded at 6ED00000h - 6F25B000h
gdi32                            loaded at 6C9C0000h - 6CBE0000h
ucrtbase                         loaded at 70B40000h - 70E13000h
sechost                          loaded at 6BC00000h - 6BC99000h
msvcrt                           loaded at 6A280000h - 6A4F4000h
advapi32                         loaded at 61740000h - 61836000h
comctl32                         loaded at 6CC40000h - 6D0BC000h
kernelbase                       loaded at 7B000000h - 7B4D2000h
kernel32                         loaded at 7B600000h - 7B757000h
ntdll                            loaded at 7BC00000h - 7BEAB000h
foobar2000                       loaded at 00400000h - 0067A000h

failure.dump

Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-06-27 13:04:35
Same procedure (save console to file, etc.).

Now it should point to either an specific file or just a problem with Include + relative paths on wine.

Check for "Test 1:  FILEPATH"
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2022-06-27 13:57:58
Code: [Select]
TEST 1
TEST 1: Dummy
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-06-27 14:54:53
That's an SMP or WINE bug. The dummy file is empty so there is nothing which can crash the program there.

The part crashing is even within a try/catch statement.
Code: [Select]
include('..\\..\\helpers\\helpers_xxx_dummy.js')

I suppose the crash is related to going up 2 levels in relative folders. Load the new file which bypasses that part and you should be able to work with the script without further problems.

@TheQwertiest will have to check the bug. Opened another issue at github,
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2022-06-27 20:29:08
Still crashing the player
Code: [Select]
TEST 1
TEST 1:  helpers\buttons_xxx.js

Edit:

I saw in the GitHub report "No winetricks", but in the profile tested I have "mdac28 wsh57" installed to download bio images.
I tried in a new profile without verbs with the same results.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-06-27 20:51:31
This makes no sense. Are you adding the main file to "foobar2000\scripts\SMP\xxx-scripts\"? (profile folder)

Are those helper files in that path?
foobar2000\scripts\SMP\xxx-scripts\helpers\buttons_xxx.js
...

You are using most of those helpers on other scripts and they work fine with relative paths too (?) Try using the new files.

Try test 1 instead of the previous button bar.

Then try test 2 to copy (6), it will simply include 1 helper file at a time.

PD: added the info to github ;)
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2022-06-27 21:59:22
This makes no sense. Are you adding the main file to "foobar2000\scripts\SMP\xxx-scripts\"? (profile folder)

Are those helper files in that path?
foobar2000\scripts\SMP\xxx-scripts\helpers\buttons_xxx.js
...

You are using most of those helpers on other scripts and they work fine with relative paths too (?) Try using the new files.

Try test 1 instead of the previous button bar.

Then try test 2 to copy (6), it will simply include 1 helper file at a time.

PD: added the info to github ;)

I think so, but in fact I reuse the playlist-manager and map panels to test the new, so I can't be sure that they were still working

Maybe I have some of them mixed.

I'm going to delete all files in xxx-scripts and start again.

I installed all scripts and replace the files you gives me in the playlist manager thread.

then i put all new files in xxx-scripts folder.

Playlist-manager and map are working. Tried to import a previous .json in playlist-manager and works fine.

test1.js


The panel loads.

Code: [Select]
TEST 3
TEST 4
TEST 5
TEST 6
TEST 7
Spider Monkey Panel v1.6.2-dev+7c0928bf (Playlist Tools: Buttons Bar: Playlist Tools: Buttons Bar v3.0.0-beta8 by XXX): initialized in 565 ms
TEST 3
TEST 4
TEST 5
TEST 6
TEST 7
Spider Monkey Panel v1.6.2-dev+7c0928bf (Playlist Tools: Buttons Bar: Playlist Tools: Buttons Bar v3.0.0-beta8 by XXX): initialized in 539 ms

Trying to add a button from playlist menu (remove duplicates) crash the panel.

Code: [Select]
Error: Spider Monkey Panel v1.6.2-dev+7c0928bf (Playlist Tools: Buttons Bar: Playlist Tools: Buttons Bar v3.0.0-beta8 by XXX)
this.g_theme is null

File: buttons_xxx.js
Line: 160, Column: 6
Stack trace:
  themedButton/this.draw@buttons_xxx.js:160:6
  drawAllButtons@buttons_xxx.js:301:28
  on_paint@buttons_xxx.js:331:2

Test 2

Load

Code: [Select]
Spider Monkey Panel v1.6.2-dev+7c0928bf (Playlist Tools: Buttons Bar (overriden by script)): initialized in 532 ms
Spider Monkey Panel v1.6.2-dev+7c0928bf (Playlist Tools: Buttons Bar): initialized in 522 ms
release
release
release

but no right click menu

test2-copy 2-6

Code: [Select]
Spider Monkey Panel v1.6.2-dev+7c0928bf (Playlist Tools: Buttons Bar): initialized in 529 ms
release
release
Spider Monkey Panel v1.6.2-dev+7c0928bf (Playlist Tools: Buttons Bar): initialized in 589 ms
Spider Monkey Panel v1.6.2-dev+7c0928bf (Playlist Tools: Buttons Bar): initialized in 525 ms
Spider Monkey Panel v1.6.2-dev+7c0928bf (Playlist Tools: Buttons Bar): initialized in 525 ms
Spider Monkey Panel v1.6.2-dev+7c0928bf (Playlist Tools: Buttons Bar): initialized in 524 ms
Spider Monkey Panel v1.6.2-dev+7c0928bf (Playlist Tools: Buttons Bar): initialized in 527 ms
Spider Monkey Panel v1.6.2-dev+7c0928bf (Playlist Tools: Buttons Bar): initialized in 518 ms
Spider Monkey Panel v1.6.2-dev+7c0928bf (Playlist Tools: Buttons Bar): initialized in 525 ms
Spider Monkey Panel v1.6.2-dev+7c0928bf (Playlist Tools: Buttons Bar): initialized in 525 ms
Spider Monkey Panel v1.6.2-dev+7c0928bf (Playlist Tools: Buttons Bar): initialized in 533 ms
Spider Monkey Panel v1.6.2-dev+7c0928bf (Playlist Tools: Buttons Bar): initialized in 519 ms

Note:
I noticed in my Linux home folder, outside any foobar installation path, a profile folder with js_data inside and in my portable installation some .TXT from bio savings. Some in the main portable installation folder and some in the profile folder. Maybe from some previous foobar crashes......?

I deleted all of them before this last test..

Maybe any of this causes the previous missing files in path error?




Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-06-27 22:12:03
Ok. Now that makes more sense.

All test 2-6 files are just helpers, they do nothing. (just wanted to test the include thing)

The panel crashed now due to an error on my side here when implementing the UI buttons fix for wine:
Quote
Trying to add a button from playlist menu (remove duplicates) crash the panel.
Please, replace the buttons file with the new one, reload test 1 and it should work now. I assume that loading "buttons_toolbar.js" will also work at that point(?)


Quote
I noticed in my Linux home folder, outside any foobar installation path, a profile folder with js_data inside and in my portable installation some .TXT from bio savings. Some in the main portable installation folder and some in the profile folder. Maybe from some previous foobar crashes.

I deleted all of them before this last test..

Maybe any of this causes the previous missing files in path error?

My scripts MUST be placed on the profile folder. Otherwise they don't work. I recommend to people with those mixed portable installation problems to reinstall foobar portable and manually copy all config to the new installation profile folder. See '_TIPS and INSTALLATION', there is a section exactly for that problem.


BUT foobar crashing is not normal behavior in any case, and that points to a bug on SMP when using Include().
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-06-27 22:19:05
btw...  if you add something like this in a blank panel... what happens?

Code: [Select]
"use strict";
include('a.js')

Code: [Select]
"use strict";
include('myfolder\\a.js')

Code: [Select]
"use strict";
include('..\\a.js')

PD: Once all of this get fixed, I will send you zip files with all my current files so you can be sure to have it all installed right and no mixed files.
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2022-06-27 22:40:50
I'm sure I didn't put any file in my home folder, so they may come from bad behavior in crash.

With the new files the panel load and I can add buttons (tested some arbitrary ones, not in deep, but no error at adding)

Code: [Select]
Autobackup: Backed up 58 items to autobackup.20220627-232937.zip
TEST 3
TEST 4
TEST 5
TEST 6
TEST 7
Spider Monkey Panel v1.6.2-dev+7c0928bf (Playlist Tools: Buttons Bar: Playlist Tools: Buttons Bar v3.0.0-beta8 by XXX): initialized in 579 ms
TEST 3
TEST 4
TEST 5
TEST 6
TEST 7
Spider Monkey Panel v1.6.2-dev+7c0928bf (Playlist Tools: Buttons Bar: Playlist Tools: Buttons Bar v3.0.0-beta8 by XXX): initialized in 537 ms
release
Called: Playlist​​​​​\playlist_filter.js
TEST 3
TEST 4
TEST 5
TEST 6
Filter Playlist Button loaded.
TEST 7
Spider Monkey Panel v1.6.2-dev+7c0928bf (Playlist Tools: Buttons Bar: Playlist Tools: Buttons Bar v3.0.0-beta8 by XXX): initialized in 543 ms
Buttons: window.CreateThemeManager('Button') failed, using experimental buttons
release
Called: Fingerprint​​​​​\fingerprint_tools.js
TEST 3
TEST 4
TEST 5
TEST 6
Filter Playlist Button loaded.
Fingerprint Tools Button loaded.
TEST 7
Spider Monkey Panel v1.6.2-dev+7c0928bf (Playlist Tools: Buttons Bar: Playlist Tools: Buttons Bar v3.0.0-beta8 by XXX): initialized in 570 ms
Buttons: window.CreateThemeManager('Button') failed, using experimental buttons
release
Called: Playlist Tools​​​​​\playlist_tools.js
TEST 3
TEST 4
TEST 5
TEST 6
Filter Playlist Button loaded.
Fingerprint Tools Button loaded.
Playlist Tools Menu Button loaded.
User's music_graph_descriptors - File loaded: Z:\home\xxxx\bin\foobar2000\profile\scripts\SMP\xxx-scripts\helpers\music_graph_descriptors_xxx_user.js
User's music_graph_descriptors has been loaded but it contains no changes... using only default one.
SearchByDistance: CRC mistmatch. Deleting old json cache.
Updating recipes documentation at: Z:\home\xxxx\bin\foobar2000\profile\scripts\SMP\xxx-scripts\presets\Search by\recipes\allowedKeys.txt
Playlist Tools: creating default settings...
Playlist Tools: updating settings...
TEST 7
Spider Monkey Panel v1.6.2-dev+7c0928bf (Playlist Tools: Buttons Bar: Playlist Tools: Buttons Bar v3.0.0-beta8 by XXX): initialized in 864 ms
Buttons: window.CreateThemeManager('Button') failed, using experimental buttons
SearchByDistance: tags used for cache - %genre%|%style%
Calculating graph links 0%.
Calculating graph links 25%.
Calculating graph links 50%.
Calculating graph links 75%.
Calculating graph links 100%.
SearchByDistance: New Cache - cacheLink
SearchByDistance: New Cache - cacheLinkSet
release
release
Called: Search‎​‌​​\search_bydistance.js
SearchByDistance: Saving Cache.
TEST 3
TEST 4
TEST 5
TEST 6
Filter Playlist Button loaded.
Fingerprint Tools Button loaded.
Playlist Tools Menu Button loaded.
User's music_graph_descriptors - File loaded: Z:\home\xxxx\bin\foobar2000\profile\scripts\SMP\xxx-scripts\helpers\music_graph_descriptors_xxx_user.js
User's music_graph_descriptors has been loaded but it contains no changes... using only default one.
SearchByDistance: Used Cache - cacheLink from file.
Playlist Tools: creating default settings...
Playlist Tools: updating settings...
Search by Distance Buttons loaded.
TEST 7
Spider Monkey Panel v1.6.2-dev+7c0928bf (Playlist Tools: Buttons Bar: Playlist Tools: Buttons Bar v3.0.0-beta8 by XXX): initialized in 721 ms
Buttons: window.CreateThemeManager('Button') failed, using experimental buttons
SearchByDistance: New Cache - cacheLinkSet
release
release
release
TEST 3
TEST 4
TEST 5
TEST 6
Filter Playlist Button loaded.
Fingerprint Tools Button loaded.
Playlist Tools Menu Button loaded.
User's music_graph_descriptors - File loaded: Z:\home\xxxx\bin\foobar2000\profile\scripts\SMP\xxx-scripts\helpers\music_graph_descriptors_xxx_user.js
User's music_graph_descriptors has been loaded but it contains no changes... using only default one.
SearchByDistance: Used Cache - cacheLink from file.
Playlist Tools: creating default settings...
Playlist Tools: updating settings...
Search by Distance Buttons loaded.
TEST 7
Spider Monkey Panel v1.6.2-dev+7c0928bf (Playlist Tools: Buttons Bar: Playlist Tools: Buttons Bar v3.0.0-beta8 by XXX): initialized in 705 ms
SearchByDistance: Saving Cache.
Buttons: window.CreateThemeManager('Button') failed, using experimental buttons
SearchByDistance: New Cache - cacheLinkSet
Spider Monkey Panel v1.6.2-dev+7c0928bf ({0EBF6ABC-810E-4300-89B3-71E25503815A}): initialized in 2 ms

The small codes all crash foobar


buttons toolbar.js still crash
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-06-27 22:51:39
Thanks for the dumps, then no doubt the problem is Wine crashes whenever the file is missing.

Your previous installation had files mixed, so it crashed... but it was clearly not related at all to the scripts, but to any file not found. In theory all those examples should only crash the panel (like it does on Windows).

Glad you got it working, will send you clean files tomorrow :)
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2022-06-27 23:02:16
Cool  ;)

Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2022-06-30 09:02:18
I'm playing around with different options and found very interesting the concept of fooid, acoustic id, acousticbrainz and key wheel.

If I understand well, using them will make more accurate similar song search, autoplaylist, etc.

But I get a little bit lost.

I tag some files in foobar with the fingerprint tools (FooID and chromaprint) this lets me use FooID to match files, but the chromaprint options are still gray out. The menu create database is disabled, and I can't find how to generate the database.

Now the more confusing thing, the keys.

I install MusicBrainz Picard and activated the plugins AcousticBrainz(+ high and low levels), Key wheel converter.and acousticID
Also, I import the scripts from the resources' folder, with the remove one at last position.

This gave (in some files, not all) one pair of tag from AcousticBrainz (AB:GENRE,AB:MOOD), ACOUSTIC_ID
and a lot of tag from the wheel one (one KEY and a bunch of danceable, etc.)

And the question is....how I must use all this data?

I saw 3 mass tagger scripts about key, but I don't know what they mean, Neither what they are used for.

Some help may be needed   :P

Edit:

There is another way to get this data that not involve Picard? It has a different tag structure that the one I have in foobar and make a mess with my tagged files.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-06-30 09:32:23
First, there are readmes for allmost every tool at the config submenu. Also at the buttons bar menu :)

Quote
I'm playing around with different options and found very interesting the concept of fooid, acoustic id, acousticbrainz and key wheel.

If I understand well, using them will make more accurate similar song search, autoplaylist, etc.

But I get a little bit lost.

I tag some files in foobar with the fingerprint tools (FooID and chromaprint) this lets me use FooID to match files, but the chromaprint options are still gray out. The menu create database is disabled, and I can't find how to generate the database.

Yep FooID works but you can't use chromaprint scanner right now. I disabled it due to Foobar 32 bits ram restrictions, in my system with +70k tracks it crashes due to too much memory usage when reading the raw fingerprint tags.  I'm waiting for Foobar 64 bits or SMP implementing a method to read tags from files (like JSP does).

This is stated at the changelog:
https://github.com/regorxxx/Playlist-Tools-SMP/blob/main/CHANGELOG.md#300-beta7---2021-05-23

Fingerprinting is not used for playlist creation in any tool so it doesn't matter. And that's not the aim of fingerprinting.

Quote
Now the more confusing thing, the keys.

I install MusicBrainz Picard and activated the plugins AcousticBrainz(+ high and low levels), Key wheel converter.and acousticID
Also, I import the scripts from the resources' folder, with the remove one at last position.

This gave (in some files, not all) one pair of tag from AcousticBrainz (AB:GENRE,AB:MOOD), ACOUSTIC_ID
and a lot of tag from the wheel one (one KEY and a bunch of danceable, etc.)

And the question is....how I must use all this data?

I saw 3 mass tagger scripts about key, but I don't know what they mean, Neither what they are used for.

Some help may be needed   :P
The masstagger scripts are for tagging (?), converting keys to different formats, not sure what you want to do with them. There were people asking for them and I shared them, but they are not meant to be used if you don't need them. There are also UI presets, which have readmes and screenshots.

Check the gifs at github. Just uploaded them yesterday XD I think that may give you an idea.

Your questions are not specific enough. You have retrieve the tags, ok. But then you have many tools which use queries and similarity checks... you have to remap the tools to use your tags. Moods is checked as "MOOD" not "AB:MOOD". So you must either configure picard to write it as "MOOD", or use Foobar to rename it, or configure the tools to use other tags.

There is not a unique way to do it, so that's why I can't fully tell you what to do.

Also "Search similar by..." use them under the hood, so you don't have to do "something" to make them work. If you use them on queries, them it's up to you to configure the queries. There are tons of pre-defined examples in the menus, you can start with those or create your own.
Spoiler (click to show/hide)

Quote
Edit:

There is another way to get this data that not involve Picard? It has a different tag structure that the one I have in foobar and make a mess with my tagged files.
Can't help with that. You can configure Picard to no touch existing tags, but that's up to you.
Spoiler (click to show/hide)
You can retrieve tags with other software obviously. There are programs out there to retrieve BPM or Key tags. And even some users extract data from All Music or Spotify.

Remapping tags or renaming them is up to you. As already noted in the PMs, most tools can be configured to remap the tags used.

After reading the readmes for the tool you want to use, please let me know which one you want to use and your doubts.
(I fully understand there are so many things on these scripts... but tagging is the user's responsibility and can't help without specific questions. Feel free to keep asking, but I really need something more specific like... "How do I sort my playlist by key? I already have key tags named  as "xxx" with values "yyy")
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-06-30 09:54:04
Would it be "easier" if I explicitly show the tag used on query related tools OR if I add a new readme with the default tags used?

Maybe that helps. All the tools can be configured to use other tags anyway. Ant that's stated on the txt readmes.
(and the readme PDF with images and use-cases is WIP)

Spoiler (click to show/hide)
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2022-06-30 10:00:37
The chroma thing is disabled by default until 64 bit foobar so go with FooID.

And I can forbid of strange key because the script use mood and genre-styles. Prefect, I have genre-styles and mood could be remap from allmusic mood.

I have never used Picard before, and I don't know his peculiarities, but if the acoustic ID and keys are not needed I can continue using foobar for tagging.

A list of the tags used will be useful, also if they show up in the menus. I swear I read the pdf and some txt, but there's a lot....  :D

Thanks for your patience





Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-06-30 10:07:31
The chroma thing is disabled by default until 64 bit foobar so go with FooID.

And I can forbid of strange key because the script use mood and genre-styles. Prefect, I have genre-styles and mood could be remap from allmusic mood.

I have never used Picard before, and I don't know his peculiarities, but if the acoustic ID and keys are not needed I can continue using foobar for tagging.

A list of the tags used will be useful, also if they show up in the menus. I swear I read the pdf and some txt, but there's a lot....  :D

Thanks for your patience
Yep, you can remap genre, style and moods to use other tag names. Configuration submenu. And the actual tags are shown there, on the menus ;)

Query and Dynamic queries tools will need further tweaking, creating your own menu entries.

I even created presets for them at:
xxx-scripts\presets\Playlist Tools\all_music_last_fm

So yep, keep reading XD since I had in mind almost every use-case.

I may design an initial popup with the tag structure, tips or even to configure it.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-06-30 10:51:34
Code: [Select]
All the tools use this universal tag structure:

+-------------+----------------+-----------------------+-----------------+
| Description |    Tag name    | Tag values (examples) | Notes / Allowed |
+-------------+----------------+-----------------------+-----------------+
+-------------+----------------+-----------------------+-----------------+
| Main genres |      GENRE     |       Alt. Rock       |   Multivalue    |
+-------------+----------------+-----------------------+-----------------+
| Sub-genres  |      STYLE     |   80s Rock; Pop Rock  |   Multivalue    |
+-------------+----------------+-----------------------+-----------------+
| Moods       |      MOOD      |  Not acoustic; Catchy |   Multivalue    |
+-------------+----------------+-----------------------+-----------------+
| Themes      |      THEME     |  Reflection; Summer   |   Multivalue    |
+-------------+----------------+-----------------------+-----------------+
| Key (any    |                |                       | Open, Camelot   |
|   notation) |       KEY      |           Am          | or Standard key |
+-------------+----------------+-----------------------+-----------------+
| Beats   per |                |                       |                 |
|    Minute   |       BPM      |           95          |  Single value   |
+-------------+----------------+-----------------------+-----------------+
| Composers   |    COMPOSER    |      Jimi Hendrix     |   Multivalue    |
+-------------+----------------+-----------------------+-----------------+
|             |                |                       |  Preferred in   |
| Year        |      DATE      |          1964         |     year format |
+-------------+----------------+-----------------------+-----------------+
| Artists     |     ARTIST     |   Lauryn Hill; Sade   |   Multivalue    |
+-------------+----------------+-----------------------+-----------------+
| Track title |      TITLE     |       Amber glow      |  Single value   |
+-------------+----------------+-----------------------+-----------------+
| Featured    |                |                       |                 |
|     artists | INVOLVEDPEOPLE |    Natalia M. King    |   Multivalue    |
+-------------+----------------+-----------------------+-----------------+
| Rating      |     RATING     |           3           |  Plugin or Tag  |
+-------------+----------------+-----------------------+-----------------+

Rationale: It's not feasible to support arbitrary tag names when there are
a dozen of tools using their own. Also tag names should use standard names
and not proprietary names. Proprietary tags like "GENRE LAST.FM" are only
meant as intermediary tags which should be renamed, remapped or merged.

If you use other tag names then you have these options:
1. Rename your tags.
2. Clone your tags and use names at top.
3. Configure scripts to remap standard tags to your own tags.
4. Configure your tagging tools to output proper tag names.

--------------------------------------------------------------------------
Example:
--------------------------------------------------------------------------
I have used the BIO panel to tag my files, and they are all tagged with
things like: "ALBUM GENRE ALLMUSIC", "ALBUM GENRE LAST.FM",
"ALBUM THEME ALLMUSIC", ...

I also have my own "genre" tag named as "MY GENRE".

Finally I have retrieved keys for my tracks using Traktor and the tag is
written as "Initial Key".

(1) Is not possible for genres, since I intend to use all of them (3 tags).

(2) Would be possible, masstagger for ex. allows to merge different tags
into one new field. I could simply retag all my tracks this way with a new
tag name "GENRE" which contains the values of the other 3.

(3) Probably the best option. For ex. Playlist Tools or Search by Distance
already allow to remap any group of tags to GENRE, merging their values
and removing duplicates, without touching the files. I will have to look
for "Tag remapping" at the associated buttons in their config.

(4) Picard allows to use scripting to set tag names before writing tags to
files. This is obviously meant for these use-cases where you have different
sources for a tag meant to be the same (genre on All Music, Last Fm, ...)
and they should be merged or properly named. Same comment applies for other
tools. BIO may be configured too, for ex. "ALBUM THEME ALLMUSIC"
could be saved as just "THEME" if that's the only tag source used.

Hope that's clear enough. As noted, the key doesn't need to be converted to other notations.
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2022-06-30 11:36:06
Perfect. All clear now.

Yeah, the best option is remapping the tag in the script. The only tag that I don't have source for is the Key but with all the rest will be enough I guess.



Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-06-30 11:59:28
Great. As said, it's trivial to set picard to retrieve the key and leave any other tag untouched. KEY is not a tag usually available on free software so it's not like you have other options.
Also you may ask the MusicBrainz plugin's author to add support for additional tags if you don't want to use the native software ;)

Rewritten it and added more info.

This will be shown on first init.
Code: [Select]
All the tools use this universal tag structure:

+------------------------------------------------------------------------+
|                           TAGS   NOTATION                              |
+-------------+----------------+-----------------------+-----------------+
| Description |    Tag name    | Tag values (examples) | Notes / Allowed |
+-------------+----------------+-----------------------+-----------------+
+-------------+----------------+-----------------------+-----------------+
| Main genres |      GENRE     |       Alt. Rock       |   Multivalue    |
+-------------+----------------+-----------------------+-----------------+
| Sub-genres  |      STYLE     |   80s Rock; Pop Rock  |   Multivalue    |
+-------------+----------------+-----------------------+-----------------+
| Moods       |      MOOD      |  Not acoustic; Catchy |   Multivalue    |
+-------------+----------------+-----------------------+-----------------+
| Themes      |      THEME     |  Reflection; Summer   |   Multivalue    |
+-------------+----------------+-----------------------+-----------------+
| Key (any    |                |                       | Open, Camelot   |
|   notation) |       KEY      |           Am          | or Standard key |
+-------------+----------------+-----------------------+-----------------+
| Beats   per |                |                       |                 |
|    Minute   |       BPM      |           95          |  Single value   |
+-------------+----------------+-----------------------+-----------------+
| Composers   |    COMPOSER    |      Jimi Hendrix     |   Multivalue    |
+-------------+----------------+-----------------------+-----------------+
|             |                |                       |  Preferred in   |
| Year        |      DATE      |          1964         |     year format |
+-------------+----------------+-----------------------+-----------------+
| Artists     |     ARTIST     |   Lauryn Hill; Sade   |   Multivalue    |
+-------------+----------------+-----------------------+-----------------+
| Track title |      TITLE     |       Amber glow      |  Single value   |
+-------------+----------------+-----------------------+-----------------+
| Featured    |                |                       |                 |
|     artists | INVOLVEDPEOPLE |    Natalia M. King    |   Multivalue    |
+-------------+----------------+-----------------------+-----------------+
| Rating      |     RATING     |           3           |  Plugin or Tag  |
+-------------+----------------+-----------------------+-----------------+

Rationale: It's not feasible to support arbitrary tag names when there are
a dozen of tools using their own. Also tag names should use standard names
and not proprietary names. Proprietary tags like "GENRE LAST.FM" are only
meant as intermediary tags which should be renamed, remapped or merged.

If you use other tag names then you have these options:
1. Rename your tags.
2. Clone your tags and use names at top.
3. Configure scripts to remap standard tags to your own tags.
4. Configure your tagging tools to output proper tag names.

--------------------------------------------------------------------------
Example:
--------------------------------------------------------------------------
I have used the BIO panel to tag my files, and they are all tagged with
things like: "ALBUM GENRE ALLMUSIC", "ALBUM GENRE LAST.FM",
"ALBUM THEME ALLMUSIC", ...

I also have my own genre tag named as "MY GENRE".

Finally I have retrieved keys for my tracks using Traktor and the tag is
written as "INITIAL KEY".

- GENRE:
(1) Is not possible for genres, since I intend to use all of them (3 tags).

(2) Would be possible, Masstagger for ex. allows to merge different tags
into one new field. I could simply retag all my tracks this way with a new
tag name "GENRE" which contains the values of the other 3.

(3) Probably the best option. For ex. Playlist Tools or Search by Distance
already allow to remap any group of tags to GENRE, merging their values
and removing duplicates, without touching the files. I will have to look
for "Tag remapping" at the associated buttons in their config.

(4) Picard allows to use scripting to set tag names before writing tags to
files. This is obviously meant for these use-cases where you have different
sources for a tag meant to be the same (genre on All Music, Last Fm, ...)
and they should be merged or properly named. Same comment applies for other
tools. BIO may be configured too, for ex. "ALBUM THEME ALLMUSIC"
could be saved as just "THEME" if that's the only tag source used.

- KEY:
(1) "INITIALL KEY" may be renamed to "KEY" for all my files.

(2) Idem. Trivial to clone single tag as "Key".

(3) Idem. Remapping would allow to use the tag 'as is' without touching
the original files or rewriting all tags.

(4) It would be easier if from now on if I configure Traktor to write tag
as "KEY".

This will be added to the readme list:
Code: [Select]
Some additional notes for tags apply:

+--------------------------------------------------------+
|                 TAGS   TECHNICAL NOTES                 |
+------------+----------------------+--------------------+
|  Tag name  |       INTERNALS      |   Notes / Allowed  |
+------------+----------------------+--------------------+
+------------+----------------------+--------------------+
|            |                      |     Merged from    |
| STYLEGENRE | [...STYLE; ...GENRE] |      standard tags |
+------------+----------------------+--------------------+
|     KEY    |     Am | 8A | 1m     |   All are allowed  |
+------------+----------------------+--------------------+
|            |                      |   Used by default  |
|    DATE    |     $YEAR(%DATE%)    |       with this TF |
+------------+----------------------+--------------------+

- STYLEGENRE: is virtual tag used for internal use, retrieved from
STYLE and GENRE standard tags. See "Tagging requisites" readme.

- KEY: may use Camelot notation (8A), Open Key notation (1m) or
Standard notation (Am). Programs like Picard offer standard
notation by default. There is no need to change the format in any
of the tools, since all three are supported (ex. harmonic mixing).

- DATE: as noted on "Tagging requisites" readme, year format is
preferred. In any case, at most places the DATE tag is rewrapped
to use the TF to retrieve only the year part. Usage of a different
format is at your own risk.
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2022-06-30 12:11:25
This will be very useful for new users.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-06-30 12:19:51
Let me know if more things need clarification,  I will try to revise the entire UI to make sure all is clear.

Showing the tag on queries menus is not feasible (too many), but the query is always shown on the console (and thus the tag used).
The tags are already shown at other tools. So that's discarded.

Also moved all tag remapping into the same global submenu (i.e. some tools may have its own submenu for it, but it will now appear at both places).
Spoiler (click to show/hide)

Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2022-06-30 12:27:56
The configuration menu is a good place. Is the first thing that anybody search when first time use something
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-06-30 12:51:51
It was already at the configuration menu though   ::)  (I have simply duplicated it at 2 places within the configuration menu)
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2022-06-30 13:08:17
In the search by distance, right?

I didn't see it,  I saw the one in the main menu, but I miss that.

Nothing is foolproof enough when you're fool enough xD

Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-06-30 23:13:58
Well... definitely it's not the same to look for something when you have been working on it for months than being totally new to it. So even if it seems "obvious" to me where things are located or what they do, it helps to see other experiences to improve the UI.
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2022-07-01 11:09:49
Note to Linux users:

If you need a way to get the KEY tag you can use Mixxx.

It can scan and write for Key (in various formats), BMP and replaygain and is very fast.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-07-01 11:21:28
Note to Linux users:

If you need a way to get the KEY tag you can use Mixxx.

It can scan and write for Key (in various formats), BMP and replaygain and is very fast.
Thanks :) will also add a readme to list compatible tag sources.

EDIT: Could you confirm the tag name at output?
Key -> KEY?
BPM -> BPM?

Code: [Select]
Tags may be sourced from:

+--------------------------------------------------------------------+
|                           TAGS   SOURCES                           |
+----------+---------------------------------------------------------+
| Tag name |                 Software (UNIX/Windows)                 |
+----------+---------------------------------------------------------+
+----------+---------------------------------------------------------+
|          | Picard - AcousticBrainz Tags   plugin                   |
|          |      https://picard.musicbrainz.org/plugins/            |
|    KEY   +---------------------------------------------------------+
|          | Mixx                                                    |
|          |      https://mixxx.org                                  |
+----------+---------------------------------------------------------+
|          | Picard - AcousticBrainz Tags   plugin                   |
|          |      https://picard.musicbrainz.org/plugins/            |
|          +---------------------------------------------------------+
|    BPM   | Mixx                                                    |
|          |      https://mixxx.org                                  |
|          +---------------------------------------------------------+
|          | Foobar -   Foo_BPM Plugin                               |
|          |      https://www.foobar2000.org/components/view/foo_bpm |
+----------+---------------------------------------------------------+
|          | Picard - AcousticBrainz Tags   plugin                   |
|          |      https://picard.musicbrainz.org/plugins/            |
|   MOOD   +---------------------------------------------------------+
|          | Foobar -   Biography script (*)                         |
|          |      https://github.com/Wil-B/Biography                 |
+----------+---------------------------------------------------------+
|          | Foobar - Biography script   (*)                         |
|   THEME  |      https://github.com/Wil-B/Biography                 |
+----------+---------------------------------------------------------+
|          | Picard                                                  |
| COMPOSER |      https://picard.musicbrainz.org/downloads/          |
+----------+---------------------------------------------------------+

(*) May require additional configuration or steps to either set a
compatible tag name or merge values. See 'Tagging requisites' readme.
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2022-07-01 12:37:47
BPM=BPM
KEY=INITIALKEY in flac and INITIAL KEY in mp3
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-07-01 12:45:24
BPM=BPM
KEY=INITIALKEY in flac and INITIAL KEY in mp3
Thanks. Added the note to Mixx too for key tag.
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2022-07-01 13:02:47
I added some tags in the search by distance tag remapping for genre, style, key and mood. I can't see the featuring artists to add my featuring and vocals tags. Neither theme to add allmusic theme tag



Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-07-01 16:58:41
? That tool doesn't use theme or featuring artist by default, not sure what are you talking about. (and they would be useless by default anyway)

Neither the menus show those tags to remap, nor the readme states nothing about them.

There are custom tags you may set to use those tags, but that's up to you. See the remap menu.

Also the tool is meant to be configured to use useful tags by default, not just mixing all for the sake of adding them.
i.e. a theme tag is meant to group different tracks from different genres for an specific situation, there is no way to use that for similarity since the result is already given by the theme  ::)

Moods are an entirely different thing. Acoustic or Agresive tracks are not associated to an specific situation, so they are useful to find similar tracks. Also every preset of Search by distance is meant to output different playlists; no preset uses all the tags, that would be useless.

If you want to find similar tracks by theme or featured artists there are several query tools for that on the scripts. There are different tools for different aims.

You can see the weight of each tag on the search by distance custom button for ex:
Spoiler (click to show/hide)
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2022-07-01 19:43:34
No ,no. I wasn't talking about mixxx. In the script.

But I'm blind, the mood is the tag mapping submenu.

Anyway I discover the customizable button.

The button didn't show the tag mapping I did in playlist tools.

Is the tag mapping of playlist tools used for the search by distance preconfigured buttons and the customizable button options only for this specific button? And another custom button could have total different options, right?

Theme and featuring was asked because in the tag table you post there were both, assuming that they will be used in others tools, I want to remap theme to my allmusic theme tag and add featuring tag to involved people, because I use both and both have a similar use. I know I can copy them with masstager but I have near 80.000 files, so a remap will save me a lot of time.

For now, I'm still tagging my library with bpm and key and playing around with search by distance in a subset of the library, waiting for the tagging end.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-07-01 19:56:38
No ,no. I wasn't talking about mixxx. In the script.

But I'm blind, the mood is the tag mapping submenu.

Anyway I discover the customizable button.

The button didn't show the tag mapping I did in playlist tools.

Is the tag mapping of playlist tools used for the search by distance preconfigured buttons and the customizable button options only for this specific button? And another custom button could have total different options, right?
Uhm I was not talking about mixx. I think there is a communication problem here XD

Every button has its own configuration, right. You can have multiple copies of the same button, configured different. Look at their tooltip.

It's done on purpose, yep. The only exception is the "Playlist Tools" button which can only be added once. If you right click on the bar you will see for some buttons there is a text "(1 allowed)". So even the UI shows that info :)

If a button has no config menu, then it's because I designed that way. You can still use the properties panel, but... if you want configurable buttons, then use the customizable version. Search by distance, for ex. has 4 "hardcoded" versions ready to use. If you want tag remapping or tweaking the values...then use the customizable one and add multiple copies.

And please, read the readmes ;) I already spent the time those basic things there
Readmes...\Toolbar:
Code: [Select]
Toolbar panel allows to fully configure sub-modules loaded as buttons.
Shift + L. Click to configure the toolbar:
- Add new buttons
- Remove
- Change order
- Restore defaults
- Change background color

The button list is automatically built from this path: '.\buttons\*.js'

Some buttons can be 'duplicated'. i.e. having multiple instances with
different settings. Whenever that's not possible, menu entry will be
greyed if there is already copy of the button on the toolbar.

Finally, some buttons may require another one to be loaded first... it's
also indicated in the related entry if the requirement is not met.
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2022-07-01 20:06:48
XD
We are lost in translation
XD
I'm starting to get it
The test that I did this morning with some files already tagged with all necessary tag were very good. The result playlists were very accurate with the song selected. I can wait to have all the library scanned.
It is a cool way to make a listening playlist, almost like a personal DJ.
Hard to learn at the beginning, but worth the effort.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-07-01 22:13:07
XD
We are lost in translation
XD
I'm starting to get it
The test that I did this morning with some files already tagged with all necessary tag were very good. The result playlists were very accurate with the song selected. I can wait to have all the library scanned.
It is a cool way to make a listening playlist, almost like a personal DJ.
Hard to learn at the beginning, but worth the effort.

Yep. I'm sorry but that's the design philosophy, do it yourself. It's stated at multiple places hahahaha

If you tag properly the library and fine tune a bit the buttons, you may easily create infinite playlists according to your tastes with your own tracks (no the ones considered to be "popular").

If someone wants "click and done", there it is Spotify or Find n' play script, based on internet charts and popularity. I strongly dislike that approach since:
1. It requires permanent internet connection to play music.
2. It's based on user's listening. And things with more listens are shown more, so they get more listens, ad infinitum...

Personally I listen to more music than English-based music or music with an eurocentric focus. And all those tools fall short as soon as you listen to something "not popular enough", so I prefer tools based on the actual musical content without a bias. I find extremely interesting to create a blues playlist where Hill Country Blues (Otis Taylor) can play nicely along Desert Blues (Ali Farka Touré), even if both come from totally different countries and cultures. But some of their music is actually similar if you consider their roots and how they sound. That's totally lost with the popularity/rating approach.

Spoiler (click to show/hide)
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2022-07-01 22:49:35
Not a complaint, is what is it. Hard to learn But quite useful.

I need to make a warning about mixxx.

Didn't support the foobar multi value tags. In the first run I didn't notice because was made in a folder with downloaded files without correct tags. But in the next run in a full tagged folder it destroys all multi value tag (genre, artist, composer,etc..) of every tag managed by the program.

Fortunately, I make regular backups, but this is a serious problem. To make the problem worst, it didn't replace the '; ' with a ', ' or something similar. It joins the values with a space, making almost impossible to recover tags like artist and composer.

It is a pity, the results of key and bpm were good and fast, but this is a no no.

If anybody knows any software to get KEYs in linux .....

The others tools I find were so old and didn't even compile.



Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-07-02 12:52:59
As already noted, picard works fine in any SO. Will remove mixx from the readmes.

You may also use this to get key and BPM:
https://mtg.github.io/essentia-labs/news/2015/12/22/static-binaries-for-extractors/
Code: [Select]
streaming_extractor_music.exe file.flac out.txt
Spoiler (click to show/hide)

Extracting the tag and tagging is up to you, but doable with scripts on batch.

Or KeyFinder
https://github.com/ibsh/is_KeyFinder

Code: [Select]
Tags may be sourced from:

+--------------------------------------------------------------------+
|                           TAGS   SOURCES                           |
+----------+---------------------------------------------------------+
| Tag name |                 Software (UNIX/Windows)                 |
+----------+---------------------------------------------------------+
+----------+---------------------------------------------------------+
|          | Picard - AcousticBrainz Tags   plugin                   |
|          |      https://picard.musicbrainz.org/plugins/            |
|    KEY   +---------------------------------------------------------+
|          | KeyFinder   (*)                                         |
|          |      https://github.com/ibsh/is_KeyFinder               |
+----------+---------------------------------------------------------+
|          | Picard - AcousticBrainz Tags   plugin                   |
|          |      https://picard.musicbrainz.org/plugins/            |
|          +---------------------------------------------------------+
|    BPM   | KeyFinder   (*)                                         |
|          |      https://github.com/ibsh/is_KeyFinder               |
|          +---------------------------------------------------------+
|          | Foobar -   Foo_BPM Plugin                               |
|          |      https://www.foobar2000.org/components/view/foo_bpm |
+----------+---------------------------------------------------------+
|          | Picard - AcousticBrainz Tags   plugin                   |
|          |      https://picard.musicbrainz.org/plugins/            |
|   MOOD   +---------------------------------------------------------+
|          | Foobar -   Biography script (*)                         |
|          |      https://github.com/Wil-B/Biography                 |
+----------+---------------------------------------------------------+
|          | Foobar - Biography script   (*)                         |
|   THEME  |      https://github.com/Wil-B/Biography                 |
+----------+---------------------------------------------------------+
|          | Picard                                                  |
| COMPOSER |      https://picard.musicbrainz.org/downloads/          |
+----------+---------------------------------------------------------+

(*) May require additional configuration or steps to either set a
compatible tag name or merge values. See 'Tagging requisites' readme.

NOTES AND WARNINGS:

- Mixx: https://mixxx.org
Provides KEY tags, but will flatten all multivalue tags with spaces,
making impossible to undone the tagging. Issue has been unresolved for
years.

- Essentia: https://essentia.upf.edu/download.html
See Precompiled extractor binaries (Linux, OSX, Win).
Allow to extrack KEY and BPM tags, but output to a txt file. Could be
used with scripting for batch processing:
streaming_extractor_music.exe file.flac out.txt
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2022-07-02 21:55:22
As already noted, picard works fine in any SO. Will remove mixx from the readmes.

Yes it works, and I found out how to avoid overwriting the tags, but going folder to folder is a titanic task with over 70,000 files.
Maybe it can scan without going to the process of identify the album, but I didn't find out how

You may also use this to get key and BPM:
https://mtg.github.io/essentia-labs/news/2015/12/22/static-binaries-for-extractors/
Code: [Select]
streaming_extractor_music.exe file.flac out.txt
Spoiler (click to show/hide)

Extracting the tag and tagging is up to you, but doable with scripts on batch.

Or KeyFinder
https://github.com/ibsh/is_KeyFinder

I'll already try Essentia and keyfinder, along others similar. Some of they need an old ffmpeg library to compile (not present in recent versions).
Some old binaries (linux and windows) works, but going file to file with my library is even worse than release by release. The process to scripting the thing to my need is out of my knowledge.

In the GitHub of mixx there is a reference to fix the problem with multi value and a Pull requests to include the fix in next version, but I think the Pull requests is to prepare the code to an actual fix, so it could be a loooong time until the problem was fixed. (if it is at all)

My major problem is the size of the library to tag and the fact that is already tagged and organized. To new files, there is no problem , I need to retag them anyway, but losing the work of years.....

I thought out  a dirty solution at my scope.
Doing a $meta_sep(multivalue_camp,'++++') in the tags that use mixxx, scan the files and before that split it out again using ++++ as separator. It will be a long time.... But in lack of a better solution seems to be the less painful approach, until a better idea of course.



 

Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-07-02 22:27:37
Well considering AcousticBrainz will shutdown this year, at some point I had to find replacements for BPM/key for myself.

So I have implemented key detection within Foobar using Essentia (see above). Along the other tagging tools. Will do the same for BPM. Just uploaded it to github (no release, just clone the repository).

Some unix bugs are fixed (in the current state of the repository), others must be fixed in a new version of SMP. Can't do anything about it. Unix users should backup the xxx-scripts folder first, in case something goes wrong. Will not be able to provide support for 20 days. If updating, please also update all my other scripts with current files (clone repository).
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2022-07-02 22:39:35
Well considering AcousticBrainz will shutdown this year, at some point I had to find replacements for BPM/key for myself.

So I have implemented key detection within Foobar using Essentia (see above). Along the other tagging tools. Will do the same for BPM. Just uploaded it to github (no release, just clone the repository).

Some unix bugs are fixed (in the current state of the repository), others must be fixed in a new version of SMP. So can't do anything about it. Unix users should backup the xxx-scripts folder first, in case something goes wrong. Will not be able to provide support for 20 days.

Ah, Picard gets them from AcousticBrainz, that is why it needs to find the release first.

Cool, It will save me a lot of time of retaging, with a large library every operation takes forever. And foobar trend to crash with numerous files processed at once (maybe the memory limit of 32 bits) so it must be done it batch of around 1000 files at a time.

I hope the break will be a good vacation time.

Enjoy!
   

 

Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-07-02 23:01:50
Well considering AcousticBrainz will shutdown this year, at some point I had to find replacements for BPM/key for myself.

So I have implemented key detection within Foobar using Essentia (see above). Along the other tagging tools. Will do the same for BPM. Just uploaded it to github (no release, just clone the repository).

Some unix bugs are fixed (in the current state of the repository), others must be fixed in a new version of SMP. So can't do anything about it. Unix users should backup the xxx-scripts folder first, in case something goes wrong. Will not be able to provide support for 20 days.

Ah, Picard gets them from AcousticBrainz, that is why it needs to find the release first.

Cool, It will save me a lot of time of retaging, with a large library every operation takes forever. And foobar trend to crash with numerous files processed at once (maybe the memory limit of 32 bits) so it must be done it batch of around 1000 files at a time.

I hope the break will be a good vacation time.

Enjoy!
   
Yep. I have written a new ticket at picard to essentially replace AcousticBrainz (which will no work at 2023) with offline processing using Essentia (the backend of AcousticBrainz).

https://tickets.metabrainz.org/projects/PICARD/issues/PICARD-2512?filter=allopenissues

So if it gets approved (feel free to vote it), will be on Picard too. No changes for the final user, but at least data will be available forever and requires no release identification.
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2022-07-02 23:14:57

Yep. I have written a new ticket at picard to essentially replace AcousticBrainz (which will no work at 2023) with offline processing using Essentia (the backend of AcousticBrainz).

https://tickets.metabrainz.org/projects/PICARD/issues/PICARD-2512?filter=allopenissues

So if it gets approved (feel free to vote it), will be on Picard too. No changes for the final user, but at least data will be available forever and requires no release identification.

Seems that I must create a GitHub account  ;D

About the new set, Scripts crashes foobar (world map work, but it always do). I previously delete all old panels and the js_data folder related info.

Maybe I need some file to be present and if not trigger the SMP bug and crash the program itself?
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2022-07-03 09:17:07
I forgot to test the playlist manager. I delete the panel when it starts crashing in pm tests.

Works fine.

The buttons toolbar and playlist tools not
For curiosity, I tried to load the test1.js (toolbar buttons) that you upload in previous posts. This file load the toolbar. I can even add some buttons, until I tried any from playlist tools, that crashes the panel but not foobar. Seems logic that things not work well because is from another release, but it loads. Maybe this could give you some clue.


Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2022-07-03 11:39:01
More test. With your last github files, no old files.

Using the _switchPaths.bat

The 32bit test didn't work in this .bat. I must copy the fart_32.exe to fart.exe to run the .bat.

After this the buttons_toolbar.js didn't crash foobar anymore, but crashes the panel. The readme popups are shown

buttons_toolbar::
Code: [Select]
cyclicTagsDescriptor - File loaded: Z:\home\xxxxx\bin\foobar2000\profile\scripts\SMP\xxx-scripts\helpers\dyngenre_map_xxx.js
Search Same By Button loaded.
Remove Duplicates Button loaded.
Search by Distance Buttons loaded.
User's music_graph_descriptors - File loaded: Z:\home\xxxxx\bin\foobar2000\profile\scripts\SMP\xxx-scripts\helpers\music_graph_descriptors_xxx_user.js
User's music_graph_descriptors has been loaded but it contains no changes... using only default one.
Search by Distance (CUSTOM) Buttons loaded.
Playlist Tools Menu Button loaded.
Playlist Tools: creating default settings...
Playlist Tools: updating settings...
foo_spider_monkey_panel:
Error: Spider Monkey Panel v1.6.2-dev+7c0928bf (Playlist Tools: Buttons Bar: Playlist Tools: Buttons Bar v3.0.0-beta8 by XXX)
include failed:
deleteMainMenuDynamic is not defined

File: playlist_tools_menu.js
Line: 4885, Column: 2
Stack trace:
  createMainMenuDynamic@playlist_tools_menu.js:4885:2
  updateMenuProperties/<@playlist_tools_menu.js:4754:8
  updateMenuProperties@playlist_tools_menu.js:4752:11
  @buttons_playlist_tools.js:39:2
  @buttons_toolbar.js:112:4

buttons_playlist_tools:
Code: [Select]
User's music_graph_descriptors - File loaded: Z:\home\xxxxx\bin\foobar2000\profile\scripts\SMP\xxx-scripts\helpers\music_graph_descriptors_xxx_user.js
User's music_graph_descriptors has been loaded but it contains no changes... using only default one.
Playlist Tools: creating default settings...
Playlist Tools: updating settings...
foo_spider_monkey_panel:
Error: Spider Monkey Panel v1.6.2-dev+7c0928bf (Playlist Tools: Button: Playlist Tools: Button v3.0.0-beta8 by XXX)
deleteMainMenuDynamic is not defined

File: playlist_tools_menu.js
Line: 4885, Column: 2
Stack trace:
  createMainMenuDynamic@playlist_tools_menu.js:4885:2
  updateMenuProperties/<@playlist_tools_menu.js:4754:8
  updateMenuProperties@playlist_tools_menu.js:4752:11
  @buttons_playlist_tools.js:39:2

Direct crash, no readme popup


Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-07-03 23:34:02
More test. With your last github files, no old files.

Using the _switchPaths.bat

The 32bit test didn't work in this .bat. I must copy the fart_32.exe to fart.exe to run the .bat.

After this the buttons_toolbar.js didn't crash foobar anymore, but crashes the panel. The readme popups are shown

buttons_toolbar::
Code: [Select]
cyclicTagsDescriptor - File loaded: Z:\home\xxxxx\bin\foobar2000\profile\scripts\SMP\xxx-scripts\helpers\dyngenre_map_xxx.js
Search Same By Button loaded.
Remove Duplicates Button loaded.
Search by Distance Buttons loaded.
User's music_graph_descriptors - File loaded: Z:\home\xxxxx\bin\foobar2000\profile\scripts\SMP\xxx-scripts\helpers\music_graph_descriptors_xxx_user.js
User's music_graph_descriptors has been loaded but it contains no changes... using only default one.
Search by Distance (CUSTOM) Buttons loaded.
Playlist Tools Menu Button loaded.
Playlist Tools: creating default settings...
Playlist Tools: updating settings...
foo_spider_monkey_panel:
Error: Spider Monkey Panel v1.6.2-dev+7c0928bf (Playlist Tools: Buttons Bar: Playlist Tools: Buttons Bar v3.0.0-beta8 by XXX)
include failed:
deleteMainMenuDynamic is not defined

File: playlist_tools_menu.js
Line: 4885, Column: 2
Stack trace:
  createMainMenuDynamic@playlist_tools_menu.js:4885:2
  updateMenuProperties/<@playlist_tools_menu.js:4754:8
  updateMenuProperties@playlist_tools_menu.js:4752:11
  @buttons_playlist_tools.js:39:2
  @buttons_toolbar.js:112:4

buttons_playlist_tools:
Code: [Select]
User's music_graph_descriptors - File loaded: Z:\home\xxxxx\bin\foobar2000\profile\scripts\SMP\xxx-scripts\helpers\music_graph_descriptors_xxx_user.js
User's music_graph_descriptors has been loaded but it contains no changes... using only default one.
Playlist Tools: creating default settings...
Playlist Tools: updating settings...
foo_spider_monkey_panel:
Error: Spider Monkey Panel v1.6.2-dev+7c0928bf (Playlist Tools: Button: Playlist Tools: Button v3.0.0-beta8 by XXX)
deleteMainMenuDynamic is not defined

File: playlist_tools_menu.js
Line: 4885, Column: 2
Stack trace:
  createMainMenuDynamic@playlist_tools_menu.js:4885:2
  updateMenuProperties/<@playlist_tools_menu.js:4754:8
  updateMenuProperties@playlist_tools_menu.js:4752:11
  @buttons_playlist_tools.js:39:2

Direct crash, no readme popup




My bad because I updated it without testing from repository...

I missed to upload a helper file so it crashes (but works fine on my side since I have all files).
Also fixed the bat file (I reversed the architecture identification, so it used the x64 bit binary on x86 systems ::) ) .
Updated github with both changes. So... redownload all scripts (to not mix absolute and relative paths) and perform the same steps you did before to make it work (no need to change fart anymore though).

The other problems... SMP bugs, you know. If relative paths don't work, then that's an old bug since years... can not do anything about it and @TheQwertiest has not been able to fix it yet. Will report it again after my trip.
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2022-07-04 07:38:52
Bang!
(https://i.imgur.com/LBlvtVx.png)

Perfect.

The script works, no errors of any kind in installation.

I used the external taggers. Key, FooID, BPM and ReplayGain working.

I add and remove several buttons without problem.

Now is time to tune up my tags.

Bpm, fooid and key could  take time but are covered (Cool external tools additions)

After finishing that comes the big genre/style restructuration.

I read the search by distance info and the dyngenre_map_xxx.js with the clusters, supergroup, etc.

Now makes sense to me what you said about structure, looks very cool how its group and makes relations and exclusions between genres and styles.

A few questions about the different kinds of search.

WEIGHT: -> Score
In the description, there is no reference to any specific sets of genres, styles tags to match. It takes my genre and style as is or use the music_graph_descriptors?

GRAPH: -> Score + Distance
How is taken the data to compare with music_graph_descriptors?
I mean, it joins my genre+style and then makes its internal magic or my genre tag will compare to music_graph genres and my style tag with music_graph styles separately?

DYNGENRE: -> Score
Only match genre/style again dyngenre_map_xxx?

In general

I assume that all method makes use of mood, theme, key and bpm.

Makes sense to add here FooId as a custom?

Hope that it use the merge and match method. With only minimal adjust (that I can do in the user file) my previous tags will be ready to rock.

If it is done separately, it will involve more work. My current structure (discogs similar) have few genres and too much generic, is almost  entirely dependent on styles.



Excellent work man.

I'm just beginning to understand the internal dynamics but the deeper I dig, the more useful it seems.

An of course BIG thanks for your support and especially for your patience

Have a lovely holidays

 8)
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-07-22 11:33:26
WEIGHT: -> Score
In the description, there is no reference to any specific sets of genres, styles tags to match. It takes my genre and style as is or use the music_graph_descriptors?

Code: [Select]
WEIGHT presets work by matching genre\style tags (Rock != Hard Rock),
without using complex logics. Therefore they work with arbitrary tag
values.

'As is'. Just simple matching. Works with any tag.

GRAPH: -> Score + Distance
How is taken the data to compare with music_graph_descriptors?
I mean, it joins my genre+style and then makes its internal magic or my genre tag will compare to music_graph genres and my style tag with music_graph styles separately?
Merged. Then matched against the descriptors with complex logic. Simple matching is also taken into account (see previous method) for not found styles/genres.

DYNGENRE: -> Score
Only match genre/style again dyngenre_map_xxx?

Yep. I may add more values there. It's a simplification of the graph method (much faster).

In general

I assume that all method makes use of mood, theme, key and bpm.

Makes sense to add here FooId as a custom?
Yes. How methods and tags are used is done according to your configuration.

No, fingerprinting is useless for similarity comparison. It's only useful to find duplicates.


Hope that it use the merge and match method. With only minimal adjust (that I can do in the user file) my previous tags will be ready to rock.
Yep, [configured] tags are merged and matched. Note you must tag your entire library in a consistent way though. Don't use Discogs for some and MusicBrainz for others, since that will give mixed results. Stick to one method for all tracks, it will work fine.
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2022-07-23 21:01:11
Hi @regor, hope you enjoy your vacations!
Thanks for the answers.
I'm interested in the Graph (score+distance).
In order to make the search more accurate, is important to maintain consistence in tags. Not only internal, also with the values in music_graphs.
My actual tags have the first, but for the tests I did seems to present some inconsistencies with the music_graph ones.

For example a NIN album. I have a structure similar to discogs.
Genre: Electronic, Rock
Style: alternative Rock, Industrial Rock.

If i understand the match, the electronic genre will match "['Electronic Music_supercluster',electronic']],"  and this is "['Electronic Music_supercluster',['Breakbeat Dance_cluster','Four-to-the-floor Dance_cluster','Downtempo_cluster']]" and is an anti influence "['Electronic Music_supercluster',['Metal_supergenre','Classic Rock XL','Punk Rock_supergenre','Country_supergenre','Blues_supergenre','Jazz_supergenre']]" ,  for potential similar groups for industrial and alternative rock.

So in this scenario the electronic genre tag is misleading the results for an artist that could travel into industrial and alternative, introducing dance elements and negating the link to rock group and metal.

So my genre tag is making more bad than good for search by distance.

As I understand the structure I need to aim to super_genres and let the component do the clusters and super_cluster group.

So genre:industrial style:industrial rock, alternative rock would be the right choice?

Same for other cases as genre:electronic style:House, chicago house. Genre:House Style: chicago house will be the way to go?
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-07-24 00:24:37
So genre:industrial style:industrial rock, alternative rock would be the right choice?

Same for other cases as genre:electronic style:House, chicago house. Genre:House Style: chicago house will be the way to go?
genre:electronic style:House, chicago house.
Genre:House Style: chicago house

Both are equivalent (there is no practical difference between styles and genres, they are just for hierarchy in library viewers). Although I would not tag something as house if it's also Chicago House (unless it's really relevant).

About the rest, I don't see it as a problem although I get your point.

You can always find an artist in a genre/style/cluster which may be related to another group from another genre/style which is also an "anti-influence", but that doesn't invalidate the code logic or the tag system you use.

I mean... obviously there are cases, like NIN, where you can argue they may be similar to Metal or alt. rock for ex. BUT
1. Tracks are meant to be individually tagged. If you tag all tracks from an album/artist with the same genre/style then obviously that's not the real deal. Mass tagging systems which arbitrarily assign a genre to an artist give wrong results. Not all tracks from Aerosmith are classic rock, neither Frank Sinatra did only swing.
2. If you stick to an arbitrary mass tagging system (discogs), the results are consistent with that system. Garbage in, garbage out.
3. Electronic music is still contrary to Country for ex. In a general sense, no matter how many particular counterexamples you give. It is simply a rule saying "Country is usually not similar to electronic music". Obviously there are artists which surely mix  country and electronic.
4. GRAPH method clearly imposes a particular tagging ecosystem (specific genre/styles, tracks tagged individually, ....), and there is no way to bypass it. The more curated the tags are, the better the results. SCORE or DYNGENRE method may give better results for non consistent tagged libraries.
5. GRAPH requisites are clearly stated everywhere though, and the tagging system is shown in "Draw Graph.html" file in case someone doesn't want to dive into the js files. There may be cases where an user doesn't agree with my pov, that's fine, but at least the system is clearly documented and shown in case anyone wants to get the best results. In any case "music_graph_descriptors_xxx_user.js" may be freely edited to add your own tags, anti-influences, etc.

I see it in a different way. You may have an Electronic, Country track. And both genres may be "anti-influences", but that may be right. The code will show first tracks with both genres, then tracks with only one of them. And that's what anyone would naturally expect. If I have a country electronic track, I don't expect most country tracks being similar to it, that's what "anti-influence" aims for.

For NIN in particular, there is an Electro-industrial estyle btw. For ex. their 94's album:
X
I would not say none of those tracks are alt. rock, and only some of them are industrial rock.

Now if you happen to have a lot of industrial/electronic tracks and they are not shown as similar tracks then... either you are not configuring the parameters right, or you are not using the right genre/styles (clearly electronic + industrial is = electro-Industrial) or you need an additional "influence" parameter. Only in the last case you may add your own parameters to the user file (see the readmes) or I may consider adding it.

For ex. lets say you note electro-Industrial should be linked as "origin/derivate" to ambient industrial. If that was the case, I could add it. (not a real example)
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-07-24 00:39:17
https://www.discogs.com/release/1022210-Aerosmith-Aerosmith
Released:   Jan 1973
Genre:   Rock
Style:   Blues Rock, Classic Rock

https://www.discogs.com/release/4022434-Aerosmith-Music-From-Another-Dimension
Genre:   Rock
Style:   Classic Rock, Hard Rock
Year:   2012

Speaking about discogs, for ex. according to this those 2 albums should be pretty similar XD I don't think so, no way the 2012 album is a classic rock album.... (neither all tracks have the same style, nor they are hard rock). There are also date considerations but those are taken already into account. Applying graph method to "Discogs tagged" libraries give results as good as the tagging system, i.e. not so good.

You may have to consider time spent tagging vs usefulness of tags. Fast tagging methods have their own weaknesses. Just stick with whatever works for u, sometimes good enough is good enough... (and obviously if you improve your tags manually fixing them, the results will be better).
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2022-07-24 01:48:18
Maybe the examples gives a wrong impression of the intention of my question.
My problem is that maybe my structure is too generic in the genre field and it gives me mixed results when doing graph searches.
I tried to explain.
I used genre as a great placeholder, and I have very little list of genres. electronic, classical,rock, pop, soul, funk, metal, hip-hop... and a few more for specific things as soundtrack, child music....
The rest goes to the style tag.
This is useful for facets use, but when I was trying the search by distance I noticed that it is leading to a lot of misleading results.
Not only with electronic, also with rock and others, because in my structure the genre tag is more a generic placeholder (to filter more easily in facets) than a real genre tag.
The real genre definition is made with the style tag.
In summary, under my electronic tag there are from classical oriented music (like Peter Broderick) to extreme metal music.
Using facets is easy to navigate, but when I'm using the search by distance I saw that it is not too optimal.
My genre tag is too generic and that the search includes a lot of misplaced elements from unrelated styles that are linked by my generic placeholder tag.

I did some test remaping the genre and style component tags to my style only and the results was a bit better but this leads to a new problem, not all files have a style, some are simply rock, reggea, hip-hop...
So I was thinking that I could redo my genre tag system to something less generic. Eliminating the generic placeholder (electric, rock, etc) and elevating in the hierarchy things like classic rock, hard rock, house, to the first category (genre)
And in order to make them more graph friendly I would like to know if using the equivalents in style_supergenre as my genre tag could improve the situation..
I'm not trying to make the question about the accuracy of genres and style definitions. (subjetive by nature), I'm only trying to make my structure more suitable to use the graph search.
Yeah the tag from online services are sometime a bit off (with all services, the pop/rock tag from allmusic is abominable) but my tags are not a copy or any of them. The structure is similar to discogs(few genres with generic meaning and styles to define differences) but the values are hand wrote.


For controversial reason only :P
industrial+electronic is not equal electro-industrial.
Front Line Assembly and Esplendor Geométrico are not a thing that must be in the same similar songs tracks list.
But jokes aside, that was not my concern.

For example.
I made a search distance with a Front Line Assembly song (genre:electronic style:electro-industrial)
Mostly are good results, covenat, kmfdm, die krupps ministry,... but it gives me also some weird ones like zappa (an album that have electronic, concrete music influences), steve reich (electronic, minimalism), Aphex Twin (IDM, electronica).
So the problem seems to be the generic electronic genre tag

Title: Re: Playlist-Tools-SMP
Post by: mjm716 on 2022-07-24 04:35:27

For NIN in particular, there is an Electro-industrial estyle btw. For ex. their 94's album:
[attach type=thumb]22846[/attach]

A lot of useful info in this discussion by you both.

Regarding the image above - how did you tag those? manually or is there a mass tagger for track level genres? 


Bang!
(https://i.imgur.com/LBlvtVx.png)

I really like what you have going on there!
However does clicking 'style/artist genres/album genres' display selection data somewhere? (it's odd as ALL style/artist genres is selected but only Bricolage displays)
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2022-07-24 05:14:16

For NIN in particular, there is an Electro-industrial estyle btw. For ex. their 94's album:
[attach type=thumb]22846[/attach]

A lot of useful info in this discussion by you both.

Regarding the image above - how did you tag those? manually or is there a mass tagger for track level genres? 


Bang!
(https://i.imgur.com/LBlvtVx.png)

I really like what you have going on there!
However does clicking 'style/artist genres/album genres' display selection data somewhere? (it's odd as ALL style/artist genres is selected but only Bricolage displays)

The facets component is in playlist mode, so only show info from the select playlist.
The playlist is generated by the library tree panel of the left.
I have bricolage album selected, so all info in facets is about this only album.
About tags:
First genre-style are my tags, handwritten album by album.
Artist and album genres are an amalgam of almusic, discogs and last.fm genres colected by diverse components. Usefull to have a quick view of what kind of data I had download already and like a template to tag the principal genr and style..

When the playlist have more albums, for example in this playlist from the folder that contain new additions to library, not tagged and classified yet, it looks very different.
(https://i.imgur.com/qe4Or40.png)

Of course the facet filters are adaptable to different browsing activities. In this case, are oriented to make easier to identify missing data.
Title: Re: Playlist-Tools-SMP
Post by: mjm716 on 2022-07-24 06:24:36
The facets component is in playlist mode, so only show info from the select playlist.

When the playlist have more albums, for example in this playlist from the folder that contain new additions to library, not tagged and classified yet, it looks very different.

Of course, thanks! I was actually thinking 2 different Facets. (*edit*) I just realized you're probably also using Wilb's Library Tree on the left side, not Facets

RE: preview or Library incoming items - I run a 2nd Foobar customized for retagging workflow. (Polishing the stones before they get added to the piles.)
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2022-07-24 06:42:27
The facets component is in playlist mode, so only show info from the select playlist.

When the playlist have more albums, for example in this playlist from the folder that contain new additions to library, not tagged and classified yet, it looks very different.

Of course, thanks! I was actually thinking 2 different Facets.

RE: preview or Library incoming items - I run a 2nd Foobar customized for retagging workflow. (Polishing the stones before they get added to the piles.)

Tagging.....the never ending work.  ;D
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-07-24 11:11:41
Maybe the examples gives a wrong impression of the intention of my question.
About your last example... why you consider the results are wrong? If you have a zappa track tagged as electronic, then it's obviously a valid result. If you don't like it, then why did you tagged it as electronic? The script also takes into consideration BPM, key, etc. if an electronic track happens to match all the others in most aspects... why do you consider it as a non valid result? i.e. maybe if you listen to the playlist (instead of the tags) you would be amazed to find it just sounds right there. (unless there is a really weird mistake on tagging)

I follow your discussion, but as said, you can NOT simply tag an entire album as electronic just because it has "electronic influences". Or apply an appropriate style to it and scrap the electronic genre tag.

And yep, you will have to redo a proper genre tag to make it work. Use a second genre tag for facets.

Also as I already noted, you can configure the search.... you can not expect to have one search by distance button to entry with all genres as is. If you specifically want to search different styles within electronic genre, why don't you adjust the score? There is a custom button for that.

It seems to me you are also running into problems because you are not fine-tuning the search parameters, but the results are pretty valid to me. If you put a low score or a high distance filter, obviously you will get most electronic styles as result. When you make it more strict you will only get the most similar styles.

X

It's like expecting to only see chicago blues tracks when you use one of those tracks as reference... but using the same parameters to get different rock styles. Why do you expect that? Electronic genre is a really huge cluster, if you want more specific results finetune the search parameters..

About the tags that should be used, as said, the js descriptors and the HTML file render the graph with tag names.
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2022-07-24 12:12:07
Not wrong, I understand why this result is included, just not the outcome I wanted.
but I found one solution to my problem.

You're not wrong, part of the bad results are caused to a high value in max distance and genre weigh, plus the heavy association of a specific tag to a large supergenre or supercluster.

I commented out the style_substitutions that associate my generic tags (electronic, rock, pop) to a complete supergenre or supercluster, reduced the weigh of genre tag, increased the style, reduced the max distance to exclude and give theme a 0 (only a few tags have it).

With this and some minor additions in style_substitution to match some differences in tag names, the results are a lot much better.

No more electronic, pop, rock genre contamination and more focuses on the specific styles of the songs that start the search.

I left the house, trance and techno supergenre association to the single tag to avoid the fact that all have a electronic genre tag and with the above edits also gives results between the margins of club music.

Also change the 'Metal_supergenre ->Heavy Metal to just Metal to match my genre structure and remove and association of "harcore rap" to "hardcore" .This one is a bit excessive in my opinion in general terms, it is not rare that people have hardcore with no relation of any kind to rap. Even automatic tags like last.fm ones use it in a great variety of situations. But anyway, minor details.

Some more tuning will be needed to align with my taste and understanding of genre relations, but things are in the right way.

In general, I must say that I'm very happy with the results of your component. Sometimes I trend to overthinking when in fact there is a easier solution at hand.

That will be all about the search questions.

Now about the keys (don't hate me please)

After the mixx fiasco with multivalue tags I asked some friends who work in clubs and pubs, and managed to get a working copy of traktor.
This software seems to works with multivalue tags (if they are id3 v2.3, v2.4 gives problems) and is very fast analyzing the key tag and gives results for bpm more consistent than the bpm of foobar (that gives different results with the same config over the same song and have a strange fixation with 76, even when a rerun gives other value totally different ;) ). Traktor gives these kinds of key to write:
musical
musical (all sharps)
open keys
key text

What kind I must choose to match the key that I have already written with the essentia tool?
Title: Re: Playlist-Tools-SMP
Post by: mjm716 on 2022-07-24 14:40:43

For NIN in particular, there is an Electro-industrial estyle btw. For ex. their 94's album:
[attach type=thumb]22846[/attach]
I would not say none of those tracks are alt. rock, and only some of them are industrial rock.


Regarding the image above - how did you tag those- manually or is there a mass tagger for track level genres? 
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2022-07-24 15:18:04
I must say that now works like a charm.

the test with different styles seems promising but I did a search with a shoegaze, ambient, post-rock song that have a electronic, rock tag as genre and not only the artists in a preview seems to match the styles. I'm listening it about 3 hours and not even a surprise. All smooth transitions of tracks. the effect of the generic electronic and rock tag is gone.

Almost all track between the styles given and the variations, all related and not dissonant. some drone, a bit of kraufrock, post-metal that have an additional ambient tag....All quiet, atmospheric and with a low bpm. Perfect relaxing Sunday.

A very nice experience indeed.

It was not easy, but it was worth it.

Thanks for the help @regor
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-07-24 18:09:07

For NIN in particular, there is an Electro-industrial estyle btw. For ex. their 94's album:
[attach type=thumb]22846[/attach]
I would not say none of those tracks are alt. rock, and only some of them are industrial rock.


Regarding the image above - how did you tag those- manually or is there a mass tagger for track level genres? 
Manually. I listen to every single track and assign genre(s) & style(s). There is no available tool right now to make it faster (like this: https://getmusicbee.com/forum/index.php?topic=35266.15).

Hierarchy is defined on my scripts if you are looking for a description.
https://github.com/regorxxx/Music-Graph
https://regorxxx.github.io/Music-Graph/Draw%20Graph.html

BUT you may use foo_uie_tagger_mod to quicly add pre-defined existing tags (without levels though).

I may create at some point a genre/styles hierarchy list tagging panel, but right now I'm busy with other things. It would be great if someone else creates it. (https://getmusicbee.com/forum/index.php?topic=35266.15)
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-07-24 18:13:11
Not wrong, I understand why this result is included, just not the outcome I wanted.
but I found one solution to my problem.

You're not wrong, part of the bad results are caused to a high value in max distance and genre weigh, plus the heavy association of a specific tag to a large supergenre or supercluster.

I commented out the style_substitutions that associate my generic tags (electronic, rock, pop) to a complete supergenre or supercluster, reduced the weigh of genre tag, increased the style, reduced the max distance to exclude and give theme a 0 (only a few tags have it).

With this and some minor additions in style_substitution to match some differences in tag names, the results are a lot much better.

No more electronic, pop, rock genre contamination and more focuses on the specific styles of the songs that start the search.

I left the house, trance and techno supergenre association to the single tag to avoid the fact that all have a electronic genre tag and with the above edits also gives results between the margins of club music.

Also change the 'Metal_supergenre ->Heavy Metal to just Metal to match my genre structure and remove and association of "harcore rap" to "hardcore" .This one is a bit excessive in my opinion in general terms, it is not rare that people have hardcore with no relation of any kind to rap. Even automatic tags like last.fm ones use it in a great variety of situations. But anyway, minor details.

Some more tuning will be needed to align with my taste and understanding of genre relations, but things are in the right way.

In general, I must say that I'm very happy with the results of your component. Sometimes I trend to overthinking when in fact there is a easier solution at hand.

That will be all about the search questions.

Now about the keys (don't hate me please)

After the mixx fiasco with multivalue tags I asked some friends who work in clubs and pubs, and managed to get a working copy of traktor.
This software seems to works with multivalue tags (if they are id3 v2.3, v2.4 gives problems) and is very fast analyzing the key tag and gives results for bpm more consistent than the bpm of foobar (that gives different results with the same config over the same song and have a strange fixation with 76, even when a rerun gives other value totally different ;) ). Traktor gives these kinds of key to write:
musical
musical (all sharps)
open keys
key text

What kind I must choose to match the key that I have already written with the essentia tool?
No idea, try yourself. I never used tracktor. I suppose it's Musical. Anyway all key notations are supported by my scripts (although I would recommend to stick with one for tagging/querying).

For "NIN - The downward spiral" keys should be:
Code: [Select]
Dm
Am
A#m
G
Am
Dm
Fm
Am
Am
D#
A#m
Dm
Am
Am

PD: Key will be added to the tagging tools by me on next release anyway. Along BPM, and LRA using essentia. So Acousticbrainz will not be required anymore.

X
Title: Re: Playlist-Tools-SMP
Post by: mjm716 on 2022-07-25 03:36:04
Manually. I listen to every single track and assign genre(s) & style(s).

That's what I figured.  I have been rescrubbing my genre tags (in addition to several consistency upgrades) but have only reached "De_" after about 1 year now. I'm sure the perfect automation tool will arrive when I finally hit the Zs in about 10 years.

Such is the irony about the obsession with AI - there are almost no useful (and fewer practical) applications of it.

I've been happy padding out album taxonomies via AllMusic & Lastfm in spite of noise ratio. At least it offers supplementary usefulness thanks to your work!
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2022-07-25 10:21:42
(https://i.imgur.com/mhPP6EP.png)

With traktor Musical (All sharps) is equal to essentia tool. But if you're planning to add more tools will be better to wait. Traktor have problems with v2.4 tags multivalues and "/" in single value in v2.3 and v2.4 (trends to tranform the field in multivalue). With foobar2000 making the tagging there is no risk.

BPM and LRA are a cool addition too. And all at time with the tag button will be a great time saving
Title: Re: Playlist-Tools-SMP
Post by: Koshingg on 2022-07-25 15:05:55
regor, I have a problem with the scripts (it seems it's only happening to me).It's happening from hmmm... I think from December, I just didn't have time to ask/solve this until now.
The old scripts (those from November, I think) are working ok, but with the new scripts I have 0 luck. Foobar refuses to start (CPU remains stuck somewhere at 20%) every time
At first I tried with all the scripts, then I tried only with 1 script (I tried them all) but the result is the same: foobar doesn't start, the CPU remains stuck at 20%.
I even deleted all the data related with the scripts from the folder js_data but no luck. Obviously, if I put the old scripts back, everything is fine.
What can be done? It's frustrating to use the old scripts, especially now when you have added other cool/useful things
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-07-25 23:02:28
regor, I have a problem with the scripts (it seems it's only happening to me).It's happening from hmmm... I think from December, I just didn't have time to ask/solve this until now.
The old scripts (those from November, I think) are working ok, but with the new scripts I have 0 luck. Foobar refuses to start (CPU remains stuck somewhere at 20%) every time
At first I tried with all the scripts, then I tried only with 1 script (I tried them all) but the result is the same: foobar doesn't start, the CPU remains stuck at 20%.
I even deleted all the data related with the scripts from the folder js_data but no luck. Obviously, if I put the old scripts back, everything is fine.
What can be done? It's frustrating to use the old scripts, especially now when you have added other cool/useful things
Have you tried it on a clean portable install? Which SO?

I have never experienced something like that.
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2022-07-25 23:23:33
I got a pair of crashes when trying to open the configuration (Shift+L. Click) of "Search Same By" and "Same Styles".
Code: [Select]
Error: Spider Monkey Panel v1.6.2-dev+7c0928bf (Playlist Tools: Buttons Bar: Playlist Tools: Buttons Bar v3.0.0-beta8 by XXX)
settingsMenu is not defined

File: buttons_search_same_by.js
Line: 95, Column: 4
Stack trace:
  .searchSameBy<@buttons_search_same_by.js:95:4
  themedButton/this.onClick@buttons_xxx.js:273:21
  on_mouse_lbtn_up@buttons_xxx.js:447:21
Code: [Select]
Error: Spider Monkey Panel v1.6.2-dev+7c0928bf (Playlist Tools: Buttons Bar: Playlist Tools: Buttons Bar v3.0.0-beta8 by XXX)
settingsMenu is not defined

File: buttons_search_same_style.js
Line: 32, Column: 4
Stack trace:
  .SameStyles<@buttons_search_same_style.js:32:4
  themedButton/this.onClick@buttons_xxx.js:273:21
  on_mouse_lbtn_up@buttons_xxx.js:447:21
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-07-25 23:33:43
I got a pair of crashes when trying to open the configuration (Shift+L. Click) of "Search Same By" and "Same Styles".
Code: [Select]
Error: Spider Monkey Panel v1.6.2-dev+7c0928bf (Playlist Tools: Buttons Bar: Playlist Tools: Buttons Bar v3.0.0-beta8 by XXX)
settingsMenu is not defined

File: buttons_search_same_by.js
Line: 95, Column: 4
Stack trace:
  .searchSameBy<@buttons_search_same_by.js:95:4
  themedButton/this.onClick@buttons_xxx.js:273:21
  on_mouse_lbtn_up@buttons_xxx.js:447:21
Code: [Select]
Error: Spider Monkey Panel v1.6.2-dev+7c0928bf (Playlist Tools: Buttons Bar: Playlist Tools: Buttons Bar v3.0.0-beta8 by XXX)
settingsMenu is not defined

File: buttons_search_same_style.js
Line: 32, Column: 4
Stack trace:
  .SameStyles<@buttons_search_same_style.js:32:4
  themedButton/this.onClick@buttons_xxx.js:273:21
  on_mouse_lbtn_up@buttons_xxx.js:447:21
My bad. I missed a line on some of the buttons:
Code: [Select]
include('..\\helpers\\buttons_xxx_menu.js');
Add that after all the "include" lines on those button scripts. Use absolute paths if needed (I think that was your case).
Code: [Select]
include(fb.ProfilePath + 'scripts\\SMP\\xxx-scripts\\helpers\\buttons_xxx_menu.js');
The list of files which should have the line is:
Code: [Select]
buttons_playlist_filter.js
buttons_playlist_remove_duplicates.js
buttons_playlist_show_duplicates.js
buttons_search_same_by.js
buttons_search_same_style.js
buttons_search_same_style_moods.js
buttons_search_top_tracks.js
buttons_search_top_tracks_from_date.js
Will be fixed on next release.
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2022-07-25 23:52:30
Mine looks a bit different, I supossed is because I used the _switchPaths.bat but I recreate the same format of the other include and seems to work
Code: [Select]
include(fb.ProfilePath + 'scripts\\SMP\\xxx-scripts\\helpers\\buttons_xxx_menu.js');
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-07-26 00:03:05
Mine looks a bit different, I supossed is because I used the _switchPaths.bat but I recreate the same format of the other include and seems to work
Code: [Select]
include(fb.ProfilePath + 'scripts\\SMP\\xxx-scripts\\helpers\\buttons_xxx_menu.js');
Yep, whatever your path was. That will fix it.
Title: Re: Playlist-Tools-SMP
Post by: Koshingg on 2022-07-26 19:32:35
I forgot to mention that it works on a clean, portable install. I have windows 10 (21H1), the latest foobar version, SMP 1.6.1
But, as I said, the old scripts are working. With the new scripts, it doesn't matter what script I try, the result is always the same, foobar doesn't start. Any tip for this weird situation? :)
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-07-26 19:46:21
I forgot to mention that it works on a clean, portable install. I have windows 10 (21H1), the latest foobar version, SMP 1.6.1
But, as I said, the old scripts are working. With the new scripts, it doesn't matter what script I try, the result is always the same, foobar doesn't start. Any tip for this weird situation? :)
If it works on a clean installation, then the error is on your side or an SMP/foobar bug.
Workaround: Copy your current config to a new install (?) and use the scripts there since they work on a clean install.

Otherwise provide logs, since that's an SMP/foobar bug, not something related to my scripts. Also be sure this is not enabled:
X

Hope @TheQwertiest continues development soon, there is a a few bugs unresolved right now and crashes on multiple OSes...
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2022-07-27 13:43:11
With Search by Distance (CUSTOM) Button setting a weight to composer and doing a search make the panel crashs if the composer tag is present.
Code: [Select]
Error: Spider Monkey Panel v1.6.2-dev+7c0928bf (Playlist Tools: Buttons Bar: Playlist Tools: Buttons Bar v3.0.0-beta8 by XXX)
composerSet is not defined

File: search_bydistance.js
Line: 1321, Column: 18
Stack trace:
  do_searchby_distance@search_bydistance.js:1321:18
  .SimilarUserSet<@buttons_search_bydistance_customizable.js:58:5
  themedButton/this.onClick@buttons_xxx.js:273:21
  on_mouse_lbtn_up@buttons_xxx.js:447:21
  _runHidden@helpers_xxx_file.js:346:12
  calcTag/<@essentia-utils.js:105:6
  calcTag@essentia-utils.js:101:52
  calculateHighLevelTags@essentia-utils.js:155:9
  async*tagAutomation/this.stepTag@tags_automation.js:213:39
  tagAutomation/this.stepTag@tags_automation.js:245:23
  tagAutomation/this.stepTag@tags_automation.js:245:23
  tagAutomation/this.stepTag@tags_automation.js:245:23
  tagAutomation/this.stepTag@tags_automation.js:245:23
  tagAutomation/this.stepTag@tags_automation.js:245:23
  tagAutomation/this.stepTag@tags_automation.js:245:23
  tagAutomation/this.stepTag@tags_automation.js:245:23
Using GitHub's zips with the new essentia tools
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-07-28 00:07:24
With Search by Distance (CUSTOM) Button setting a weight to composer and doing a search make the panel crashs if the composer tag is present.
Code: [Select]
Error: Spider Monkey Panel v1.6.2-dev+7c0928bf (Playlist Tools: Buttons Bar: Playlist Tools: Buttons Bar v3.0.0-beta8 by XXX)
composerSet is not defined

File: search_bydistance.js
Line: 1321, Column: 18
Stack trace:
  do_searchby_distance@search_bydistance.js:1321:18
  .SimilarUserSet<@buttons_search_bydistance_customizable.js:58:5
  themedButton/this.onClick@buttons_xxx.js:273:21
  on_mouse_lbtn_up@buttons_xxx.js:447:21
  _runHidden@helpers_xxx_file.js:346:12
  calcTag/<@essentia-utils.js:105:6
  calcTag@essentia-utils.js:101:52
  calculateHighLevelTags@essentia-utils.js:155:9
  async*tagAutomation/this.stepTag@tags_automation.js:213:39
  tagAutomation/this.stepTag@tags_automation.js:245:23
  tagAutomation/this.stepTag@tags_automation.js:245:23
  tagAutomation/this.stepTag@tags_automation.js:245:23
  tagAutomation/this.stepTag@tags_automation.js:245:23
  tagAutomation/this.stepTag@tags_automation.js:245:23
  tagAutomation/this.stepTag@tags_automation.js:245:23
  tagAutomation/this.stepTag@tags_automation.js:245:23
Using GitHub's zips with the new essentia tools

Fixed (also on github).

Adjust include paths as needed in your case.
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2022-07-28 00:28:58
Changing the path I saw a reference to a "music_graph_descriptors_xxx_last.fm.js" but I couldn't find it.
It is no longer used, or I miss some file?
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-07-28 08:10:34
Changing the path I saw a reference to a "music_graph_descriptors_xxx_last.fm.js" but I couldn't find it.
It is no longer used, or I miss some file?

https://github.com/regorxxx/Search-by-Distance-SMP/blob/main/CHANGELOG.md#212---2022-04-13
wip
Title: Re: Playlist-Tools-SMP
Post by: Koshingg on 2022-07-28 21:09:59

If it works on a clean installation, then the error is on your side or an SMP/foobar bug.
Workaround: Copy your current config to a new install (?) and use the scripts there since they work on a clean install.

Otherwise provide logs, since that's an SMP/foobar bug, not something related to my scripts. Also be sure this is not enabled:
[attach type=image]22889[/attach]

Hope @TheQwertiest continues development soon, there is a a few bugs unresolved right now and crashes on multiple OSes...

Well, it would be too much to copy my current config to a new install...it's not a simple config, it would take ages, lots of settings.
I like your second suggestion better :) What you showed in that picture , I looked at the settings and that setting is not enabled.
Can you please guide me a bit? Where is that log file? I have a file, console.log in : foobar2000\profile\   BUT there's not much in that file, basically there's nothing interesting, useful, that shows why foobar doesn't start...
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-07-29 00:14:14

If it works on a clean installation, then the error is on your side or an SMP/foobar bug.
Workaround: Copy your current config to a new install (?) and use the scripts there since they work on a clean install.

Otherwise provide logs, since that's an SMP/foobar bug, not something related to my scripts. Also be sure this is not enabled:
[attach type=image]22889[/attach]

Hope @TheQwertiest continues development soon, there is a a few bugs unresolved right now and crashes on multiple OSes...

Well, it would be too much to copy my current config to a new install...it's not a simple config, it would take ages, lots of settings.
I like your second suggestion better :) What you showed in that picture , I looked at the settings and that setting is not enabled.
Can you please guide me a bit? Where is that log file? I have a file, console.log in : foobar2000\profile\   BUT there's not much in that file, basically there's nothing interesting, useful, that shows why foobar doesn't start...
Copy the entire profile folder but the old scripts. You don't have to copy every setting one by one (?) It takes seconds..

The crash log is the one shown when Foobar crashes (not sure if foobar crashes at startup in your case). Can not help you any more since your problem is too abstract. Try the "switch paths" fix on the  installation guide after updating the scripts.
Title: Re: Playlist-Tools-SMP
Post by: Koshingg on 2022-07-29 12:08:26
I copied the profile folder in another clean, portable install. It's the same situation, with the old scripts foobar starts, if I update or simply try with only one script (the latest scripts), foobar doesn't start. I tried the "switch paths" fix, but no result. The only difference is that now, in this clean portable install, something else happens, if I try to remove SMP and then I install it, foobar doesn't want to start again, it remains stuck forever (without any scripts, obviously). This doesn't happen in my old config, I can install and remove SMP, the only problem there is with these new scripts. Maybe a SMP bug...
Foobar never crashes, it remains stuck, with the CPU at 20% , so I have to kill the process because it remains forever like this. In the crash log there's nothing about these failed attempts to start. 
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-07-29 12:39:17
As suggested, copy profile folder and then delete all the old scripts (no SMP). Finally install the new scripts.

According to your reports that should work, since the scripts work on a new install.

If that doesn't work, please report it in the SMP forum. People keep reporting SMP bugs on my scripts but they should be fixed by @TheQwertiest

In any case, you may keep adding things from the profile folder on a clean install with the new scripts until it fails. As you have reported there is a problem in your current profile with some combination of addons or scripts.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-08-01 12:36:20
Just created this hoping it helps solving errors  :))
Will upload it on github after checking colorblindness readability.
Spoiler (click to show/hide)

PD: Also attached the drawio file, in case someone wants to reuse it.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-08-05 18:35:06
https://github.com/regorxxx/Playlist-Tools-SMP/releases/tag/v3.0.0-beta.8

Quote
v3.0.0-beta.8 - Wine fixes, online controller, dynamic menus Latest
@regorxxx regorxxx released this in 26 seconds
v3.0.0-beta.8
25935ce

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 tools: device selector, show duplicates, ...
    New tagging tools (Essentia): key, BPM, LRA, DANCENESS along other optimizations and popup tips.
    New readmes for 'Tagging requisites', 'Tags sources' and 'Other tag notes'. They should cover most frequently asked questions.
    SMP Dynamic menus to be used with CMD, keyboard shortcuts, etc.
    Added new submenu with pre-defined filters (queries) to easily configure the forced query.
    Themed buttons are replaced with manually drawn buttons when the first method fails (on Wine for ex.).
    Playlist Manager: Updated to match v0.5.0-beta.8 release.
    Search by distance: Updated to match v2.1.6 release.
    Minor speed optimization.
    Improved readmes.
    Fixed multiple crashes on wine, enabling/disabling tools, tagging, etc.

buttons_wine

See changelog for a full list: https://github.com/regorxxx/Playlist-Tools-SMP/blob/main/CHANGELOG.md

Spoiler (click to show/hide)
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-08-06 10:04:04
https://github.com/regorxxx/Playlist-Tools-SMP/releases/tag/v3.0.0-beta.9

Quote
v3.0.0-beta.9 - Hotfix Latest
@regorxxx regorxxx released this 29 seconds ago
v3.0.0-beta.9
b81f021

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.

    Forced query was not being properly saved when using pre-defined filters.
    Search by Distance: minor improvements to console logging when reporting track list.
    Search by Distance: fix to theme checking. Themes were being reported as non valid when they were fine.
    Search by distance: Updated to match v2.2.1 release.

See v3.0.0-beta.8 release info: https://github.com/regorxxx/Playlist-Tools-SMP/releases/tag/v3.0.0-beta.8
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2022-08-07 08:09:10
Updated and working like a charm. This time, I didn't need to use the _switchPaths.bat.
I was wondering if you are planning to include more descriptors (https://github.com/MTG/essentia/blob/master/doc/descriptors.yaml) to the essentia tools. Things like excitement, intensity, speech_music, voice_instrumental, etc.
All this data could help to make an "automatic" mood (or similar) tag  (this could be really cool) or at least be useful to match similar tracks.

Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-08-07 08:57:12
Short answer: yes I would love to do that.

Long:
I can only support the variables output by their binaries.

Compiling essentia requires unix or docker (*), I don't have access to them so can't do it myself. Essentia compiled with GAIA would also give moods, genres, etc. with machine learning models but there are no official binaries yet. I have already contacted the devs without luck... maybe if more people ask for it, they will release them.

https://github.com/MTG/essentia/issues/1265
https://community.metabrainz.org/t/acousticbrainz-submissions-data-dumps-and-next-steps/589843

Check the json file, those are the only variables output right now.

(*) It's supposed you can do it on Win, but so far no one has been able to do it yet XD
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2022-08-07 10:30:25
Naive me, I thought that there will be all available by default  ;D

If it is possible to build it from Linux I have no problem to do it if you guide me.

Edit:

I found this https://essentia.upf.edu/installing.html instructions

What options need to be enabled?

Use these (optional) flags:

    --with-python to build with Python bindings,

    --with-examples to build command line extractors based on the library,

    --with-vamp to build Vamp plugin wrapper,

    --with-gaia to build with Gaia support,

    --with-tensorflow to build with TensorFlow support,

    --mode=debug to build in debug mode,

    --with-cpptests to build cpptests

Once configured, there is an option to Cross-compiling for Windows on Linux


Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-08-07 11:16:01
Naive me, I thought that there will be all available by default  ;D

If it is possible to build it from Linux I have no problem to do it if you guide me.

Edit:

I found this https://essentia.upf.edu/installing.html instructions

what option needs to be enable?

Use these (optional) flags:

    --with-python to build with Python bindings,

    --with-examples to build command line extractors based on the library,

    --with-vamp to build Vamp plugin wrapper,

    --with-gaia to build with Gaia support,

    --with-tensorflow to build with TensorFlow support,

    --mode=debug to build in debug mode,

    --with-cpptests to build cpptests

Once configured there is a option to Cross-compiling for Windows on Linux
I think this will do:

2.1 beta5 Cross-compiling for windows.
--with-gaia
--with-examples

I could then link the ML models to the binary and test if it works.
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2022-08-07 16:59:21
I can build it without gaia, but every time I try to enable it, the compilation fails.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-08-07 17:18:25
I suppose you have to install gaia first too (?)
https://github.com/MTG/essentia/issues/664

https://gist.github.com/daniele-athome/3f7c3c241e7483e7b6454a9229031ca5

https://github.com/MTG/gaia

Then compile essentia with gaia. Essentia dependencies installation step doesn't include gaia.
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2022-08-07 17:44:47
Yeah I saw that.

The master branch of gaia didn't build in ubuntu 22.04 (not qt4 available, only qt5 and qt6)
I managed to build and install the qt5 branch..
Now going to build essentia.
The script install didn't use my installation of gaia. It try to build the 2.4.6-86-ged433ed (hardcoded) and fail.
I hack this around to version qt5 and I build the gaia part of the script.
But again at building time didn't find the qt5 libs when linking the exes.

Without gaia compile without problem (linux and windows)

I take a look at this docker, maybe i found some clue.
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2022-08-07 20:19:14
No luck.
Installing the qt4 dev files from the ppa that used the dockerfile pass the previous crashes but another one popup. This one related with a libav library that is not avaible in the repos anymore. Messing around with libav is not a good idea. I tried in the past and the result was a broken install.
I will try tomorrow, installing ubuntu 20.04 in a spare partition. In theory, this one have the correct versions.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-08-07 21:21:55
https://github.com/regorxxx/Playlist-Tools-SMP/releases/tag/v3.0.0-beta.10
Quote
v3.0.0-beta.10 - Hotfix
@regorxxx regorxxx released this 9 minutes ago
v3.0.0-beta.10
f810096

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.

    Other Tools\Write tags: added menu entry to invert tools selected.
    Other Tools\Write tags: pressing shift while clicking on a tool will disable the other tools and enable only the selected one.
    Search by Distance: graph variable 'Exclude any track with graph distance greater than (only GRAPH method' was not being parsed properly when set to a string.
    Buttons: crash when trying to move a button when only a single button script was loaded on the panel.
    Search by distance: Updated to match v2.2.2 release.

See v3.0.0-beta.8 release info: https://github.com/regorxxx/Playlist-Tools-SMP/releases/tag/v3.0.0-beta.8

@paregistrase thanks for your help. Hope it works at some point
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2022-08-08 00:24:12
I tried in ubuntu 20.04.

the linux version build without problems.

The cross-compiling to windows still fails.

Code: [Select]
[303/303] Compiling essentia.pc.in
[306/415] Linking build/src/examples/essentia_standard_beatsmarker.exe
[308/415] Linking build/src/examples/essentia_standard_fadedetection.exe
[309/415] Linking build/src/examples/essentia_standard_mfcc.exe
[311/415] Linking build/src/examples/essentia_standard_onsetrate.exe
/usr/bin/i686-w64-mingw32-ld: no se puede encontrar -lQtCore
/usr/bin/i686-w64-mingw32-ld: no se puede encontrar -ldl
collect2: error: ld returned 1 exit status

/usr/bin/i686-w64-mingw32-ld: no se puede encontrar -lQtCore
/usr/bin/i686-w64-mingw32-ld: no se puede encontrar -ldl
collect2: error: ld returned 1 exit status

/usr/bin/i686-w64-mingw32-ld: no se puede encontrar -lQtCore
/usr/bin/i686-w64-mingw32-ld: no se puede encontrar -ldl
collect2: error: ld returned 1 exit status

/usr/bin/i686-w64-mingw32-ld: no se puede encontrar -lQtCore
/usr/bin/i686-w64-mingw32-ld: no se puede encontrar -ldl
collect2: error: ld returned 1 exit status

Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2022-08-09 00:09:23
I can't build the static windows binaries with gaia support.
Are you sure that this option is supported?
In the debian 3party script there is an option to build gaia that also build qt.
But in the win32 one there is no present. In one of the installation instruction pages (maybe old) said that --with-gaia can be gives as option when making the 3paty_static_win32 but is not present in the script
Code: [Select]
#!/usr/bin/env bash
set -e
BASEDIR=$(dirname $0)
cd $BASEDIR/win32_3rdparty
rm -rf bin dynamic include lib share

./build_eigen3.sh
./build_fftw3.sh
./build_lame.sh
./build_ffmpeg.sh
./build_libsamplerate.sh
./build_zlib.sh
./build_taglib.sh
./build_yaml.sh
./build_chromaprint.sh

rm -rf bin dynamic share

In the debian one is there

Code: [Select]
#!/usr/bin/env bash
set -e
BASEDIR=$(dirname $0)
cd $BASEDIR/debian_3rdparty
./build_eigen3.sh
./build_fftw3.sh
./build_lame.sh
./build_ffmpeg.sh
./build_libsamplerate.sh
./build_zlib.sh
./build_taglib.sh
./build_yaml.sh
./build_chromaprint.sh

#!/usr/bin/env bash
if [[ "$*" == *--with-gaia* ]]
    then
        ./build_qt.sh
        ./build_gaia.sh
        rm -rf mkspecs plugins translations
fi

if [[ "$*" == *--with-tensorflow* ]]
    then
        ./build_tensorflow.sh
fi

rm -rf bin share

Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2022-08-09 02:56:58
The linux static binaries build --witn-gaia but this is not useful for  you, right?
For windows, I can only build static .exes without gaia. They are build with last git source, so they are newer than the ones available for download. Tell me if you want them.
I test the stractor an key with your script and they wok fine.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-08-09 08:53:58
Quote
Are you sure that this option is supported?
Yep. 100% sure. No wonder there are not other binaries out there, there are dozens of issues opened on github about building essentia XD

The linux static binaries build --witn-gaia but this is not useful for  you, right?
For windows, I can only build static .exes without gaia. They are build with last git source, so they are newer than the ones available for download. Tell me if you want them.
I test the stractor an key with your script and they wok fine.
Can't do anything with them since the idea is running the binaries along foobar, so even for unix users it's limited to windows binaries within wine. Maybe opening an issue on github could help?

I will continue annoying the AcousticBrainz team to release their own binaries...
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2022-08-09 10:43:19
Yep. 100% sure. No wonder there are not other binaries out there, there are dozens of issues opened on github about building essentia XD

This repo need an urgent clean-up..
With modern ffmpeg/livAv qnd qt neither linux nor windows build up, so no shared builds.
To build with shared libs you need libraries from 2020, (and for qt even older) but in this situation the windows cross-compile doesn't work because lame 3.10 doesn't compile with the old  libs.
Only option is static builds against static dependencies, but there is not static dependencies for gaia and qt for windows cross compiling.
Total chaos.
Beyond the binaries that they distribute, you only can build static binaries with gaia for linux.

Can't do anything with them since the idea is running the binaries along foobar, so even for unix users it's limited to windows binaries within wine. Maybe opening an issue on github could help?

I will continue annoying the AcousticBrainz team to release their own binaries...

Or some guidance to build them.



Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-08-09 16:25:39
https://github.com/regorxxx/Playlist-Tools-SMP/releases/tag/v3.0.0-beta.11
Quote
v3.0.0-beta.11 - Hotfix
@regorxxx regorxxx released this 1 minute ago
v3.0.0-beta.11
7f7862e

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 additions to Search by distance custom button (see below).
    Multiple fixes to Search by distance custom button (see below).
    Search by distance: Updated to match v2.2.3 release.

See v3.0.0-beta8 release info: https://github.com/regorxxx/Playlist-Tools-SMP/releases/tag/v3.0.0-beta.8
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-08-10 18:35:32
https://github.com/regorxxx/Playlist-Tools-SMP/releases/tag/v3.0.0-beta.12

Quote
v3.0.0-beta.12 - Hotfix
@regorxxx regorxxx released this in 2 minutes
v3.0.0-beta.12
431d7a0

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 additions to Search by distance custom button (see below).
    Added a reset menu entry to Search by distance custom button (see below).
    Search by distance: Updated to match v2.2.4 release.

See v3.0.0-beta8 release info: https://github.com/regorxxx/Playlist-Tools-SMP/releases/tag/v3.0.0-beta.8
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-08-12 20:22:05
https://github.com/regorxxx/Playlist-Tools-SMP/releases/tag/v3.0.0-beta.13
Quote
v3.0.0-beta.13 - Similar artists improvements
@regorxxx regorxxx released this in 2 minutes
v3.0.0-beta.13
8fe1f5f

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.

    Search by distance: Added diagrams explaining the design logic of similar artists calculation.
    Search by distance: Added 'Dembow' and 'Renaissance Rock', along their influences, to descriptors.
    Search by distance: 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).
    Search by distance: Updated to match v2.3.0 release.

See v3.0.0-beta8 release info: https://github.com/regorxxx/Playlist-Tools-SMP/releases/tag/v3.0.0-beta.8
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-08-21 21:19:47
https://github.com/regorxxx/Playlist-Tools-SMP/releases/tag/v3.0.0-beta.14
Quote
v3.0.0-beta.14 - Search by distance update and Dynamic queries Latest
@regorxxx regorxxx released this in 12 hours
v3.0.0-beta.14
547590c

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 a few new default dynamic queries to menu. Cover versions, acoustic versions, >2 rated tacks by artist. (may need to restore defaults on the menu to enable it)
    Search by distance: Added 'User descriptors' readme.
    Search by distance: User file has been moved to profile folder at 'js_data/helpers/music_graph_descriptors_xxx_user.js'.
    Search by distance: All style/genres on the graph use now ASCII only values, so it should be easier to match any value to them if required.
    Search by distance: 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%)'
    Search by distance: After tag remapping, a popup asks to rebuild the cache.
    Search by distance: Improved graph links cache asynchronous calculation.
    Fixed console logging to file (lines were not being split properly).
    Search by distance: Updated to match v3.0.0 release.

See changelog for a full list: https://github.com/regorxxx/Playlist-Tools-SMP/blob/main/CHANGELOG.md
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-08-22 20:12:39
https://github.com/regorxxx/Playlist-Tools-SMP/releases/tag/v3.0.0-beta.15
Quote
v3.0.0-beta.15 -Playlist locks Latest
@regorxxx regorxxx released this in 12 hours
v3.0.0-beta.15
868817e

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 entries at Playlist manipulation to lock/unlock playlists. Currently switches 'add, remove, replace and reorder' locks (all at once). Use Playlist-Manager-SMP for a fine-grained control of lock types. Note playlist locked by other components or main program can not be edited via SMP.
    Minor improvements to word lists within popups in some instances. Now split in new lines after X elements.

See changelog for a full list: https://github.com/regorxxx/Playlist-Tools-SMP/blob/main/CHANGELOG.md
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-08-26 08:00:47
Someone asked for a 10 random albums pool here (https://hydrogenaud.io/index.php/topic,77460.msg1014047.html#msg1014047), which is trivial with Pools on this script.
Check attachment, import as user preset. Execution time is 1 sec on 70K tracks.

Sort is random (currently as ""), use "%playlist_index%" as sort to have albums joined in groups.
Title: Re: Playlist-Tools-SMP
Post by: Koshingg on 2022-10-21 22:37:12
It's me again :) Fortunately this is the last problem that I have encountered :)
So, I play songs on Spotify (I can see the scrobbles on my lastFM profile, or inside foobar using the enhanced playback statistics component). I have the same songs (artist-title-album-year) on my pc, but when I use :
Playlist Tools - Most Played Tracks from ... From Last... 5 DAYS (or 1,2,3,4 DAYS)     ------ there is no result, no song played on Spotify appears in playlist.
For songs that I play inside foobar everything seems ok, the playlist is populated with songs. It seems only this part, the songs played outside foobar, doesn't work.

For example, these 2 songs (played on Spotify, but also present in library, they have the same Artist, Title, Album)
Birdy - Quietly Yours
Gestört aber GeiL; Anna Grey - Thank You (this has multiple artists, after it's played it will appear : Gestört aber GeiL - Thank You, on LastFm).

Also, LastFm scrobbles (from Enhanced playback statistics component for these 2 songs)
2022-09-02 21:28:26, 2022-09-08 15:48:23, 2022-10-20 12:25:58, 2022-10-20 12:29:54, 2022-10-20 12:33:46, 2022-10-20 12:38:30, 2022-10-20 12:42:51, 2022-10-20 12:46:47

2022-10-10 21:05:55, 2022-10-10 21:11:59, 2022-10-17 21:39:04, 2022-10-17 21:43:19, 2022-10-17 21:46:40, 2022-10-17 21:50:33
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-10-21 23:17:29
It's not a problem, I simply don't support scrobbles XD so you are in fact making a request.

Fortunately for you, the "problem" lies in the filtering step (I don't check the entire library, but just tracks played on last X period with %LAST_PLAYED% but not %LASTFM_LAST_PLAYED%). Scrobbles support was built-in when counting "PLAYED_TIMES" when I designed it. So just a one line change should enable full scrobbles support. Let me know :)

Quote
%first_played_enhanced% - Single date, earliest value of either %first_played% or %lastfm_first_played%
%last_played_enhanced% - Single date, latest value of either %last_played% or %lastfm_last_played%
It seems these are the tags which I should have used in any case which covers both.
Title: Re: Playlist-Tools-SMP
Post by: Koshingg on 2022-10-22 06:43:26
Ooops, sorry. Yes, now I remember, Most Played Tracks from  DAYS, WEEKS was added later...so indeed I'm making a request, the lastFM part was not supported :) Well, at least my intervention wasn't totally wrong and I made a decent request :) Yes, I tested the file and it's working, thanks a lot.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-10-22 11:05:41
As a side consequence, have updated other tools to account for scrobbles:
Quote
- Top Rated Tracks from...: now use the greater value between play count and Last.Fm play count for sorting to account for scrobbles. i.e. '$max(%PLAY_COUNT%,%LASTFM_PLAY_COUNT%)'.
- Most played Tracks...: now use the greater value between play count and Last.Fm play count for sorting to account for scrobbles. i.e. '$max(%PLAY_COUNT%,%LASTFM_PLAY_COUNT%)'.
- Most Played Tracks from...: now also includes scrobbles from Last.Fm. So in case tracks have been played at Spotify or other players, as long as scrobbles as synced by 'Enhanced playback statistics' plugin, those tracks are considered eligible the same than any track played within Foobar2000.

Also on playlist Manager, XSP playlists (from Kodi) now convert counts and last played tags to the enhanced counterpart when foo_enhanced_statistics is installed to cover both use-cases.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-11-07 18:57:17
Yep. 100% sure. No wonder there are not other binaries out there, there are dozens of issues opened on github about building essentia XD

This repo need an urgent clean-up..
With modern ffmpeg/livAv qnd qt neither linux nor windows build up, so no shared builds.
To build with shared libs you need libraries from 2020, (and for qt even older) but in this situation the windows cross-compile doesn't work because lame 3.10 doesn't compile with the old  libs.
Only option is static builds against static dependencies, but there is not static dependencies for gaia and qt for windows cross compiling.
Total chaos.
Beyond the binaries that they distribute, you only can build static binaries with gaia for linux.

Can't do anything with them since the idea is running the binaries along foobar, so even for unix users it's limited to windows binaries within wine. Maybe opening an issue on github could help?

I will continue annoying the AcousticBrainz team to release their own binaries...

Or some guidance to build them.




Have received a reply which addresses in part the problems compiling GAIA:
https://community.metabrainz.org/t/acousticbrainz-submissions-data-dumps-and-next-steps/589843/9?u=isabelxxx
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2022-11-08 02:38:36

Have received a reply which addresses in part the problems compiling GAIA:
https://community.metabrainz.org/t/acousticbrainz-submissions-data-dumps-and-next-steps/589843/9?u=isabelxxx

There is an Update static builds for Qt 5.15.6 (https://github.com/MTG/essentia/pull/1282) but only for debian_3rdparty.
The win32 build script still lack support for gaia, qt or tensorflow.
Maybe the gaia 2.4.7 release (or new updates) changes that.....
Title: Re: Playlist-Tools-SMP
Post by: regor on 2022-11-08 11:51:33

Have received a reply which addresses in part the problems compiling GAIA:
https://community.metabrainz.org/t/acousticbrainz-submissions-data-dumps-and-next-steps/589843/9?u=isabelxxx

There is an Update static builds for Qt 5.15.6 (https://github.com/MTG/essentia/pull/1282) but only for debian_3rdparty.
The win32 build script still lack support for gaia, qt or tensorflow.
Maybe the gaia 2.4.7 release (or new updates) changes that.....
Thought this:
https://github.com/MTG/gaia/pull/92
Would be reused on Essentia too.

Anyway will continue whining about it, maybe someday they fix it XD I don't get how they can simply ignore binaries not being available on Windows for years...
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2022-11-08 17:17:51
Thought this:
https://github.com/MTG/gaia/pull/92
Would be reused on Essentia too.

Anyway will continue whining about it, maybe someday they fix it XD I don't get how they can simply ignore binaries not being available on Windows for years...

But still lack of cross-compiling for windows. Only offer qtcreator.

Code: [Select]
    if not sys.platform.startswith('linux') and sys.platform != 'darwin':
        print('Please use the QtCreator project for building Gaia in Windows...')
        sys.exit(1)

Maybe in the future they include it and could be included in the essentia build script, but for now we are in the same spot. It is easier to build for linux in modern distribution but still no option to build binaries for windows with gaia.
Maybe could be possible to use these binaries to link against essentia for a custom static build, but this is way above me.
Title: Re: Playlist-Tools-SMP
Post by: InchPerfect on 2023-01-31 15:00:10
A small gif to show how the buttons work now:
[attach type=image]20273[/attach]

Everything is now configurable on the bar, either with menus or properties.
What is "the bar"? Is it this thing?
(https://i.imgur.com/kkVj5BI.png)

And if so, is that another SMP panel? How do I get one of those up there? I can only figure out how to add SMP panels to the main UI, like with tabs etc.

Basically, I still can't work out how to have a Playlist Manager button instead of this:
(https://i.imgur.com/GFBc8w8.png)
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-01-31 16:49:31
Read the readme pdf installation instructions (just added it a week ago). Toolbar panels are only available in CUI.

But anyway nothing stops you to set the panel height to a bar size, and put such panel at top below native toolbars.
Title: Re: Playlist-Tools-SMP
Post by: InchPerfect on 2023-01-31 22:43:17
Toolbar panels are only available in CUI.
Thanks. I'm using DUI.

But anyway nothing stops you to set the panel height to a bar size, and put such panel at top below native toolbars.
Sorry. No idea what that means.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-01-31 23:46:19
Panel size is configurable, and layout position is up to you. Don't really see a problem. I you don't like having a big empty panel with small buttons, just make the panel smaller (?)
Title: Re: Playlist-Tools-SMP
Post by: InchPerfect on 2023-02-01 09:38:20
Panel size is configurable, and layout position is up to you. Don't really see a problem. I you don't like having a big empty panel with small buttons, just make the panel smaller (?)
Oh yeah. Got it! Now I've got to work out how and where to put it. Thanks.

EDIT: Success!
(https://i.imgur.com/XtMTFlN.png)
Title: Re: Playlist-Tools-SMP
Post by: InchPerfect on 2023-02-01 12:45:32
Read the readme pdf installation instructions (just added it a week ago). Toolbar panels are only available in CUI.
Just reading it now. Thanks. 👍
Title: Re: Playlist-Tools-SMP
Post by: InchPerfect on 2023-02-01 15:35:35
1. How do we change the queries that are used, for example, in Quicksearch>Same date (where I'd like one to show "Same ORIGINAL RELEASE DATE") or in Playlist Tools>Top rated from 2023?

2.
Quote
- Dynamic variables are allowed too, enclosed on '#': #ARTIST#,
#$year(%date%)#, ...

- Standard queries may be added -only- to the end of a dynamic query expression.

Merging standard and dynamic variables like 'GENRE IS #GENRE# AND NOT
(%rating% EQUAL 2 OR %rating% EQUAL 1)' would translate into
'(GENRE IS Psychedelic Rock) AND (GENRE IS Hard Rock) AND NOT (%rating%
EQUAL 2 OR %rating% EQUAL 1)'. Note the standard query expression is
added at the end
.

Sorry, I'm not understanding what the terms "standard query", "Dynamic variable" or "dynamic query
expression".

In
Quote
(GENRE IS Psychedelic Rock) AND (GENRE IS Hard Rock) AND NOT (%rating% EQUAL 2 OR %rating% EQUAL 1)
... I can't see what is "dynamic" in NOT (%rating% EQUAL 2 OR %rating% EQUAL 1) that isn't in (GENRE IS Psychedelic Rock) AND (GENRE IS Hard Rock)?

So if I make my own, I don't know which bit to put at the end.

I'm asking these silly little questions because I think that at some point, once I've got some basic things in my head, a whole lot more will suddenly become clear.

At the moment, I just can't do anything apart from very basic usage of some of Playlist Tools and Quicksearch.

3. Is it possible change the text of the buttons?

4. When all the buttons don't fit in the SMP panel, the row of buttons changes from this
(https://i.imgur.com/1PkCJRi.png)

to this
(https://i.imgur.com/sfEEs86.png)

Is that a SMP limitation?
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-02-01 16:29:12
Quote
1. How do we change the queries that are used, for example, in Quicksearch>Same date (where I'd like one to show "Same ORIGINAL RELEASE DATE") or in Playlist Tools>Top rated from 2023?
- You don't. Use Playlist Tools/Dynamic queries for that, where you can add and save your own expressions.
- Use 'from year entry...' No need at all to complicate it with custom entries. You don't like that, add a 'search top tracks from date' button and configure the date.

2.
Quote
- Dynamic variables are allowed too, enclosed on '#': #ARTIST#,
#$year(%date%)#, ...

orry, I'm not understanding what the terms "standard query", "Dynamic variable" or "dynamic query
expression".
I think the docs are clear enough in this case, with multiple examples, and you are overthinking. Test with your files and check the console log to see the results and experiment yourself.

GENRE IS #GENRE# -> (GENRE IS Psychedelic Rock) AND (GENRE IS Hard Rock)
GENRE IS #GENRE# AND NOT (%rating% EQUAL 2 OR %rating% EQUAL 1) ->  ((GENRE IS Psychedelic Rock) AND (GENRE IS Hard Rock))  AND NOT (%rating% EQUAL 2 OR %rating% EQUAL 1)

What is a dynamic variable is clearly stated in the readme. Standard query, as the name implies, clearly are native/usual/standard queries XD
And dynamic queries, obviously, are queries with dynamic variables.

Quote
3. Is it possible change the text of the buttons?
It's possible on the customizable buttons which already show such option. What you see is what you get.

I plan to add an icon-only mode, but I don't see the point on renaming generic buttons (it would be like renaming the main File menu to other thing).

Quote
4. When all the buttons don't fit in the SMP panel, the row of buttons changes from this
Color switches to white? I can not reproduce that in any way. Please provide me a gif showing it, your OS, SMP version and foobar version. (And I assume it's in DUI)

I don't really have time to explain basic things, I have spent a lot of time creating the readmes and making thing as intuitive as possible. So please, test things by yourself, read the docs, test things again and only if you have specific questions to achieve X, I can help. If you find something not properly explained, let me know. But don't expect me to guide you on every step when you can learn by doing.

While I understand some people doesn't have much experience with these things, a high number of your questions are answered at the docs most of the times.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-02-01 18:02:19
Quote
How do we change the queries that are used, for example, in Quicksearch>Same date (where I'd like one to show "Same ORIGINAL RELEASE DATE")
Have added a readme for Quicksearch (previously it shared the dynamic queries readme). And now it point users to use Dynamic Queries at Playlist Tools for customized entries.

Code: [Select]
Tool similar to foo_quicksearch, which allows searching for tracks with
same tag values, beginning with them or by partial matching. Results may
be sent to a playlist, Autoplaylist or search window using keyboard
modifiers (shown on the tool).

Original foo_quicksearch:
https://www.foobar2000.org/components/view/foo_quicksearch

Buttons usage:
- Entries are hardcoded.
- By default sends results to a [configurable] playlist.
- Shift sends results to search window.
- Ctrl creates an Autoplaylist with the result.
- To add customized entries, use Playlist Tools\Dynamic queries.

Original foo_quicksearch only allowed exact matches by queries, but
this tool allows two additional modes:
- Begins with...:
Will match any track starting with the original value.
For ex. 'Begins with Genre' would allow 'Jazz' and 'Jazz
Vocal' in results, when selecting a jazz track since all
start with 'Jazz' string on the genre tag. This method is
pretty situationaland probably most used for Title tags.

- Partial match...:
Expands the previous method, allowing any result which
matches any portion of the string. For ex. 'Begins with
Title', for a track named 'Yesterday' would output tracks
named 'Yes', 'Y', 'Yesterday', 'Yesterdays', ...

This tool uses Dynamic Queries under the hood. Readme may be found
at 'Others\Dynamic queries' or at Playlist Tools button.

There is a reason I didn't add customizable entries there, because the Begins with and Partial match menus are dynamically created with the other entries, and letting users to add their own queries would break them in many cases (due to users not knowing how to properly set such queries). There is no such problem at Playlist Tools\Dynamic Queries. I will think a way allowing customization while limiting stupid queries to be processed on the Begins with/partial match modes.

There is a way to remap all tags (at 'FOOBAR PROFILE FOLDER]\js_data\presets\global'), globally in all tools, but will not bother explaining it until I release a new official version. Look for it if you wanna, but don't expect more help on that side.
Title: Re: Playlist-Tools-SMP
Post by: InchPerfect on 2023-02-02 11:30:46
I don't really have time to explain basic things, I have spent a lot of time creating the readmes and making thing as intuitive as possible. So please, test things by yourself, read the docs, test things again and only if you have specific questions to achieve X, I can help. If you find something not properly explained, let me know. But don't expect me to guide you on every step when you can learn by doing.

While I understand some people doesn't have much experience with these things, a high number of your questions are answered at the docs most of the times.
Understood, regor. Fair enough. It just that I don't understand most of what I read in the docs. I'll keep trying though.
Title: Re: Playlist-Tools-SMP
Post by: InchPerfect on 2023-02-02 12:27:03
Quote
4. When all the buttons don't fit in the SMP panel, the row of buttons changes from this
Color switches to white? I can not reproduce that in any way. Please provide me a gif showing it, your OS, SMP version and foobar version. (And I assume it's in DUI)
Windows 11 Home - Version 22H2
SMP 1.6.1
Foobar2000 v2.0 beta 24

Gif attached
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-02-02 12:38:27
Quote
4. When all the buttons don't fit in the SMP panel, the row of buttons changes from this
Color switches to white? I can not reproduce that in any way. Please provide me a gif showing it, your OS, SMP version and foobar version. (And I assume it's in DUI)
Windows 11 Home - Version 22H2
SMP 1.6.1
Foobar2000 v2.0 beta 24

Gif attached
That looks an SMP or DUI bug. Or maybe some kind of v2 problem or Windows 11. XD But let's investigate. Show me these settings:
X

Shift + Win + R. Click -> Configure panel\Appearance. Show me the window.

On CUI, weird things happen with pseudo-transparency enabled on standard panels if background is not painted. Just checked. Maybe it's the same on DUI (?) The panel caption is shown below the actual panel background, even if the layout has been set to hide captions. So well that's a CUI bug or SMP is doing weird things on transparency mode. Will report it.
X
Title: Re: Playlist-Tools-SMP
Post by: InchPerfect on 2023-02-02 12:39:39
Quote
Original foo_quicksearch only allowed exact matches by queries, but
this tool allows two additional modes:
   - Begins with...:
      Will match any track starting with the original value.
      For ex. 'Begins with Genre' would allow 'Jazz' and 'Jazz
      Vocal' in results, when selecting a jazz track since all
      start with 'Jazz' string on the genre tag. This method is
      pretty situationaland probably most used for Title tags.
   
   - Partial match...:
      Expands the previous method, allowing any result which
      matches any portion of the string. For ex. 'Begins with
      Title', for a track named 'Yesterday' would output tracks
      named 'Yes', 'Y', 'Yesterday', 'Yesterdays', ...

Not sure why you write "Begins with" in the Partial match section? The only options in Partial match are things like "By title".
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-02-02 12:43:37
Not sure why you write "Begins with" in the Partial match section? The only options in Partial match are things like "By title".
Because it's a typo XD
Quote
   - Partial match...:
      Expands the previous method, allowing any result which matches
      any portion of the string. For ex. 'Partial match by Title', for a
      track named 'Yesterday' would output tracks named 'Yes', 'Y',
      'Yesterday', 'Yesterdays', ...
Title: Re: Playlist-Tools-SMP
Post by: InchPerfect on 2023-02-02 12:44:46
Show me these settings:
(https://i.imgur.com/ozGhhvM.png)

Shift + Win + R. Click -> Configure panel\Appearance. Show me the window.
(https://i.imgur.com/xCz9Ioe.png)
Title: Re: Playlist-Tools-SMP
Post by: InchPerfect on 2023-02-02 12:45:16
Quote
Original foo_quicksearch only allowed exact matches by queries, but
this tool allows two additional modes:
   - Begins with...:
      Will match any track starting with the original value.
      For ex. 'Begins with Genre' would allow 'Jazz' and 'Jazz
      Vocal' in results, when selecting a jazz track since all
      start with 'Jazz' string on the genre tag. This method is
      pretty situationaland probably most used for Title tags.
   
   - Partial match...:
      Expands the previous method, allowing any result which
      matches any portion of the string. For ex. 'Begins with
      Title', for a track named 'Yesterday' would output tracks
      named 'Yes', 'Y', 'Yesterday', 'Yesterdays', ...

Not sure why you write "Begins with" in the Partial match section? The only options in Partial match are things like "By title".
Because it's a typo XD
Ha. XD
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-02-02 12:46:42
The 3, not only colors. All 3 submenus on the circle.

How do you have black background on the panel without transparency? Did you manually changed the color on the menus? (set custom bar color)
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-02-02 12:53:37
Ok. Found it. When you set the bar color manually, it uses the sys colours if buttons are bigger than the window width.

It was a fix for something on CUI I don't remember anymore (on toolbar panels), but it clearly breaks standard panels. Should be fixed in a few hours, if you download the scripts.

Btw, how it looks with pseudotransparency (after restoring default colors at 'Colors\Reset...')?

Anyway, the bug at top on CUI still applies.
Title: Re: Playlist-Tools-SMP
Post by: InchPerfect on 2023-02-02 12:53:52
Sorry. Shouldn't have posted this before reading your other reply ...

The 3, not only colors. All 3 submenus on the circle.
OK. Hang on a sec.

How do you have black background on the panel without transparency? Did you manually changed the color on the menus? (set custom bar color)
Yeah. I did try and change the colours, but I honestly can't remember which one(s) I changed. I remember successfully changing the button text colour to light grey, while the buttons were still white, and then I was trying to figure out how to change the colour of the buttons. Then I clicked "No background buttons" and got the result you see there and I was happy so sort of forgot what I'd done.
Title: Re: Playlist-Tools-SMP
Post by: InchPerfect on 2023-02-02 12:56:56
Btw, how it looks with pseudotransparency (after restoring default colors at 'Colors\Reset...')?

(https://i.imgur.com/xrkqBNe.png)

I should add that yes, I'm using default UI.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-02-02 13:01:16
Btw, how it looks with pseudotransparency (after restoring default colors at 'Colors\Reset...')?

(https://i.imgur.com/xrkqBNe.png)

I should add that yes, I'm using default UI.
I don't really understand how DUI with pseudotransparency doesn't show black backgrounds... if you are using a dark theme, I thought it should show a dark background too. Or maybe you have to change something more on the UI colors.

Anyway at least DUI doesn't have the caption bug present on CUI. And the panel color will work properly on a few hours, so no problem.
Title: Re: Playlist-Tools-SMP
Post by: InchPerfect on 2023-02-02 13:07:14
Btw, how it looks with pseudotransparency (after restoring default colors at 'Colors\Reset...')?

(https://i.imgur.com/xrkqBNe.png)

I should add that yes, I'm using default UI.
I don't really understand how DUI with pseudotransparency doesn't show black backgrounds... if you are using a dark theme, I thought it should show a dark background too. Or maybe you have to change something more on the UI colors.

Anyway at least DUI doesn't have the caption bug present on CUI. And the panel color will work properly on a few hours, so no problem.
I wouldn't know. Will download the scripts in a few hours; thanks.

Nice and easy to get my colours back how I wanted them:

(https://i.imgur.com/8ChIR3l.png)

(In fact it's better than before because I bothered to use a colour picker and set the font to 192,192,192.
Title: Re: Playlist-Tools-SMP
Post by: InchPerfect on 2023-02-02 14:04:45
Quote
1. How do we change the queries that are used, for example, in Quicksearch>Same date (where I'd like one to show "Same ORIGINAL RELEASE DATE") or in Playlist Tools>Top rated from 2023?
- You don't. Use Playlist Tools/Dynamic queries for that, where you can add and save your own expressions.
- Use 'from year entry...' No need at all to complicate it with custom entries. You don't like that, add a 'search top tracks from date' button and configure the date.

I'm really sorry to have to ask this but how do I configure the date?

I'm not sure if I need to edit the buttons_search_top_tracks_from_date.js file in Notepad++? Look daunting.

That file says at the top "You can configure the number of tracks at properties panel" so perhaps that's where I need to be looking but I can't for the life of me figure out what/where is the properties panel?

And I don't understand what
Quote
'Use from year entry...'
means.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-02-02 16:31:14
Quote
1. How do we change the queries that are used, for example, in Quicksearch>Same date (where I'd like one to show "Same ORIGINAL RELEASE DATE") or in Playlist Tools>Top rated from 2023?
- You don't. Use Playlist Tools/Dynamic queries for that, where you can add and save your own expressions.
- Use 'from year entry...' No need at all to complicate it with custom entries. You don't like that, add a 'search top tracks from date' button and configure the date.

I'm really sorry to have to ask this but how do I configure the date?

I'm not sure if I need to edit the buttons_search_top_tracks_from_date.js file in Notepad++? Look daunting.

That file says at the top "You can configure the number of tracks at properties panel" so perhaps that's where I need to be looking but I can't for the life of me figure out what/where is the properties panel?

And I don't understand what
Quote
'Use from year entry...'
means.
Read the tooltip of the button...
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-02-03 10:21:16
On CUI, weird things happen with pseudo-transparency enabled on standard panels if background is not painted. Just checked. Maybe it's the same on DUI (?) The panel caption is shown below the actual panel background, even if the layout has been set to hide captions. So well that's a CUI bug or SMP is doing weird things on transparency mode. Will report it.
[attach type=image]24598[/attach]
Reported here.
https://github.com/reupen/columns_ui/issues/658
Title: Re: Playlist-Tools-SMP
Post by: InchPerfect on 2023-02-03 12:50:35
Read the tooltip of the button...
Sorry again. That was particularly lax of me. I've got it now, thanks.

1) But re this:
Quote
1. How do we change the queries that are used, for example, in Quicksearch>Same date (where I'd like one to show "Same ORIGINAL RELEASE DATE") or in Playlist Tools>Top rated from 2023?
- You don't. Use Playlist Tools/Dynamic queries for that, where you can add and save your own expressions.
- Use 'from year entry...' No need at all to complicate it with custom entries. You don't like that, add a 'search top tracks from date' button and configure the date.
I don't understand what
Quote
'Use from year entry...'
means?

And "No need at all to complicate it with custom entries." Complicate what? What do you mean by custom entries? Somehow I nearly always struggle to understand your English. That's part of what makes reading the docs so hard. I don't mean that rudely, at all; it's staggering how much effort you've put into the readmes and docs, purely out of the kindness of your heart. I just don't understand most of it XD.

2) Regarding the 'search top tracks from date' button, is that searching for the date the track was played or the date in the date (year) field? I thought it was the latter, but if it is, it's not working. I get no results if I change the year to 2021, for example.

3) Oh, and thanks very much for fixing the buttons going white. All good now.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-02-03 13:23:31
1) Most tools work the same, with an entry for arbitrary inputs.
Spoiler (click to show/hide)

English is not my native language but I really doubt that's the only problem.

If you don't understand what  "custom entries" mean in a tool which has like 10 sub-menus which explicitly alloy you to edit/remove/create new entries... while even the menus are named like that... XD
Spoiler (click to show/hide)

I mean, if you point me to specific parts of my docs where things are confusing or not consistent is ok, and I will fix it. But most of your questions are always answered by "read the docs" or "spend 5 mins reading all the menu entries".

Then I would say custom entries, custom menu entries, user entries, .... are pretty equivalent.  :o  Things must be put in some context. If we are talking about a menu.... entries can only reference menu entries. The entire phylosophy of Playlist Tools is about customization. This is clearly shown on the web: (which explicit talks about customizing entries and dynamic queries btw)
https://github.com/regorxxx/Playlist-Tools-SMP
 
In the playlist manager the entire pdf has multiple images related to the texts, with even captions for every image. No problem on my side with your critics and comments though, but I really think you should take another approach to trying these tools and thinking a bit out of the box.

2) Again, read the tooltip or the docs... Top 40 tracks from 2021 is most played 40 tracks during 2021... if you have not statistics on 2021, then nothing is shown.
Readme:
Quote
Search n most played tracks from a given period on library. Sorting
is done by play count by default.
Tooltip:
Spoiler (click to show/hide)
Title: Re: Playlist-Tools-SMP
Post by: InchPerfect on 2023-02-03 13:42:07
2) Again, read the tooltip or the docs... Top 40 tracks from 2021 is most played 40 tracks during 2021... if you have not statistics on 2021, then nothing is shown.
Quote
Search n most played tracks from a given period on library. Sorting
is done by play count by default.
[attach type=image]24610[/attach]
Got it. I took "given period" to mean the date of the release not the date it was played.
Title: Re: Playlist-Tools-SMP
Post by: InchPerfect on 2023-02-03 13:42:46
1) After I click the 'Show duplicates' button (which is great, thank you), how do I get the original playlist back?

I can't see any way to 'undo' Show duplicates.

2) The Playlist Tools tootip says "Ctrl + L Click to copy menu names to clipboard" but when I Ctrl + L. Click, it just brings up this:
(https://i.imgur.com/ho2NBcP.png)

and nothing is copied to the clipboard.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-02-03 14:00:27
Quote
And "No need at all to complicate it with custom entries." Complicate what?

Quote
1. How do we change the queries that are used, for example, in Quicksearch>Same date (where I'd like one to show "Same ORIGINAL RELEASE DATE") or in Playlist Tools>Top rated from 2023?
You asked to edit a menu entry. And my answer was spot on: there is no need for custom entries, when you have an option to arbitrarily create a playlist for a given year or period. When you have like 12 options for different years, and one for arbitrary input... I see no need to complicate things even more, allowing to edit the list of options with customized ones (like other menus).
Spoiler (click to show/hide)

Specially because no one should be creating Top Rated from 1983 Playlists every day XD For things used frequently it makes sense to create custom entries, for a thing which will be used a few times... just use the 'From year...' entry. Can not think in a use-case -not covered in other way- which justifies spending my time on that.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-02-03 14:03:32
2) Again, read the tooltip or the docs... Top 40 tracks from 2021 is most played 40 tracks during 2021... if you have not statistics on 2021, then nothing is shown.
Quote
Search n most played tracks from a given period on library. Sorting
is done by play count by default.
[attach type=image]24610[/attach]
Got it. I took "given period" to mean the date of the release not the date it was played.

There is no need at all to create a button or tool for that, since you can do it by yourself with standard queries.
It makes no sense to display most played tracks from all your listening history with %DATE% = 2020. Just retrieve all most played tracks and filter by %DATE% by yourself XD

I mean... I have created tools to either simplify native foobar usage or extend it, but not to replicate whatever already exists. That would be spending my time and yours.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-02-03 14:10:31
1) After I click the 'Show duplicates' button (which is great, thank you), how do I get the original playlist back?

I can't see any way to 'undo' Show duplicates.

2) The Playlist Tools tootip says "Ctrl + L Click to copy menu names to clipboard" but when I Ctrl + L. Click, it just brings up this:

and nothing is copied to the clipboard.
1) Ctrl + Z  and Undo works fine on my side, so not sure what's your problem. (?) Again this is native foobar behavior...
Spoiler (click to show/hide)

2) ? Obviously it shows the menu, and you have to click on an entry. XD How are you supposed to copy an entry name if you don't click on the desired one?

Quote
Got it. I took "given period" to mean the date of the release not the date it was played.
Spoiler (click to show/hide)
Can not be more specific than that I think.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-02-03 14:29:32
Most played tracks from...
Code: [Select]
Search n most played tracks from a given period on library. Sorting 
is done by play count by default (requires foo_playcount and
foo_enhanced_playcount plugins).

In other words, 'Most played from 2022' will display the most played
tracks during 2022 (not with %DATE% equal to 2022!). This is similar
to Spotify playlists showing you the most played tracks in last year
but here extended to any date or desired period.

Duplicates by title - artist - date are removed, so it doesn't
output the same tracks multiple times like an auto-playlist does
(if you have multiple versions of the same tracks or albums).
Improved the readme to make sure no one gets confused again with this..

Top Rated tracks from...
Code: [Select]
Search n most rated tracks on library. Sorting is done by play
count by default (requires foo_playcount plugin).

In other words, 'Top rated from 2022' will display the tracks with
highest rating with %DATE% equal to 2022 (not rated during 2022,
since there is no way to know when the user added a rating!).

Duplicates by title - artist - date are removed, so it doesn't
output the same tracks multiple times like an auto-playlist does
(if you have multiple versions of the same track).
Title: Re: Playlist-Tools-SMP
Post by: InchPerfect on 2023-02-03 14:33:03
1) Ctrl + Z  and Undo works fine on my side, so not sure what's your problem. (?) Again this is native foobar behavior...
Ah I see. I didn't know you had to immediately undo it. I ran it yesterday on a big playlist I'd spent quite a lot of time making. Then just saw today that it only had 8 tracks in it. Too late to undo.

It's OK; I had a backup. But I wonder if it's worth mentioning in the readme?

2) ? Obviously it shows the menu, and you have to click on an entry. XD How are you supposed to copy an entry name if you don't click on the desired one?
D'oh! I thought it was going to copy all of them XD. I see - it's so we don't have to type it all out if we want to mention it here, for example. Whoops.

Spoiler (click to show/hide)
Can not be more specific than that I think.
Yep. My bad yet again.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-02-03 14:41:29
Quote
It's OK; I had a backup. But I wonder if it's worth mentioning in the readme?
No. That's how foobar works. You can not expect undo state to be saved between sessions. If you don't undo a thing when you should then it's your fault, not mine or the docs.

I will not add a warning about something which is in no way related to my scripts and which could change any day by the foobar developer.

I mean, if you delete all your playlists and close foobar. Then on the next session you can not restore them XD Should I also add a note about that on the readme? No. It's the same. It's not related at all to my scripts but the user properly using the software, making backups by theirself or using an auto-backup plugin.

I added undo support (other tools or scripts don't) and that's all on my side for a proper implementation.

Quote
D'oh! I thought it was going to copy all of them XD. I see - it's so we don't have to type it all out if we want to mention it here, for example. Whoops.
For what? XD That's nonsense. Why the hell would someone want to copy all menu entries? XD That feature is not thought for copying things to the forum, even if it can be used for that. If you don't need that feature, just forget about it. And since you don't even know what is used for (macros and CMD), just forget about it.
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2023-02-03 19:11:52
With the last update, I noticed that replaygain is now disable in auto tags. In the application, the scanner works like always.

Also, there is a new "folksonomy" entry, also disable. Is a work in progress or i need to install some additional resource?

I'm in v2 beta right now.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-02-03 19:18:50
With the last update, I noticed that replaygain is now disable in auto tags. In the application, the scanner works like always.

Also, there is a new "folksonomy" entry, also disable. Is a work in progress or i need to install some additional resource?

I'm in v2 beta right now.
Folksonomy is work in progress. It will be used along picard 'retrieve genre tags' option, and the multiple databases of my scripts (like the world map database). It then will calculate some folksonomy tags with fancy conditions (like 'Instrumental', 'European', etc.).

ReplayGain works here. So maybe it's related to foobar v2. In V1 it requires foo_rgscan which is installed on the base, it probably was merged on V2. Could you check?
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2023-02-03 19:22:08
With the last update, I noticed that replaygain is now disable in auto tags. In the application, the scanner works like always.

Also, there is a new "folksonomy" entry, also disable. Is a work in progress or i need to install some additional resource?

I'm in v2 beta right now.
Folksonomy is work in progress. It will be used along picard 'retrieve genre tags' option, and the multiple databases of my scripts (like the world map database). It then will calculate some folksonomy tags with fancy conditions (like 'Instrumental', 'European', etc.).

ReplayGain works here. So maybe it's related to foobar v2. In V1 it requires foo_rgscan which is installed on the base, it probably was merged on V2. Could you check?

Sound good this folksonomy thing.

In my v2 instalation there is not a foo_rgscan.dll, only the configuration file
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-02-03 19:36:53
Love V2.... XD

Fixed. (https://github.com/regorxxx/Playlist-Tools-SMP/blob/9a92eb204a636ec96344a0360e340839b6b72f23/main/tags/tags_automation.js)
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2023-02-03 20:07:38
Love V2.... XD

Fixed. (https://github.com/regorxxx/Playlist-Tools-SMP/blob/9a92eb204a636ec96344a0360e340839b6b72f23/main/tags/tags_automation.js)

Maybe with a SMP_64 we will start to love it.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-02-04 09:44:50
hahaha sure. At least now that tag cache is back again.
Although I'm missing a few other components too.

Have just uploaded another fix which made harmonic mixing (at playlist manipulation) to not be available due to a typo on file paths.

And in the process I added harmonic mixing in place for selection at advanced sorting (previously, there was only the option to create a new playlist). Works with non contiguous selections too (and not "mixed" tracks are put at the end randomly).
Spoiler (click to show/hide)
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-02-08 16:43:20
Some time ago I added a icons-only mode, which hopefully I have finally completed today.

Spoiler (click to show/hide)
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2023-02-08 20:05:31
(https://i.imgur.com/e7u7iNV.png)

How do you put the buttons in a toolbar?
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-02-08 23:57:43
CUI only. Its on the readme pdf.
Title: Re: Playlist-Tools-SMP
Post by: mjm716 on 2023-02-09 04:29:51
on FB1.6.16 SMP 1.6.1 and fresh panel:

playlist tools button appears, and clicking presents the submenu, but then I always get this error:

Code: [Select]
Error: Spider Monkey Panel v1.6.1 (Playlist Tools: Button: Playlist Tools: Button v3.0.0-beta13 by XXX)
FbMetadbHandleList_Constructor failed:
allocation size overflow

File: search_bydistance.js
Line: 253, Column: 21
Stack trace:
  updateCache/styleGenres</<@search_bydistance.js:253:21
  updateCache/styleGenres<@search_bydistance.js:251:20
  updateCache@search_bydistance.js:242:30
  _menu/this.btn_up@menu_xxx.js:284:101
  ["Playlist Tools"]<@buttons_playlist_tools.js:53:9
  themedButton/this.onClick@buttons_xxx.js:274:21
  @buttons_xxx.js:447:21
  fireEvents/</<@callbacks_xxx.js:142:29
  fireEvents/<@callbacks_xxx.js:141:30
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-02-09 08:28:04
on FB1.6.16 SMP 1.6.1 and fresh panel:

playlist tools button appears, and clicking presents the submenu, but then I always get this error:

Code: [Select]
Error: Spider Monkey Panel v1.6.1 (Playlist Tools: Button: Playlist Tools: Button v3.0.0-beta13 by XXX)
FbMetadbHandleList_Constructor failed:
allocation size overflow

File: search_bydistance.js
Line: 253, Column: 21
Stack trace:
  updateCache/styleGenres</<@search_bydistance.js:253:21
  updateCache/styleGenres<@search_bydistance.js:251:20
  updateCache@search_bydistance.js:242:30
  _menu/this.btn_up@menu_xxx.js:284:101
  ["Playlist Tools"]<@buttons_playlist_tools.js:53:9
  themedButton/this.onClick@buttons_xxx.js:274:21
  @buttons_xxx.js:447:21
  fireEvents/</<@callbacks_xxx.js:142:29
  fireEvents/<@callbacks_xxx.js:141:30

Library size? Which version are you using? It sais beta 13, but that line doesn't exist at beta 13 XD
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-02-09 14:10:45
Need more info, on my tests I have been able to allocate handle list with more than 40 million items. So it's not only related to strict num of items on library, maybe memory usage or other variables.

Additionally, could you test this?
Code: [Select]
const libItems = fb.GetLibraryItems().Convert();
const max = 500;
const repeat = (arr, n) => [].concat(...Array(n).fill(arr));

for (let i = ; i <= max;) {
    const handleList = new FbMetadbHandleList(repeat(libItems, i || 1));
    console.log(handleList.Count);
    i += 50;
}

Report the last number on console log.
Title: Re: Playlist-Tools-SMP
Post by: mjm716 on 2023-02-09 16:49:28

Additionally, could you test this?

The script is the latest from your github (.15?), I think you still have an older version # in the script (.13?)

Is your test missing a i = value?

Error: Spider Monkey Panel v1.6.1 ({8FA83BE1-4C0A-4AB7-8000-254B1BF69DDE})
expected expression, got ';'

File: <main>
Line: 5, Column: 13
Source: for (let i = ; i <= max;) {


(please continue this via DM to avoid channel noise?)
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2023-02-10 13:18:16
I'm having small freezes in foobar every time I modified tags.

In the console there is message that say:
Code: [Select]
cacheTags: got ["$ascii($lower($trim(%TITLE%)))","$year(%DATE%)","%ARTIST%","%BPM%","%GENRE%","%KEY%","%MOOD%","%STYLE%","%TITLE%"] tags from X items
before the freezes.

Also, I have a panel crash followed by a player crash with a short message saying something about "out of memory". (too fast to saw more)

The crash dump and log are empty and console log last record is a "cacheTags"
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-02-10 14:36:24
I'm having small freezes in foobar every time I modified tags.

In the console there is message that say:
Code: [Select]
cacheTags: got ["$ascii($lower($trim(%TITLE%)))","$year(%DATE%)","%ARTIST%","%BPM%","%GENRE%","%KEY%","%MOOD%","%STYLE%","%TITLE%"] tags from X items
before the freezes.

Also, I have a panel crash followed by a player crash with a short message saying something about "out of memory". (too fast to saw more)

The crash dump and log are empty and console log last record is a "cacheTags"
You are using V2. And tags cache must be disabled now. That behavior was intended on old betas.

About the memory usage, once the cache is off, there should be no problems. There is no magic here, either we had speed or free ram. Can't have both.

This is the price you pay using beta  V2 ;)

I will upload a new version with it disabled by default, since new betas don't needed it unless people revert the native foobar caching. And then I will not support that anymore.

EDIT: For existing installations, set on your properties panel (on every panel with a Search by distance button):
"SBD_13.Read tags from cache instead of files?'" to false.

Also go to:
FOOBAR PROFILE FOLDER]\js_data\tagsCache\

And delete all json files.
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2023-02-10 15:36:57
The strange thing is that I had a lot of free RAM in the system when the panel pops up the message and crashed
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-02-10 15:39:35
The strange thing is that I had a lot of free RAM in the system when the panel pops up the message and crashed

That doesn't really work that way. Foobar v2 in 32 bits only uses 2 - 3 GB of ram. Maybe +3 (but less than 4) with some "hacks".

You may have 20 GB, only 2-3 will be used anyway. So whenever it reaches the max... it crashes. It's the same for any x32 software.
Then you also have an additional limit of ram per panel imposed by SMP.

Just follow the last steps and it will be fixed.
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2023-02-10 15:44:39
The strange thing is that I had a lot of free RAM in the system when the panel pops up the message and crashed

That doesn't really work that way. Foobar v2 in 32 bits only uses 2 GB of ram. Maybe 3 with some "hacks".

You may have 20 GB, only 2 will be used anyway. So whenever it reaches the max... it crashes. It's the same for any x32 software.
Then you also have an additional limit of ram per panel imposed by SMP.

Just follow the last steps and it will be fixed.

And that could be the reason why it crashes silently when I tried to tag, applied replaygain or essentia to a few thousands files at once?
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-02-10 18:41:22
The strange thing is that I had a lot of free RAM in the system when the panel pops up the message and crashed

That doesn't really work that way. Foobar v2 in 32 bits only uses 2 GB of ram. Maybe 3 with some "hacks".

You may have 20 GB, only 2 will be used anyway. So whenever it reaches the max... it crashes. It's the same for any x32 software.
Then you also have an additional limit of ram per panel imposed by SMP.

Just follow the last steps and it will be fixed.

And that could be the reason why it crashes silently when I tried to tag, applied replaygain or essentia to a few thousands files at once?
Dont' really think so, since a thousand of files should not use so much RAM.

I designed it to only re-analyze the tracks you changed, and other users have been testing it with me privately without problems. But who knows... it was meant to be used on V2 before tags were cached natively on beta 19. It's technically possible you were one of those already on the RAM limits, so on newer versions it would crash since it was effectively duplicating the amount of ram used at some points.

Told u I love V2 hahaha... it has been an error to make users to switch it without proper testing and warnings.
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2023-02-11 23:30:38

Dont' really think so, since a thousand of files should not use so much RAM.

I designed it to only re-analyze the tracks you changed, and other users have been testing it with me privately without problems. But who knows... it was meant to be used on V2 before tags were cached natively on beta 19. It's technically possible you were one of those already on the RAM limits, so on newer versions it would crash since it was effectively duplicating the amount of ram used at some points.

Told u I love V2 hahaha... it has been an error to make users to switch it without proper testing and warnings.

No idea, but every time I tried to make an operation in the whole library never finished. In the morning always find foobar crashed. (about 80.000 files). But it is not a new problem, so i learn to do things in batchs.

Anyway, the panel seems to work fine now.

thanks

Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-02-12 14:55:42
Btw, totally missed it. The configuration for it is at the tag remapping submenu. Both at the Playlist Tools button and the search by distance customizable button, as 'Read tags from cache...'

Added this warning now:
Quote
This feature should only be enabled on Foobar2000 versions >= 2.0 32 bit.'

Previous versions already cached tags values, thus not requiring it. Only enable it in case low memory mode is used, if better performance is desired. See:
https://wiki.hydrogenaud.io/index.php?title=Foobar2000:Version_2.0_Beta_Change_Log#Beta_20' +

Warning: it may behave badly on really big libraries (+100K tracks) or if thousands of tracks are tagged/edited at the same time.
If you experience crashes or RAM allocation failures, disable it.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-02-15 20:05:39
New release:
https://github.com/regorxxx/Playlist-Tools-SMP/releases/tag/v3.0.0-beta.16

Please read the instructions carefully.

As a bonus:
ListenBrainz tools (wip)
https://github.com/regorxxx/ListenBrainz-SMP
Title: Re: Playlist-Tools-SMP
Post by: InchPerfect on 2023-02-18 18:08:55
New release:
https://github.com/regorxxx/Playlist-Tools-SMP/releases/tag/v3.0.0-beta.16

Please read the instructions carefully.
Thank you!

I installed all three of your recent updates (not ListenBrainz tools yet). (I deleted old SMP panels and all scripts in foobar2000\profile\scripts\SMP\xxx-scripts first.)

Every time I start fb2k I get these popups.

Spoiler (click to show/hide)

Spoiler (click to show/hide)

They used to go away after the first run.

And I'm also getting this quite frequently (I press Continue rather than Stop script).

Spoiler (click to show/hide)

And lots of "Aww, crashed".  Once when I tried to rename a playlist. It was locked at the time, I realised later, so maybe that was it. I'll get screenshots of the crashes next time they happen.

Another time was when I created a new empty playlist. But I've just done that again without a problem.

There's nothing that's a big deal to me. Just reporting in case you'd like to know.
Title: Re: Playlist-Tools-SMP
Post by: Terence on 2023-02-18 20:18:31
Quote
Every time I start fb2k I get these popups.
I also have this with Search-by-Distance 4.0.0
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-02-18 23:49:49
Quote
Every time I start fb2k I get these popups.
I also have this with Search-by-Distance 4.0.0
You are not supposed to have them on every startup, just the first time you install the script. It has always been that way as you say.

So that points to a bugged install. I will test it on a blank install, because I am not able to replicate your problems. But please give me more details of which buttons are you loading and your current setup.

The unresponsive script is a "feature" of SMP. Ask its developer for a way to fully deactivate it (*) . Btw read this...
https://github.com/regorxxx/Playlist-Tools-SMP/wiki/Known-problems-or-limitations

Quote
And lots of "Aww, crashed".  Once when I tried to rename a playlist. It was locked at the time, I realised later, so maybe that was it. I'll get screenshots of the crashes next time they happen.
Don't really understand that problem or how it's related to the scripts (?).
Are you saying the panel crashes when renaming a locked playlist or entire foobar?
Although there is a bug on SMP with locked playlists, I doubt it's the same you are talking about.
Foobar v1 or v2=

Quote
Another time was when I created a new empty playlist. But I've just done that again without a problem.
Same, that doesn't seem to have nothing to do with Playlist Tools (?)

Are you using a bugged playlist manager or something?
https://github.com/TheQwertiest/foo_spider_monkey_panel/issues/198

(*) Really, please do it. I keep getting complains about this from every user which use some of my scripts, and I'm really tired of it since it's not my fault if something takes 4 secs to complete on big libraries.
Title: Re: Playlist-Tools-SMP
Post by: Terence on 2023-02-19 03:37:10
Quote
But please give me more details of which buttons are you loading and your current setup.
I just tried with a new portable installation foobar 2.0 beta 24 x86 DUI + Spider Monkey Panel v1.6.1 + Search-by-Distance v4.0.0 (from the releases page). The first time was with my main installation.

* right click > Readmes... > Toolbar does not load any file, "Called: Readmes...\Toolbar" appears in the console.

* right click > Restore default buttons crashes. Same configuration as above, I only have Search-by-Distance v4.0.0.
Spoiler (click to show/hide)

Sorry this is not the right topic and I'm interfering with your message InchPerfect.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-02-19 09:04:19
Quote
* right click > Readmes... > Toolbar does not load any file, "Called: Readmes...\Toolbar" appears in the console.
Confirmed. I added it to Playlist tools but not to Search by distance, so if you only download the second, it's missing.

In this case, please report things in the appropriate thread, since this would not belong to this thread then!

Quote
* right click > Restore default buttons crashes. Same configuration as above, I only have Search-by-Distance v4.0.0.
Confirmed too. This entry is not needed anymore since there are no default buttons now, I forgot to remove it. Will substitute it with an entry to reset all buttons' config.

Quote
close and restart foobar. The "check your library tags" and the 2 readme popups reappear. At each restart. It's like the first two InchPerfect screenshots.
Ok, this setting should be saved when closing foobar. That means that something is wrong at closing. Have to test it more, but looks like a SMP bug. The callback fires fine on panel reloading but it doesn't work when closing foobar.

In other words, if that's true, I can't do anything about it until SMP gets an update. Will try a workaround meanwhile
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-02-19 09:41:34
So... confirmed. It's a SMP bug.
https://github.com/TheQwertiest/foo_spider_monkey_panel/issues/205


Until I add a workaround, manually set the property to true and done.
X

EDIT: Will upload a hotfix asap, and until SMP gets a much needed update I will simply force the property to be switched 60 secs after installing the script for the first time.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-02-19 10:37:17
https://github.com/regorxxx/Playlist-Tools-SMP/releases/tag/v3.0.0-beta.17
Quote
### Added
- UI: added settings for buttons color (the border and filling).
- UI: added settings for buttons transparency (the filling).
### Changed
- Quicksearch: entries are now configurable. New ones may be added and existing ones edited. 'Partial match' and 'Begins with' entries are automatically created.
- 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
- Pools: duplicated 'Current genre/style and instrumentals' pool entry removed.
- 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).

@ InchPerfect that should solve the problems, the slow script is a SMP thing as noted above. Let me know about the playlists bugs, which don't seem related to my scripts.. but anyway.
Title: Re: Playlist-Tools-SMP
Post by: Terence on 2023-02-19 17:31:35
Thanks Regor. I tried the new Search by Distance 4.0.1 release and the three issues (https://hydrogenaud.io/index.php/topic,120978.msg1022817.html#msg1022817) seem to be fixed, or with a workaround.
Title: Re: Playlist-Tools-SMP
Post by: InchPerfect on 2023-02-19 21:26:04
The unresponsive script is a "feature" of SMP. Ask its developer for a way to fully deactivate it (*) . Btw read this...
https://github.com/regorxxx/Playlist-Tools-SMP/wiki/Known-problems-or-limitations

(*) Really, please do it. I keep getting complains about this from every user which use some of my scripts, and I'm really tired of it since it's not my fault if something takes 4 secs to complete on big libraries.
Done.

And thanks for letting us know about changing the warning threshold at Preferences/Advanced/Tools/Spider Monkey Panel. I've set it to 10 seconds. Let's see if that helps.
Title: Re: Playlist-Tools-SMP
Post by: InchPerfect on 2023-02-19 21:33:03
Quote
And lots of "Aww, crashed".  Once when I tried to rename a playlist. It was locked at the time, I realised later, so maybe that was it. I'll get screenshots of the crashes next time they happen.
Don't really understand that problem or how it's related to the scripts (?).
Are you saying the panel crashes when renaming a locked playlist or entire foobar?
Renaming a locked playlist. I don't know how to rename an enitre foobar or even what an entire foobar is XD.

But don't worry about it. It seems to be OK now.

Foobar v1 or v2=
Always v2.
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2023-02-20 10:53:50
I delete old files and install new versions.
In a panel I added a customizable SBD, playlist tools and search by distance predefines ones.
I made the changes in the customizable to mimic previous personal settings and change the name to SBD. The button was named sbd0 in the tooltip.
Then I reorder the buttons and sbd0 vanished and a new sbd1 was created (in default state).

After that, I got a panel crash.

Code: [Select]
Error: Spider Monkey Panel v1.6.2-dev+7c0928bf (Playlist Tools: Playlist Tools: Buttons Bar v3.0.0-beta.17 by XXX)
parent.buttonsProperties.bSortRandom is undefined

File: buttons_search_by_distance.js
Line: 121, Column: 1
Stack trace:
  buttonTooltipSbd@buttons_search_by_distance.js:121:1
  themedButton/this.descriptionWithID<@buttons_xxx.js:118:135
  themedButton/this.draw@buttons_xxx.js:271:15
  drawAllButtons@buttons_xxx.js:474:12
  @buttons_xxx.js:508:2
  fireEvents/</<@callbacks_xxx.js:148:37
  fireEvents/<@callbacks_xxx.js:145:30
It comes back every time I reload the panel



Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2023-02-20 11:16:38
Some artifacts in the menus

(https://i.imgur.com/KBeHHFz.png)
(https://i.imgur.com/dTQs46O.png)
(https://i.imgur.com/jtXZ06B.png)
(https://i.imgur.com/H1s5emS.png)
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-02-20 21:30:35
Quote
And lots of "Aww, crashed".  Once when I tried to rename a playlist. It was locked at the time, I realised later, so maybe that was it. I'll get screenshots of the crashes next time they happen.
Don't really understand that problem or how it's related to the scripts (?).
Are you saying the panel crashes when renaming a locked playlist or entire foobar?
Renaming a locked playlist. I don't know how to rename an enitre foobar or even what an entire foobar is XD.

But don't worry about it. It seems to be OK now.

Foobar v1 or v2=
Always v2.

XD yeah, that phrase didn't make any sense.
I wanted to say "if it was just the panel crashing or entire foobar crashing when doing X",

@paregistrase
As you could imagine, that's obviously not happening on windows XD So a Wine thing...

Now, as far as I know you didn't have such problems before (?) Nothing has changed on menus on my side since eons (so you should have experience the same problems on previous versions).
Did you changed the font or something? Those chars are supposed to be invisible. And they work fine on windows.

I know why it happens, but there is no workaround unless I simply discard all my menus framework.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-02-20 21:36:11
After that, I got a panel crash.
It only comes back when putting the mouse over the button, on tooltip creation. It's my fault. And will be fixed now. Not related to the other problem (it simply appeared for u after the properties were mixed).

The button loosing its config... can't reproduce it. I would need you to be able to reproduce it with specific steps in a blank panel (without properties from previous installations).
I think I misunderstood that part.
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2023-02-21 01:22:20
@paregistrase
As you could imagine, that's obviously not happening on windows XD So a Wine thing...

Now, as far as I know you didn't have such problems before (?) Nothing has changed on menus on my side since eons (so you should have experience the same problems on previous versions).
Did you changed the font or something? Those chars are supposed to be invisible. And they work fine on windows.

I know why it happens, but there is no workaround unless I simply discard all my menus framework.

It been around for a while but I supposed that there will be a wine specific and didn't report it before. I did now because starting fresh the first time I open the menu is clean. The second time the readme have squares but not the add button and before adding a button the add buttons have squares too. Then I start to pay attention and the squares also appeared in others menus and I decided to comment it.

The button loosing its config... can't reproduce it. I would need you to be able to reproduce it with specific steps in a blank panel (without properties from previous installations). I think I misunderstood that part.

Delete all panels. Close foobar. Delete js_data related. Open foobar. Add buttons bar. Add playlist tools. Add sbd custom. Modify some weights. Add search by distance predefined buttons.

Move playlist tools to 3. Move custom to 2.

The SBD custom sbd0 disappeared and it is replaced with a sbd1 in default state

Edit:

With the fix didn't crash so far, but the custom button still disappeared, changing position (by menu)

Edit two:

I speak too fast.

The pop-up of search by distance cache keep appearing after click yes and after 3 or 4 times crashes the panel. Now every reload gives the pop-up and crash after.

Code: [Select]
Error: Spider Monkey Panel v1.6.2-dev+7c0928bf (Playlist Tools: Playlist Tools: Buttons Bar v3.0.0-beta.17 by XXX)
properties.bAscii is undefined

File: search_by_distance.js
Line: 1894, Column: 4
Stack trace:
  findStyleGenresMissingGraphCheck@search_by_distance.js:1894:4

Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-02-21 08:27:41
The popup is meant to appear. It's stated on the changelog. It will be saved as "fired once" after 60 secs of installing a script. If it crashes before, then it is not saved. I did it on purpose in case the script crashes. So it's working. If you reload or crash the panel before 60 secs, then it's reset.

Will check your other problems. I played yesterday moving buttons without problems...
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-02-21 09:04:29
Quote
It been around for a while but I supposed that there will be a wine specific and didn't report it before. I did now because starting fresh the first time I open the menu is clean. The second time the readme have squares but not the add button and before adding a button the add buttons have squares too. Then I start to pay attention and the squares also appeared in others menus and I decided to comment it.
Essentially I use invisible chars after the visible text. They being visible may be due to your font (try changing it).

Then... maybe they don't appear the first time because some chars remain invisible. I could force it to only use those "compatible" chars on wine.

Try this on new panel, check console and report:
Quote
['\u200b','\u200c','\u200d','\u200e'],forEach(s => console.log(s));

In case they all work on console, I need to know exactly which font the menus are using.

Quote
Delete all panels. Close foobar. Delete js_data related. Open foobar. Add buttons bar. Add playlist tools. Add sbd custom. Modify some weights. Add search by distance predefined buttons.

Move playlist tools to 3. Move custom to 2.

The SBD custom sbd0 disappeared and it is replaced with a sbd1 in default state
Have added those 3 buttons, tweaked the customizable one and moved them multiple times without errors. Maybe you have not cleaned the properties of the panel before installing things? Try re-downloading the scripts again, I'm unable to reproduce it.
Spoiler (click to show/hide)
Then maybe save a gif (?)

PD: And this should fix the crash:
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2023-02-21 13:25:27
With the new buttons_search_by_distance.js the crash is gone.

About the sbd buttons.

I make this to trigger it.
In a new spider monkey panel.
Select the toolbar script
Adding a sbd custom buttom and rename it button0. It takes sbd0 in the tooltip header
Another sbd custom, named buttom1. It takes sbd1 in the tooltip
Now the predefined ones. they take sbd2 in the tooltip.
Changing position of predefined from 3 to 1, using the menu.
You must have predefined (sbd2), button0 (sbd0) and button1 (sbd1), but instead you get predefined (sbd0), button1 (sbd1) and a new sbd custom (sbd2) in default state
Moving the predefine ones to position 3 returns you to the original buttons, button0 (sbd0), button1 (sbd1) and predefined (sbd2)
Seems like the configuration is associated with a sbd id but the sbd id is given by the relative left to right position in the toolbar instead of the button itself?


About the menus:

In winecfg I have the default one (tahoma), in the foobar setting (Arial unicode MS) and in the panel I supposed that segoe UI because I didn't change anything in the spider monkey panel defaults setting.

Essentially I use invisible chars after the visible text. They being visible may be due to your font (try changing it).

Then... maybe they don't appear the first time because some chars remain invisible. I could force it to only use those "compatible" chars on wine.

Try this on new panel, check console and report:

['\u200b','\u200c','\u200d','\u200e'],forEach(s => console.log(s));

Not sure how to do that...
Add this line to the toolbar script? In a new spider monkey panel, paste that as script?
Anyway, in every place I put that, it crashes  ;D .

Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2023-02-21 17:01:01
['\u200b','\u200c','\u200d','\u200e'],forEach(s => console.log(s));

Waiting for further instructions using this unicodes in foobar fields only u200e produces a square with Tahoma, Arial Unicode MS

(https://i.imgur.com/hsmclr1.png)

With segoe ui all produces a strange symbol in the properties window but in the playlist didn't produce squares

(https://i.imgur.com/f3bwcjl.png)


Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-02-21 19:49:38
I think the code I sent you had a comma instead of a '.', so it crashed. sorry. It was meant to be used on a blank panel, yep.

I will send you by PM a little script with menus with those chars, maybe using only the first 3 will work. That doesn't imply rewriting a lot of code, and if it ensures better compatibility with Wine it's great.

I will test your new instructions, I think I got what your problem is now.

EDIT:
Quote
Adding a sbd custom buttom and rename it button0. It takes sbd0 in the tooltip header
Another sbd custom, named buttom1. It takes sbd1 in the tooltip
Now the predefined ones. they take sbd2 in the tooltip.
Changing position of predefined from 3 to 1, using the menu.
You must have predefined (sbd2), button0 (sbd0) and button1 (sbd1), but instead you get predefined (sbd0), button1 (sbd1) and a new sbd custom (sbd2) in default state
Moving the predefine ones to position 3 returns you to the original buttons, button0 (sbd0), button1 (sbd1) and predefined (sbd2)
Seems like the configuration is associated with a sbd id but the sbd id is given by the relative left to right position in the toolbar instead of the button itself?
Uhm yes XD
But is there something wrong? I mean, the tooltip id is only for informative purpose so if you have to backup or edit the properties by hand, you know where to look for. But it is in no way a permanent id. If you add new buttons, it may change. That's fine and it's that way by design!

I thought there was something wrong! If the button itself, no matter the id, maintains its config, then it's working as it should be. A button may have a different id at different positions.

This is because the properties are associated by order of load, and buttons are obviously loaded by order... so the third buttons uses the "third slot". If you move it at other position, it uses other slot. It's only relevant for copies of the same button (that's the prefix part). If you think about it, it makes sense. It would be much more difficult to associate an unique id to every button, which is permanent, using the same button files as reference. Note the way I coded the buttons allow multiple copies by design. That's not trivial, and it would be unnecessarily complex with permanent ids.

There is a setting to hide the id, is just for users with advanced needs.
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2023-02-21 20:19:10
I think the code I sent you had a comma instead of a '.', so it crashed. sorry. It was meant to be used on a blank panel, yep.

I will send you by PM a little script with menus with those chars, maybe using only the first 3 will work. That doesn't imply rewriting a lot of code, and if it ensures better compatibility with Wine it's great.

I will test your new instructions, I think I got what your problem is now.

EDIT:
Quote
Adding a sbd custom buttom and rename it button0. It takes sbd0 in the tooltip header
Another sbd custom, named buttom1. It takes sbd1 in the tooltip
Now the predefined ones. they take sbd2 in the tooltip.
Changing position of predefined from 3 to 1, using the menu.
You must have predefined (sbd2), button0 (sbd0) and button1 (sbd1), but instead you get predefined (sbd0), button1 (sbd1) and a new sbd custom (sbd2) in default state
Moving the predefine ones to position 3 returns you to the original buttons, button0 (sbd0), button1 (sbd1) and predefined (sbd2)
Seems like the configuration is associated with a sbd id but the sbd id is given by the relative left to right position in the toolbar instead of the button itself?
Uhm yes XD
But is there something wrong? I mean, the tooltip id is only for informative purpose so if you have to backup or edit the properties by hand, you know where to look for. But it is in no way a permanent id. If you add new buttons, it may change. That's fine and it's that way by design!

I thought there was something wrong! If the button itself, no matter the id, maintains its config, then it's working as it should be. A button may have a different id at different positions.

This is because the properties are associated by order of load, and buttons are obviously loaded by order... so the third buttons uses the "third slot". If you move it at other position, it uses other slot. It's only relevant for copies of the same button (that's the prefix part). If you think about it, it makes sense. It would be much more difficult to associate an unique id to every button, which is permanent, using the same button files as reference. Note the way I coded the buttons allow multiple copies by design. That's not trivial, and it would be unnecessarily complex with permanent ids.

There is a setting to hide the id, is just for users with advanced needs.

It is not only the tooltip name, the configuration not remains when the button change position.
In the example I give you,
Change the genre weight in buton0 to 5 and the genre weight of button1 to 1
Then change the position of the predefined from position 3 to position 1
The second button must have a genre weight of 5 but it gets 1
The third button must have a genre weight of 1 but it become a default one, without name and defaults values.
I lost the change of the first button until it will be in first position again.
If I have a predefined, a buton0 with weight 5 and a buton1 with weight 1 after reorder I didn't care about what is the internal id, but this is not the case right now.

Could be by design, but it is not what you expect when do a reorder of elements.

If the id will change with the position, the configuration will not be tied to the id. when you add a button it must have some unique value to associates with his configuration that didn't depend of his position.

Maybe saving the proprieties of the button in the configuration panel as <name you give to the button>. Internal data, etc instead of sbd0. Internal data, etc. and destroy them when the button is removed
And let the sdb0,1,etc to save the current position of a determined button.

In the intial positions
sdb0 will be button0
sbd1 button1
sbd2 predefined
Buton0.data and Button1.data values with his own configurations
Reordering will became in
sbd0 predefined
sbd1 button0
sbd2 button1
And load his respective configurations

This way the id that change with the position didn't determine the value that takes the button.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-02-21 20:40:18
I'm doing exactly that and it works fine here (?)
Check this (click on it):
Spoiler (click to show/hide)

No matter how many times I do it, config is fine. So either your installation is broken or we are missing some other variable here.

If you want to try other possible combinations of buttons or just sending me your profile folder maybe I can find what's going on. Have no idea.

Can someone else reproduce that problem?
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2023-02-21 21:34:23
I get something very different
https://streamable.com/idq78f

What specific files you need, because the profile folder is almost 2 GB xD

The js_data files?
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-02-21 21:47:59
I get something very different
https://streamable.com/idq78f

What specific files you need, because the profile folder is almost 2 GB xD

The js_data files?
That's different to what I was doing. You are using the menus, not drag n drop. That's why I ask for gifs, we usually miss important details.

EDIT: So drag n drop works 100% fine, it fails using menus. Have been able to reproduce it. Will fix it asap. Thanks :)
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-02-21 22:03:15
At xxx-scripts\buttons\helpers\

Works fine now on my side, confirm me if it works for u too and I will update github
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2023-02-21 22:08:02
I get something very different
https://streamable.com/idq78f

What specific files you need, because the profile folder is almost 2 GB xD

The js_data files?
That's different to what I was doing. You are using the menus, not drag n drop. That's why I ask for gifs, we usually miss important details.

EDIT: So drag n drop works 100% fine, it fails using menus. Have been able to reproduce it. Will fix it asap. Thanks :)

Yeah, drag n drop preserves the name and configuration.
Next time I will do a video the first time xD.
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2023-02-21 22:11:45
At xxx-scripts\buttons\helpers\

Works fine now on my side, confirm me if it works for u too and I will update github

Perfect.

Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-02-21 22:14:22
Great. Btw do you know you can click on the button when it says customize and it will directly ask you to put a name? No need to use the menus for that (the first time).

Also... you can save your current config at any time using 'Create recipe with current config' at the recipe menu. So can easily share the same config on different buttons or installations. It's saved to a file. You can also selectively save some settings to a file and overwrite others with the buttons menu.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-02-21 22:35:30
There you go, with 2 bug-fixes.
https://github.com/regorxxx/Playlist-Tools-SMP/releases/tag/v3.0.0-beta.18
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2023-02-21 23:01:24
I change the , in the code you give me
Code: [Select]
['\u200b','\u200c','\u200d','\u200e'].forEach(s => console.log(s));
The console shows
Code: [Select]




Spider Monkey Panel v1.6.2-dev+7c0928bf ({62FDD2E4-58B3-495B-AB5D-F221C38904D2}): initialized in 2 ms
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-02-21 23:21:41
I change the , in the code you give me
Code: [Select]
['\u200b','\u200c','\u200d','\u200e'].forEach(s => console.log(s));
The console shows
Code: [Select]




Spider Monkey Panel v1.6.2-dev+7c0928bf ({62FDD2E4-58B3-495B-AB5D-F221C38904D2}): initialized in 2 ms
Yep, the menu font is different to the console one. Not going to play with it until I found which font it is.. will simply create a menu script and find it directly, tomorrow :)
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2023-02-21 23:45:37
Yep, the menu font is different to the console one. Not going to play with it until I found which font it is.. will simply create a menu script and find it directly, tomorrow :)

Today the battle was brutal and bloody.....

Tomorrow more heads will fall

XD
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-02-22 19:57:07
New release:
https://github.com/regorxxx/Playlist-Tools-SMP/releases/tag/v3.0.0-beta.19

Fixes all instances of weird chars on Wine. Fonts are now configurable globally.
(also updated all other toolbar compatible scripts)
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-03-04 10:49:42
New release:
https://github.com/regorxxx/Playlist-Tools-SMP/releases/tag/v3.0.0-beta.20

Adds support Last-List-SMP. (https://hydrogenaud.io/index.php/topic,123759.msg1023368/topicseen.html#new)
Spoiler (click to show/hide)
Quote
## [3.0.0-beta.20] - 2023-03-04
### Added
- Last.fm: support for [foo-last-list-smp](https://github.com/L3v3L/foo-last-list-smp). Requires package to imported within SMP Package manager (no need to be active on a panel). Then add a new button as usual from the 'Last.fm' subfolder. Allows to create playlists from Last.fm urls either matching results with library or YouTube links (requires foo_youtube). It's not an exact clone of the original script, so some features may differ. It does not require a Last.fm account or token.
### Changed
- UI: tweaked and unified buttons weight and margins, adjusted to scale set and DPI.
- UI: minor improvements to readme sub-folders names.
- UI: cursor now changes when over a button.
- UI: cursor now changes while performing buttons drag n' drop. It now clearly indicates when a move is allowed or it's outside the allowed range.
- UI: drag n' drop now only works when the mouse is over a button position. i.e. both the functionality and position rectangle are disabled if the mouse is not on a valid position. Previously moving the button to a blank part of the bar would have simply sent it to the first/last position for ex. This is disallowed now, which makes drag n' drop a bit more intuitive and offers an overall more cohesive experience. It also respects orientation and reflow settings.
- Internal code cleanup of menus.
### Removed
### Fixed
- UI: minor improvements to drag n drop behavior when mouse remains static and R. Click is released. Panel is redrawn immediately instead of waiting to move the mouse, current button remains hovered.
- UI: minor improvements to drag n drop behavior when R. Click menu is called in rapid succession. Panel is redrawn on the background now.
- Select...\Delete selected tracks: didn't allow undo.
- Select...\Delete Non selected tracks: didn't allow undo.
- Console: logging of null value not working properly (totally irrelevant except for debug purposes).
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-03-04 17:02:36
https://github.com/regorxxx/Playlist-Tools-SMP/releases/tag/v3.0.0-beta.21
Quote
## [3.0.0-beta.21] - 2023-03-04
### Added
### Changed
- Last.fm: renamed button to 'buttons_lastfm_tools.js'. There is no need to do anything user-side on previous installations, it's automatically handled on first load after updating.
- Last.fm: added button to one of the default presets ('ListenBrainz & Last.fm') on empty toolbars.
### Removed
### Fixed
- UI: png icons now use a dark-mode version (if available) or get inverted according to the button text color configuration.
- Last.fm: missing icon file.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-03-04 19:14:42
Not going to create another release now, but just added bio tag retrieval (from wikipedia, allmusic and last.fm) to Last.fm tools, so the sub-menus show both the file tags and bio tags. (it's on the last commit)
Spoiler (click to show/hide)

EDIT: now has its own page with minimal installation instructions and features. Also explaining the original button and mine may differ on some features.
https://regorxxx.github.io/foobar2000-SMP.github.io/scripts/lastfm-smp/
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2023-03-04 20:10:20
Not going to create another release now, but just added bio tag retrieval (from wikipedia, allmusic and last.fm) to Last.fm tools, so the sub-menus show both the file tags and bio tags. (it's on the last commit)

It seems to work only with tag presents in files.
The elements in the last.fm and listenbrainz playlist didn't show any tag besides Bio panel is displaying info related.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-03-04 21:51:17
Not going to create another release now, but just added bio tag retrieval (from wikipedia, allmusic and last.fm) to Last.fm tools, so the sub-menus show both the file tags and bio tags. (it's on the last commit)

It seems to work only with tag presents in files.
The elements in the last.fm and listenbrainz playlist didn't show any tag besides Bio panel is displaying info related.

? You have to obviously set bio panel to use current selection -not now playing-, otherwise it can not work. Works fine on my side, so unless you give more info...

And I have not said anything about listenbrainz.
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2023-03-04 22:13:38
? You have to obviously set bio panel to use current selection -not now playing-, otherwise it can not work. Works fine on my side, so unless you give more info...

And I have not said anything about listenbrainz.

Yeah, is only for the last.fm button.
I was talking about the elements in the playlist generated for last.fm, listenbrainz or youtube that are not in the library.
Any of them display tag info in the last.fm button, but they have info for bio panel available.
Maybe I understand it wrong or I'm not doing something correctly.
Here is a video:
https://streamable.com/3w3y8d
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-03-04 22:27:35
? You have to obviously set bio panel to use current selection -not now playing-, otherwise it can not work. Works fine on my side, so unless you give more info...

And I have not said anything about listenbrainz.

Yeah, is only for the last.fm button.
I was talking about the elements in the playlist generated for last.fm, listenbrainz or youtube that are not in the library.
Any of them display tag info in the last.fm button, but they have info for bio panel available.
Maybe I understand it wrong or I'm not doing something correctly.
Here is a video:
https://streamable.com/3w3y8d
I still don't understand what's the problem. Your video clearly shows bio tags on the button for the first track as I have stated it will do.

If the bio panel doesn't report tags, it takes some seconds or track has not tags, that's not my fault (you may ask at the Bio thread). You are supposing Bio report tags immediately, which is not true. Can not expect to retrieve tags from internet on less than 1 sec as you do.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-03-04 22:59:42
Added bio tags state to the tooltip, which now displays if nothing has been found yet.
Also world-map-SMP 'country' tag support (i.e. reading from database, even for not found artists by Bio panel).
Spoiler (click to show/hide)
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2023-03-04 23:03:18
? You have to obviously set bio panel to use current selection -not now playing-, otherwise it can not work. Works fine on my side, so unless you give more info...

And I have not said anything about listenbrainz.

Yeah, is only for the last.fm button.
I was talking about the elements in the playlist generated for last.fm, listenbrainz or youtube that are not in the library.
Any of them display tag info in the last.fm button, but they have info for bio panel available.
Maybe I understand it wrong or I'm not doing something correctly.
Here is a video:
https://streamable.com/3w3y8d
I still don't understand what's the problem. Your video clearly shows bio tags on the button for the first track as I have stated it will do.

If the bio panel doesn't report tags, it takes some seconds or track has not tags, that's not my fault (you may ask at the Bio thread). You are supposing Bio report tags immediately, which is not true. Can not expect to retrieve tags from internet on less than 1 sec as you do.

Yeah, I take that in consideration and download the bio from this files in bio befor doing the video.
For me is only showing the file tag.
In the next I show you with Aghast Manor - Gaslights tags.

We will tray with and example for an album with tags and bio downloaded.

The files have the following tags:
Genre : Electronic
Style : Dark Ambient; Dark Wave
Artist Genre Last.fm : Dark Ambient; Dark Wave; Industrial; Ambient
Album Genre Last.fm : Dark Wave; Ambient

The bio panel have:
Top Tags: Dark Ambient​, Darkwave​, Andrea Nebel​, Industrial​, Ambient

The last.fm button for one file must shown the file tags + bio tags

So Electronic, Dark Ambient; Dark Wave, Industrial; Ambient, Darkwave​, Andrea Nebel​

But it not showing any bio tag, only the ones from the file.

If I remove the file tags, (I let the discogs one because it didn't search for it) the button must show tags from bio...

but it doesn't show any tag.

Here:

https://streamable.com/t7lurp


Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-03-04 23:04:29
But are you using the current version from repository? XD

And obviously you must set bio panel to notify tags...
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2023-03-04 23:12:16
But are you using the current version from repository? XD

The zip from the main pages as always.


I just see one modification from 15 minutes ago

I tried with that or wait a little bit more for new one  xD

You upload faster than I download
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-03-04 23:14:01
But are you using the current version from repository? XD

The zip from the main pages as always.


I just see one modification from 15 minutes ago

I tried with that or wait a little bit more for new one  xD

You upload faster than I download

That one will display bio tags state as shown on the gif. If it's not working, either you have disabled the feature on the settings menu or It's a problem/setting on bio panel side.

Quote
And obviously you must set bio panel to notify tags...
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2023-03-04 23:27:01
But are you using the current version from repository? XD

The zip from the main pages as always.


I just see one modification from 15 minutes ago

I tried with that or wait a little bit more for new one  xD

You upload faster than I download

That one will display bio tags state as shown on the gif. If it's not working, either you have disabled the feature on the settings menu or It's a problem/setting on bio panel side.

Quote
And obviously you must set bio panel to notify tags...

That is the problem
"notifyTags": false, in bio conf

Now show the tags.

I didn't even know that there was such a thing.

Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-03-04 23:30:32
Well... you can imagine I can not know every user's config. It's supposed people should enable tag sharing for tag sharing to work  ::)

Have added a note about it on the readme for the button anyway, just in case other people doesn't know the feature.

EDIT: And disabled the feature by default, which forces the user to enable it on purpose; thus showing a popup with clear instructions about the requisites.
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2023-03-04 23:41:10
Well... you can imagine I can not know every user's config. It's supposed people should enable tag sharing for tag sharing to work  ::)

Have added a note about it on the readme for the button anyway, just in case other people doesn't know the feature.

I swear is the first time I heard of it. As I don't have the html dialog with descriptions, most of the time is a "guest game" with the variables.
 
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-03-04 23:46:02
Well... you can imagine I can not know every user's config. It's supposed people should enable tag sharing for tag sharing to work  ::)

Have added a note about it on the readme for the button anyway, just in case other people doesn't know the feature.

I swear is the first time I heard of it. As I don't have the html dialog with descriptions, most of the time is a "guest game" with the variables.
 
It's not different on my side hahahah
It's on 'biography.cfg' file btw. Or the HTML panel, yep

I think I was the one who asked Wiilb for the tag sharing feature though. But it has been there since a year or more!
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2023-03-04 23:56:05

It's not different on my side hahahah
It's on 'biography.cfg' file btw. Or the HTML panel, yep

I think I was the one who asked Wiilb for the tag sharing feature though. But it has been there since a year or more!

For me is biography.cfg or SMP configuration properties.....a pleasure to figure out what is the correspondence of a 0,1,2

But one variable at a time the mystery comes to light
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-03-06 01:12:42
https://github.com/regorxxx/Playlist-Tools-SMP/releases/tag/v3.0.0-beta.22
Update earlier than expected to support foo-last-list internal changes (otherwise it will crash using the new package).
Quote
[3.0.0-beta.22] - 2023-03-05
Added

    Last.fm: supports -full- tag retrieval from WilB's Biography script. i.e. genres, styles, locale tags, etc. are added to the file tags on the submenus as available values. Bio tags state is displayed at tooltip, warning when tags are not found (usually requires some seconds).
    Last.fm: supports 'locale' tag retrieval from World-Map-SMP, independently of Bio panel. i.e. it looks at the local database for matches by artist (so it works even for artists not found by Bio panel, multi-value artists tags and artists manually tagged by user on the panel). Bio and World Map tag retrieval can coexist, duplicates are removed in any case.
    Last.fm: new similar artists sub-menu, to retrieve top tracks by a single selected similar artist. This is different to using the 'Current similar artists to' entry, which creates a playlist mixing all similar artists. Therefore, it's equivalent to using the 'Custom...\By Artist' entry for every single similar artist found.
    Last.fm: supports 'LASTFM_SIMILAR_ARTIST' tag retrieval from foo_uie_biography, independently of Bio panel. Bio and foo_uie_biography tag retrieval can coexist, duplicates are removed in any case.
    Last.fm: supports 'SIMILAR ARTISTS SEARCHBYDISTANCE' tag retrieval from Search by Distance-SMP, independently of Bio panel. Duplicates are removed in any case when merged with other similar artists tags. This tag must be pre-calculated, since it's retrieved from files or database, and its based on similar artists from your library (instead of charts/popularity/other people's listening habits).

Changed

    Last.fm: updated support for foo-last-list-smp v1.1 (previous version will not work).
    Last.fm: sub-menu tag lists are now split on columns by 8 items.
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2023-03-07 18:17:29
The last.fm button can't be set to show icon only.
It does when force all button is set, but not independently.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-03-07 22:58:15
The last.fm button can't be set to show icon only.
It does when force all button is set, but not independently.

Yep, missed that. (its just a matter of adding a line, if you compare the button file -newButtonsProperties- with others you can easily fix it yourself)
Code: [Select]
	bIconMode:		['Icon-only mode?', false, {func: isBoolean}, false]

Have to update it to support the latest version again... since l3v3l keeps changing the basics method on every update.  ::) So will upload a new version when I have both things covered.
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2023-03-08 00:18:39
Yep, missed that. (its just a matter of adding a line, if you compare the button file -newButtonsProperties- with others you can easily fix it yourself)
Code: [Select]
	bIconMode:		['Icon-only mode?', false, {func: isBoolean}, false]

Have to update it to support the latest version again... since l3v3l keeps changing the basics method on every update.  ::) So will upload a new version when I have both things covered.

Done

Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-03-08 00:46:08
And here you go..
https://github.com/regorxxx/Playlist-Tools-SMP/releases/tag/v3.0.0-beta.23
Quote
[3.0.0-beta.23] - 2023-03-08
Added
    Last.fm: added user's recommendations, mix and neighbors entries.
Changed
    Last.fm: improved and simplified entry names.
Removed
Fixed
    Last.fm: icon-only mode not working properly.
Title: Re: Playlist-Tools-SMP
Post by: InchPerfect on 2023-03-09 04:42:50
regor, I've got Playlist Tools, Playlist Manager and Search By Distance installed.

I've just updated to the latest versions (thank you) and every time I start fb2k I get "Aw, crashed" and this error
Quote
Error: Spider Monkey Panel v1.6.1 ({C72577AF-343A-4E0A-AC12-D476D29BA29B}: Playlist Tools: Buttons Bar v3.0.0-beta.24 by XXX)
include failed:
There is already another menu with same name and same root

followed by this one
Quote
function: newMenu

menuName: Current genre/style and instrumentals
subMenuFrom: Edit entries from list...‌​‌​​
flags: 0

EDIT: Screenshots ...

Before:
(https://i.imgur.com/p7h8q2k.png)

Now:
(https://i.imgur.com/a0EBMwV.png)
Title: Re: Playlist-Tools-SMP
Post by: InchPerfect on 2023-03-09 06:09:56
So I removed the Playlist Tools and Search By Distance SMP panels and tried to reinstall them.

I forgot what I was supposed to do. I hope I did the right thing:

In that little strip of space above the Playlist Manager panel (where the Playlist Tools and Search By Distance buttons were), I did

Layout editing mode>Cut UI Element, then
Add New UI Element>Spider Monkey Panel, then
Configure panel...>File>C:\foobar2000\profile\scripts\SMP\xxx-scripts\buttons\buttons_playlist_tools.js

That installed fine.

Then I did

Add New UI Element>Splitter (right/left)

then

Add New UI Element>Spider Monkey Panel, then
Configure panel...>File>C:\foobar2000\profile\scripts\SMP\xxx-scripts\buttons\buttons_search_by_distance.js

I got this:
(https://i.imgur.com/CMZMMZ3.png)

1. What am I doing wrong?

2. You can see that I've used two different SMP panels - one for Playlist Tools and one for Search By Distance. But I don't think I did that the first time weeks ago; I've forgotten XD. If I've already got the Playlist Tools button in one panel, do I need a new panel to install Search By Distance or is there a better way?
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-03-09 08:25:03
So I removed the Playlist Tools and Search By Distance SMP panels and tried to reinstall them.

I forgot what I was supposed to do. I hope I did the right thing:

In that little strip of space above the Playlist Manager panel (where the Playlist Tools and Search By Distance buttons were), I did

Layout editing mode>Cut UI Element, then
Add New UI Element>Spider Monkey Panel, then
Configure panel...>File>C:\foobar2000\profile\scripts\SMP\xxx-scripts\buttons\buttons_playlist_tools.js

That installed fine.

Then I did

Add New UI Element>Splitter (right/left)

then

Add New UI Element>Spider Monkey Panel, then
Configure panel...>File>C:\foobar2000\profile\scripts\SMP\xxx-scripts\buttons\buttons_search_by_distance.js

I got this:
(https://i.imgur.com/CMZMMZ3.png)

1. What am I doing wrong?

2. You can see that I've used two different SMP panels - one for Playlist Tools and one for Search By Distance. But I don't think I did that the first time weeks ago; I've forgotten XD. If I've already got the Playlist Tools button in one panel, do I need a new panel to install Search By Distance or is there a better way?
You install the toolbar file 'buttons_toolbar.js' at the main folder, not the individual buttons. Then you load within the toolbar a single button or whatever using the bar menus.

Individual buttons installation has been unsupported since months, it makes no sense anymore. Also.. you know, there is a wiki for this XD which says exactly this.
Title: Re: Playlist-Tools-SMP
Post by: InchPerfect on 2023-03-09 08:57:16
Thanks, I'll look at the wiki properly. I thought I did.

What about the errors, though? In my first post. All I did was update the version.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-03-09 09:12:24
Didn't saw your other post.

You have 2 menu entries with same name and same sub-menu, which is not allowed. The error is pretty clear hahahaha It's intended. Reinstall since somehow you did something weird there. The last update doesn't allow that situation anymore so it throws an error, as it should do.
(and I will disallow users doing that when adding custom entries)

https://github.com/regorxxx/Playlist-Tools-SMP/wiki/Installation
It's on the first paragraph, so no idea why did you load the buttons.

I will fix the crash anyway at reply 315, it happened because you tried to move a button when there was only a button on the panel XD which makes no sense if you only loaded a single button script instead of the toolbar. But it should just ignore it, not crash, even if I don't support such config anymore.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-03-09 10:00:08
This will disallow adding a custom entry with same name than one that already exists: (thus avoiding your situation at update)
scripts\SMP\xxx-scripts\main\playlist_tools\playlist_tools_menu_helpers.js

This will ignore button drag n drop when you load a single button script instead of the toolbar (even if its not supported)
scripts\SMP\xxx-scripts\helpers\buttons_xxx.js

You still have to clean the panel and reinstall.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-03-09 19:01:21
https://github.com/regorxxx/Playlist-Tools-SMP/releases/tag/v3.0.0-beta.25
Quote
## [3.0.0-beta.25] - 2023-03-09
### Added
### Changed
- Presets: in case a custom menu entry has a duplicated name, it will be reported in a popup and skip for menu creation purposes. This should work as workaround to the crash appearing since [3.0.0-beta.20](#300-beta20---2023-03-04) if there were duplicated entries (allowing to remove them without clearing completely the panel). See [here](https://hydrogenaud.io/index.php/topic,120978.msg1023552.html#msg1023552).
- Presets: customizable menu entries no longer allow duplicated names when adding or editing an entry. A popup will be shown as warning.
- Script Integration\SMP Main menu: improved info popup shown for 'Execute menu entry by name'.
### Removed
### Fixed
- Script Integration\Playlist Name Commands: popup text filling entire window (thus making impossible to click yes/no), now reduced to a few lines and pointing to full readme for more info.
- Script Integration\SMP Dynamic menu: entries were not being added/edited properly at some instances.
- UI: crash when using drag n' drop if a button file was loaded (instead of using the toolbar), although this installation method is no longer supported.
- Presets: crash when editing presets at some instances.
Title: Re: Playlist-Tools-SMP
Post by: InchPerfect on 2023-03-23 13:43:49
1. regor, I've forgotten how to change the colour of the buttons.

How do I change the background colour and the button colour?
(https://i.imgur.com/10nfX7h.png)

2. And I don't even know how I added the Playlist Tools button in the first place. I can't find how to get this "add buttons" submenu (image from your pdf).
(https://i.imgur.com/W0zG3Pv.png)

I'm right-clicking and just getting this (when I right-click the red area above)
(https://i.imgur.com/aEa30y8.png)

or this (when I right-click where it says Playlists: playlist_manager)
(https://i.imgur.com/PK8qtZc.png)

Sorry.
Title: Re: Playlist-Tools-SMP
Post by: InchPerfect on 2023-03-25 13:50:48
.
^This is what I want my previous post to look like. But I can't edit or delete it.

Please ignore; I got there in the end.

I think I only had a Playlist Tools button and hadn't added the Buttons Toolbar.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-03-26 10:52:57
Yes, that's what you did. Fancy UI options are only available on the toolbar script.
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2023-04-06 16:29:07
Hi @regor

I have a doubt about EBUR 128 Scanner with ffmpeg.

As you know, I'm on Linux, running fb2k v2-32bits through wine.

I download a 32bit static ffmpeg from here (https://venomissimo.notion.site/34dc4ddf501a4b98b46ea9fb4f3470af?v=878345c5d88f4d21a6520db752b5c29f), add to the executables _32 and put them in the ffmpeg folder in helpers-external.

With this the menu is still disabled, so I download the 64 binaries and put them inside too.

Now the menu entry is available but when I tried to tag any file the scan seems to work (it shows in the console and I can see the ffmpeg_32.exe in the system monitor processes) bur when it finishes, it always fails to write the tags.

What I'm missing?

Additional info. After showing the popup window saying that it finishes and fails to write the tags the button doesn't return to normal status and still shows Stop execution, manually force next step with available tools disable. I must stop execution to return to normal state.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-04-06 17:43:03
Hi @regor

I have a doubt about EBUR 128 Scanner with ffmpeg.

As you know, I'm on Linux, running fb2k v2-32bits through wine.

I download a 32bit static ffmpeg from here (https://venomissimo.notion.site/34dc4ddf501a4b98b46ea9fb4f3470af?v=878345c5d88f4d21a6520db752b5c29f), add to the executables _32 and put them in the ffmpeg folder in helpers-external.

With this the menu is still disabled, so I download the 64 binaries and put them inside too.

Now the menu entry is available but when I tried to tag any file the scan seems to work (it shows in the console and I can see the ffmpeg_32.exe in the system monitor processes) bur when it finishes, it always fails to write the tags.

What I'm missing?

Additional info. After showing the popup window saying that it finishes and fails to write the tags the button doesn't return to normal status and still shows Stop execution, manually force next step with available tools disable. I must stop execution to return to normal state.

The first is a bug, it checks for 64 binaries in any both cases to enable the tool. Will fix it to check the proper binary according to OS, so only 32 binary is needed. (up on github now)
Quote
it always fails to write the tags.

What I'm missing?
That may be related to a lot of things, can not help without more info. You may try disabling sed at the bat file, if that's the thing failing (?). xxx-scripts\helpers-external\ffmpeg\ffmpeg.bat
Code: [Select]
SET useSed=FALSE

Quote
Additional info. After showing the popup window saying that it finishes and fails to write the tags the button doesn't return to normal status and still shows Stop execution, manually force next step with available tools disable. I must stop execution to return to normal state.
It's perfectly fine that it requires to stop execution after failing in some cases. What about the console? Which types of files?
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2023-04-06 18:46:44
Hi @regor

I have a doubt about EBUR 128 Scanner with ffmpeg.

As you know, I'm on Linux, running fb2k v2-32bits through wine.

I download a 32bit static ffmpeg from here (https://venomissimo.notion.site/34dc4ddf501a4b98b46ea9fb4f3470af?v=878345c5d88f4d21a6520db752b5c29f), add to the executables _32 and put them in the ffmpeg folder in helpers-external.

With this the menu is still disabled, so I download the 64 binaries and put them inside too.

Now the menu entry is available but when I tried to tag any file the scan seems to work (it shows in the console and I can see the ffmpeg_32.exe in the system monitor processes) bur when it finishes, it always fails to write the tags.

What I'm missing?

Additional info. After showing the popup window saying that it finishes and fails to write the tags the button doesn't return to normal status and still shows Stop execution, manually force next step with available tools disable. I must stop execution to return to normal state.

The first is a bug, it checks for 64 binaries in any both cases to enable the tool. Will fix it to check the proper binary according to OS, so only 32 binary is needed. (up on github now)
Quote
it always fails to write the tags.

What I'm missing?
That may be related to a lot of things, can not help without more info. You may try disabling sed at the bat file, if that's the thing failing (?). xxx-scripts\helpers-external\ffmpeg\ffmpeg.bat
Code: [Select]
SET useSed=FALSE

Quote
Additional info. After showing the popup window saying that it finishes and fails to write the tags the button doesn't return to normal status and still shows Stop execution, manually force next step with available tools disable. I must stop execution to return to normal state.
It's perfectly fine that it requires to stop execution after failing in some cases. What about the console? Which types of files?


I set "SET useSed=FALSE" in ffmpeg.bat and it fails instantly.

pop-ups

Code: [Select]
1 items processed.
0 items tagged.
1 items failed.

List of failed items:
Z:\mnt\wd\Music\Files\Incoming\Artificial Intelligence\Fifth - 1993 - F.U.S.E. - Dimension Intrusion\1.01 - F.U.S.E. - A New Day.flac

and

Code: [Select]
Json file not found:
Z:\home\user\.foobar2000_v2\profile\js_data\temp\ffmpegJSONThu_Apr_06_20231680802268882.json

Console

Code: [Select]
Called: Add tags on batch to selected tracks
Processing items: 1/1
Json file not found:
 Z:\home\user\.foobar2000_v2\profile\js_data\temp\ffmpegJSONThu_Apr_06_20231680802268882.json
EBUR 128 scanning 100%.
1 items processed.
0 items tagged.
1 items failed.
List of failed items:
Z:\mnt\wd\Music\Files\Incoming\Artificial Intelligence\Fifth - 1993 - F.U.S.E. - Dimension Intrusion\1.01 - F.U.S.E. - A New Day.flac
Spider Monkey Panel v1.6.2-dev+7c0928bf: profiler (EBUR 128 Scanner): Save Loudness tags to files - completed in  22ms

I tried Flac and mp3, no difference. The console didn't show any additional info. No JSON in the temp directory at any time.

Don't know if it is neccesary but after that I also set to False in the _rs.bat (just in case) and repeat the test. No difference

Set it to TRUE didn't make a difference. With the old files the scan was done, but with this new set it didn't happen set to true or false (no ffmpeg_32.exe process)
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-04-06 19:53:02
That's clearly a unix thing, but no idea.

Doesn't unix have FINDSTR?
Can you run the SED utility on a command line window, found at ffmpeg folder?
Does it happen with any file?

Also it seems you are using a network path (Z) which brings a new set of problems to the table.

Quote
_rs.bat
That one is for use with the run service plugin, so you don't have to touch it at all.
Like:
Code: [Select]
Label : EBU
PATH:
"[FULLPATHTOFOOBARPROFILE]\foobar2000\scripts\SMP\xxx-scripts\helpers-external\ffmpeg\ffmpeg_rs.bat"  "%path%"

Try using that standalone bat, it just requires the path to the track as input, if it doesn't work then you got the problem.
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2023-04-06 20:31:32
That's clearly a unix thing, but no idea.

Doesn't unix have FINDSTR?
Can you run the SED utility on a command line window, found at ffmpeg folder?
Does it happen with any file?

Also it seems you are using a network path (Z) which brings a new set of problems to the table.

Quote
_rs.ba
That one is for use with the run service plugin, so you don't have to touch it at all.
Like:
Code: [Select]
Label : EBU
PATH:
"[FULLPATHTOFOOBARPROFILE]\foobar2000\scripts\SMP\xxx-scripts\helpers-external\ffmpeg\ffmpeg_rs.bat"  "%path%"

Try using that standalone bat, it just requires the path to the track as input, if it doesn't work then you got the problem.

No idea what a FINDSTR is  :D

I can run the sed.exe, without a file to feed it, it shows the commands.

The z: is a wine thing. Wine put the file system in there. It is a local disk.

The bat file gives me this

Code: [Select]
Microsoft Windows 10.0.18362

Z:\home\user\.foobar2000_v2\profile\scripts\SMP\xxx-scripts\helpers-external\ff
mpeg>test.bat 01.mp3

Z:\home\user\.foobar2000_v2\profile\scripts\SMP\xxx-scripts\helpers-external\ff
mpeg>Label : EBU
Error de sintaxis

Z:\home\user\.foobar2000_v2\profile\scripts\SMP\xxx-scripts\helpers-external\ff
mpeg>PATH:

Z:\home\user\.foobar2000_v2\profile\scripts\SMP\xxx-scripts\helpers-external\ff
mpeg>"Z:\home\user\.foobar2000_v2\profile\scripts\SMP\xxx-scripts\helpers-exter
nal\ffmpeg\ffmpeg_rs.bat"  ":"
Processing: ":"

ffmpeg version n6.0-ffmpeg-windows-build-helpers Copyright (c) 2000-2023 the FFm
peg developers
  built with gcc 10.2.0 (GCC)
  configuration: --pkg-config=pkg-config --pkg-config-flags=--static --extra-ver
sion=ffmpeg-windows-build-helpers --enable-version3 --disable-debug --disable-w3
2threads --arch=x86 --target-os=mingw32 --cross-prefix=/home/anton/ffmpeg-window
s-build-helpers/sandbox/cross_compilers/mingw-w64-i686/bin/i686-w64-mingw32- --e
nable-libcaca --enable-gray --enable-libtesseract --enable-fontconfig --enable-g
mp --enable-libass --enable-libbluray --enable-libbs2b --enable-libflite --enabl
e-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libil
bc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-l
ibopencore-amrwb --enable-libopus --enable-libsnappy --enable-libsoxr --enable-l
ibspeex --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-
libvorbis --enable-libwebp --enable-libzimg --enable-libzvbi --enable-libmysofa
--enable-libopenjpeg --enable-libopenh264 --enable-libvmaf --enable-libsrt --ena
ble-libxml2 --enable-opengl --enable-libdav1d --enable-cuda-llvm --enable-gnutls
 --enable-libaom --enable-nvenc --enable-nvdec --extra-libs=-lharfbuzz --extra-l
ibs=-lm --extra-libs=-lshlwapi --extra-libs=-lmpg123 --extra-libs=-lpthread --ex
tra-cflags=-DLIBTWOLAME_STATIC --extra-cflags=-DMODPLUG_STATIC --extra-cflags=-D
CACA_STATIC --enable-amf --enable-libmfx --enable-gpl --enable-frei0r --enable-l
ibrubberband --enable-libvidstab --enable-libx264 --enable-libx265 --enable-avis
ynth --enable-libaribb24 --enable-libxvid --enable-libdavs2 --enable-libxavs --e
xtra-cflags='-mtune=generic' --extra-cflags=-O3 --enable-static --disable-shared
 --prefix=/home/anton/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw
-w64-i686/i686-w64-mingw32
  libavutil      58.  2.100 / 58.  2.100
  libavcodec     60.  3.100 / 60.  3.100
  libavformat    60.  3.100 / 60.  3.100
  libavdevice    60.  1.100 / 60.  1.100
  libavfilter     9.  3.100 /  9.  3.100
  libswscale      7.  1.100 /  7.  1.100
  libswresample   4. 10.100 /  4. 10.100
  libpostproc    57.  1.100 / 57.  1.100
:: Protocol not found
Did you mean file::?

Copy 'input_lra' value into a tag named 'LRA' within foobar
Pulse cualquier tecla para continuar...


The test.bat is

Code: [Select]
Label : EBU
PATH:
"Z:\home\user\.foobar2000_v2\profile\scripts\SMP\xxx-scripts\helpers-external\ffmpeg\ffmpeg_rs.bat"  "%path%"

Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-04-06 20:36:35
I don't understand what you are doing XD You have copied literally what I put. I told u that's how it's configured on Run Services plugin XD

You are not supposed to run that on CMD (?). Just run the bat file.
Code: [Select]
"Z:\home\user\.foobar2000_v2\profile\scripts\SMP\xxx-scripts\helpers-external\ffmpeg\ffmpeg_rs.bat"  "01.mp3"

Quote
No idea what a FINDSTR is  :D
One basic command on CMD.
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2023-04-06 20:47:38
I don't understand what you are doing XD You have copied literally what I put. I told u that's how it's configured on Run Services plugin XD

You are not supposed to run that on CMD (?). Just run the bat file.
Code: [Select]
"Z:\home\user\.foobar2000_v2\profile\scripts\SMP\xxx-scripts\helpers-external\ffmpeg\ffmpeg_rs.bat"  "01.mp3"

I'm the literal man  :P

Being less literal

Code: [Select]
Microsoft Windows 10.0.18362

Z:\home\user\.foobar2000_v2\profile\scripts\SMP\xxx-scripts\helpers-external\ff
mpeg>ffmpeg_rs.bat 01.mp3
Processing: 01.mp3

ffmpeg version n6.0-ffmpeg-windows-build-helpers Copyright (c) 2000-2023 the FFm
peg developers
  built with gcc 10.2.0 (GCC)
  configuration: --pkg-config=pkg-config --pkg-config-flags=--static --extra-ver
sion=ffmpeg-windows-build-helpers --enable-version3 --disable-debug --disable-w3
2threads --arch=x86 --target-os=mingw32 --cross-prefix=/home/anton/ffmpeg-window
s-build-helpers/sandbox/cross_compilers/mingw-w64-i686/bin/i686-w64-mingw32- --e
nable-libcaca --enable-gray --enable-libtesseract --enable-fontconfig --enable-g
mp --enable-libass --enable-libbluray --enable-libbs2b --enable-libflite --enabl
e-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libil
bc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-l
ibopencore-amrwb --enable-libopus --enable-libsnappy --enable-libsoxr --enable-l
ibspeex --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-
libvorbis --enable-libwebp --enable-libzimg --enable-libzvbi --enable-libmysofa
--enable-libopenjpeg --enable-libopenh264 --enable-libvmaf --enable-libsrt --ena
ble-libxml2 --enable-opengl --enable-libdav1d --enable-cuda-llvm --enable-gnutls
 --enable-libaom --enable-nvenc --enable-nvdec --extra-libs=-lharfbuzz --extra-l
ibs=-lm --extra-libs=-lshlwapi --extra-libs=-lmpg123 --extra-libs=-lpthread --ex
tra-cflags=-DLIBTWOLAME_STATIC --extra-cflags=-DMODPLUG_STATIC --extra-cflags=-D
CACA_STATIC --enable-amf --enable-libmfx --enable-gpl --enable-frei0r --enable-l
ibrubberband --enable-libvidstab --enable-libx264 --enable-libx265 --enable-avis
ynth --enable-libaribb24 --enable-libxvid --enable-libdavs2 --enable-libxavs --e
xtra-cflags='-mtune=generic' --extra-cflags=-O3 --enable-static --disable-shared
 --prefix=/home/anton/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw
-w64-i686/i686-w64-mingw32
  libavutil      58.  2.100 / 58.  2.100
  libavcodec     60.  3.100 / 60.  3.100
  libavformat    60.  3.100 / 60.  3.100
  libavdevice    60.  1.100 / 60.  1.100
  libavfilter     9.  3.100 /  9.  3.100
  libswscale      7.  1.100 /  7.  1.100
  libswresample   4. 10.100 /  4. 10.100
  libpostproc    57.  1.100 / 57.  1.100
Input #0, mp3, from '01.mp3':
  Metadata:
    track           : 1
    disc            : 1
    BARCODE         : 197511685014
    ARTISTS         : Mathew's Hidden Museum
    ORIGINAL RELEASE DATE: 2023-02-03
    title           : The Resurrectionist
    artist          : Mathew's Hidden Museum
    album           : Mathew's Hidden Museum
    album_artist    : Mathew's Hidden Museum
    genre           : Rock
    TLEN            : 125000
    publisher       : Interstellar Smoke Records
    TSRC            : QZFYX2359819
    date            : 2023-02-03
  Duration: 00:02:05.05, start: 0.025057, bitrate: 320 kb/s
  Stream #0:0: Audio: mp3, 44100 Hz, stereo, fltp, 320 kb/s
    Metadata:
      encoder         : LAME3.99r
    Side data:
      replaygain: track gain - -8.300000, track peak - unknown, album gain - unk
nown, album peak - unknown,
Stream mapping:
  Stream #0:0 -> #0:0 (mp3 (mp3float) -> pcm_s16le (native))
Press [q] to stop, [?] for help
Output #0, null, to 'pipe:':
  Metadata:
    track           : 1
    disc            : 1
    BARCODE         : 197511685014
    ARTISTS         : Mathew's Hidden Museum
    ORIGINAL RELEASE DATE: 2023-02-03
    title           : The Resurrectionist
    artist          : Mathew's Hidden Museum
    album           : Mathew's Hidden Museum
    album_artist    : Mathew's Hidden Museum
    genre           : Rock
    TLEN            : 125000
    publisher       : Interstellar Smoke Records
    TSRC            : QZFYX2359819
    date            : 2023-02-03
    encoder         : Lavf60.3.100
  Stream #0:0: Audio: pcm_s16le, 192000 Hz, stereo, s16, 6144 kb/s
    Metadata:
      encoder         : Lavc60.3.100 pcm_s16le
    Side data:
      replaygain: track gain - -8.300000, track peak - unknown, album gain - unk
nown, album peak - unknown,
size=N/A time=00:02:02.10 bitrate=N/A speed=7.23x
video:0kB audio:93750kB subtitle:0kB other streams:0kB global headers:0kB muxing
 overhead: unknown
[Parsed_loudnorm_0 @ 071443c0]
{
        "input_i" : "-8.38",
        "input_tp" : "0.06",
        "input_lra" : "9.10",
        "input_thresh" : "-19.48",
        "output_i" : "-22.63",
        "output_tp" : "-4.23",
        "output_lra" : "7.20",
        "output_thresh" : "-32.96",
        "normalization_type" : "dynamic",
        "target_offset" : "-1.37"
}

Copy 'input_lra' value into a tag named 'LRA' within foobar
Pulse cualquier tecla para continuar...
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-04-06 20:50:13
With sed or without sed? That's clearly not the same output I showed you.

Now run the other bat file. Note it points to the track (first), output (second) and ffmpeg path (third) - the '_32' part is added on the bat file itself-.
Code: [Select]
"Z:\home\user\.foobar2000_v2\profile\scripts\SMP\xxx-scripts\helpers-external\ffmpeg\ffmpeg.bat" "01.mp3" "Z:\home\user\.foobar2000_v2\profile\js_data\temp\ffmpegJSONThu_Apr_06_20231680802268882.json" "Z:\home\user\.foobar2000_v2\profile\scripts\SMP\xxx-scripts\helpers-external\ffmpeg\ffmpeg.exe"

Clean the temp folder first at "Z:\home\user\.foobar2000_v2\profile\js_data\temp\".

It should output a file at
"Z:\home\user\.foobar2000_v2\profile\js_data\temp\ffmpegJSONThu_Apr_06_20231680802268882.json"
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2023-04-06 21:04:27
With sed or without sed? That's clearly not the same output I showed you.

In ffmpeg_rs.bat SET useSed=TRUE in the previous.

With SET useSed=FALSE

Code: [Select]
Z:\home\user\.foobar2000_v2\profile\scripts\SMP\xxx-scripts\helpers-external\ff
mpeg>ffmpeg_rs.bat 01.mp3
ffmpeg version n6.0-ffmpeg-windows-build-helpers Copyright (c) 2000-2023 the FFm
peg developers
  built with gcc 10.2.0 (GCC)
  configuration: --pkg-config=pkg-config --pkg-config-flags=--static --extra-ver
sion=ffmpeg-windows-build-helpers --enable-version3 --disable-debug --disable-w3
2threads --arch=x86 --target-os=mingw32 --cross-prefix=/home/anton/ffmpeg-window
s-build-helpers/sandbox/cross_compilers/mingw-w64-i686/bin/i686-w64-mingw32- --e
nable-libcaca --enable-gray --enable-libtesseract --enable-fontconfig --enable-g
mp --enable-libass --enable-libbluray --enable-libbs2b --enable-libflite --enabl
e-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libil
bc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-l
ibopencore-amrwb --enable-libopus --enable-libsnappy --enable-libsoxr --enable-l
ibspeex --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-
libvorbis --enable-libwebp --enable-libzimg --enable-libzvbi --enable-libmysofa
--enable-libopenjpeg --enable-libopenh264 --enable-libvmaf --enable-libsrt --ena
ble-libxml2 --enable-opengl --enable-libdav1d --enable-cuda-llvm --enable-gnutls
 --enable-libaom --enable-nvenc --enable-nvdec --extra-libs=-lharfbuzz --extra-l
ibs=-lm --extra-libs=-lshlwapi --extra-libs=-lmpg123 --extra-libs=-lpthread --ex
tra-cflags=-DLIBTWOLAME_STATIC --extra-cflags=-DMODPLUG_STATIC --extra-cflags=-D
CACA_STATIC --enable-amf --enable-libmfx --enable-gpl --enable-frei0r --enable-l
ibrubberband --enable-libvidstab --enable-libx264 --enable-libx265 --enable-avis
ynth --enable-libaribb24 --enable-libxvid --enable-libdavs2 --enable-libxavs --e
xtra-cflags='-mtune=generic' --extra-cflags=-O3 --enable-static --disable-shared
 --prefix=/home/anton/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw
-w64-i686/i686-w64-mingw32
  libavutil      58.  2.100 / 58.  2.100
  libavcodec     60.  3.100 / 60.  3.100
  libavformat    60.  3.100 / 60.  3.100
  libavdevice    60.  1.100 / 60.  1.100
  libavfilter     9.  3.100 /  9.  3.100
  libswscale      7.  1.100 /  7.  1.100
  libswresample   4. 10.100 /  4. 10.100
  libpostproc    57.  1.100 / 57.  1.100
Input #0, mp3, from '01.mp3':
  Metadata:
    track           : 1
    disc            : 1
    BARCODE         : 197511685014
    ARTISTS         : Mathew's Hidden Museum
    ORIGINAL RELEASE DATE: 2023-02-03
    title           : The Resurrectionist
    artist          : Mathew's Hidden Museum
    album           : Mathew's Hidden Museum
    album_artist    : Mathew's Hidden Museum
    genre           : Rock
    TLEN            : 125000
    publisher       : Interstellar Smoke Records
    TSRC            : QZFYX2359819
    date            : 2023-02-03
  Duration: 00:02:05.05, start: 0.025057, bitrate: 320 kb/s
  Stream #0:0: Audio: mp3, 44100 Hz, stereo, fltp, 320 kb/s
    Metadata:
      encoder         : LAME3.99r
    Side data:
      replaygain: track gain - -8.300000, track peak - unknown, album gain - unk
nown, album peak - unknown,
Stream mapping:
  Stream #0:0 -> #0:0 (mp3 (mp3float) -> pcm_s16le (native))
Press [q] to stop, [?] for help
Output #0, null, to 'pipe:':
  Metadata:
    track           : 1
    disc            : 1
    BARCODE         : 197511685014
    ARTISTS         : Mathew's Hidden Museum
    ORIGINAL RELEASE DATE: 2023-02-03
    title           : The Resurrectionist
    artist          : Mathew's Hidden Museum
    album           : Mathew's Hidden Museum
    album_artist    : Mathew's Hidden Museum
    genre           : Rock
    TLEN            : 125000
    publisher       : Interstellar Smoke Records
    TSRC            : QZFYX2359819
    date            : 2023-02-03
    encoder         : Lavf60.3.100
  Stream #0:0: Audio: pcm_s16le, 192000 Hz, stereo, s16, 6144 kb/s
    Metadata:
      encoder         : Lavc60.3.100 pcm_s16le
    Side data:
      replaygain: track gain - -8.300000, track peak - unknown, album gain - unk
nown, album peak - unknown,
size=N/A time=00:02:02.10 bitrate=N/A speed=7.23x
video:0kB audio:93750kB subtitle:0kB other streams:0kB global headers:0kB muxing
 overhead: unknown
[Parsed_loudnorm_0 @ 071443c0]
{
        "input_i" : "-8.38",
        "input_tp" : "0.06",
        "input_lra" : "9.10",
        "input_thresh" : "-19.48",
        "output_i" : "-22.63",
        "output_tp" : "-4.23",
        "output_lra" : "7.20",
        "output_thresh" : "-32.96",
        "normalization_type" : "dynamic",
        "target_offset" : "-1.37"
}

Copy 'input_lra' value into a tag named 'LRA' within foobar
Pulse cualquier tecla para continuar...


The mmpeg.bat is set to TRUE. The default one.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-04-06 21:07:14
Try the other bat file as instructed. Anyway that clearly doesn't work as it should be, since it's showing the entire ffmpeg ouput with SED instead of just the final JSON. No idea if that's a wine thing or your ffmpeg build.

If there is no proper JSON output, then SMP will fail reading the file and there you got the error.
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2023-04-06 21:23:52
Cleaning the temp folder

Code: [Select]
Z:\home\user\.foobar2000_v2\profile\scripts\SMP\xxx-scripts\helpers-external\ff
mpeg>"Z:\home\user\.foobar2000_v2\profile\scripts\SMP\xxx-scripts\helpers-exter
nal\ffmpeg\ffmpeg.bat" "Z:\home\user\.foobar2000_v2\profile\scripts\SMP\xxx-scr
ipts\helpers-external\ffmpeg\01.mp3" "Z:\home\user\.foobar2000_v2\profile\js_da
ta\temp\ffmpegJSONThu_Apr_06_20231680802268882.json" "Z:\home\user\.foobar2000_
v2\profile\scripts\SMP\xxx-scripts\helpers-external\ffmpeg\ffmpeg.exe"
Input #0, mp3, from 'Z:\home\user\.foobar2000_v2\profile\scripts\SMP\xxx-script
s\helpers-external\ffmpeg\01.mp3':
  Metadata:
    track           : 1
    disc            : 1
    BARCODE         : 197511685014
    ARTISTS         : Mathew's Hidden Museum
    ORIGINAL RELEASE DATE: 2023-02-03
    title           : The Resurrectionist
    artist          : Mathew's Hidden Museum
    album           : Mathew's Hidden Museum
    album_artist    : Mathew's Hidden Museum
    genre           : Rock
    TLEN            : 125000
    publisher       : Interstellar Smoke Records
    TSRC            : QZFYX2359819
    date            : 2023-02-03
  Duration: 00:02:05.05, start: 0.025057, bitrate: 320 kb/s
  Stream #0:0: Audio: mp3, 44100 Hz, stereo, fltp, 320 kb/s
    Metadata:
      encoder         : LAME3.99r
    Side data:
      replaygain: track gain - -8.300000, track peak - unknown, album gain - unk
nown, album peak - unknown,
Stream mapping:
  Stream #0:0 -> #0:0 (mp3 (mp3float) -> pcm_s16le (native))
Press [q] to stop, [?] for help
Output #0, null, to 'pipe:':
  Metadata:
    track           : 1
    disc            : 1
    BARCODE         : 197511685014
    ARTISTS         : Mathew's Hidden Museum
    ORIGINAL RELEASE DATE: 2023-02-03
    title           : The Resurrectionist
    artist          : Mathew's Hidden Museum
    album           : Mathew's Hidden Museum
    album_artist    : Mathew's Hidden Museum
    genre           : Rock
    TLEN            : 125000
    publisher       : Interstellar Smoke Records
    TSRC            : QZFYX2359819
    date            : 2023-02-03
    encoder         : Lavf60.3.100
  Stream #0:0: Audio: pcm_s16le, 192000 Hz, stereo, s16, 6144 kb/s
    Metadata:
      encoder         : Lavc60.3.100 pcm_s16le
    Side data:
      replaygain: track gain - -8.300000, track peak - unknown, album gain - unk
nown, album peak - unknown,
size=N/A time=00:02:02.10 bitrate=N/A speed=7.27x
video:0kB audio:93750kB subtitle:0kB other streams:0kB global headers:0kB muxing
 overhead: unknown
[Parsed_loudnorm_0 @ 07144e80]
{
        "input_i" : "-8.38",
        "input_tp" : "0.06",
        "input_lra" : "9.10",
        "input_thresh" : "-19.48",
        "output_i" : "-22.63",
        "output_tp" : "-4.23",
        "output_lra" : "7.20",
        "output_thresh" : "-32.96",
        "normalization_type" : "dynamic",
        "target_offset" : "-1.37"
}

and a ffmpegJSONThu_Apr_06_20231680802268882.json in the temp folder but empty

With the full paths, the ffmpeg options didn't show up

I tried with fffmpeg-4.3.1-win32-static from https://www.techspot.com/downloads/6447-ffmpeg.html with the same result, seems that is not a ffmpeg build problem
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-04-06 21:57:29
You should get a JSON file with
Code: [Select]
{
        "input_i" : "-8.38",
        "input_tp" : "0.06",
        "input_lra" : "9.10",
        "input_thresh" : "-19.48",
        "output_i" : "-22.63",
        "output_tp" : "-4.23",
        "output_lra" : "7.20",
        "output_thresh" : "-32.96",
        "normalization_type" : "dynamic",
        "target_offset" : "-1.37"
}

If that's not the output, can not help you anymore.
Ask at wine forums. I suppose is something related to the "-f null - 2>&1 | > %2" part of the bat files. And somewhat wine not respecting piping as it should be, or output redirection not working. If you find another way to retrieve the same output file -with other commands or whatever-, let me know,

These are my executables:
https://tmpfiles.org/1271299/ffmpeg.zip

EDIT: I could parse the entire output as txt file on SMP -thus skipping CMD tricks to parse ffmpeg output-, but not gonna happen soon and would really prefer not to.

Anyway the problem is ffmpeg output being such a nonsense in the end with all that stupid data, full metadata report (without asking for it), build flags, etc. being always shown no matter what you do or the log level you set. So if you also manage to convince ffmpeg devs to add a switch to stop such nonsense, that would do too XD
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2023-04-06 23:24:35
You should get a JSON file with
Code: [Select]
{
        "input_i" : "-8.38",
        "input_tp" : "0.06",
        "input_lra" : "9.10",
        "input_thresh" : "-19.48",
        "output_i" : "-22.63",
        "output_tp" : "-4.23",
        "output_lra" : "7.20",
        "output_thresh" : "-32.96",
        "normalization_type" : "dynamic",
        "target_offset" : "-1.37"
}

If that's not the output, can not help you anymore.
Ask at wine forums. I suppose is something related to the "-f null - 2>&1 | > %2" part of the bat files. And somewhat wine not respecting piping as it should be, or output redirection not working. If you find another way to retrieve the same output file -with other commands or whatever-, let me know,

These are my executables:
https://tmpfiles.org/1271299/ffmpeg.zip

EDIT: I could parse the entire output as txt file on SMP -thus skipping CMD tricks to parse ffmpeg output-, but not gonna happen soon and would really prefer not to.

Anyway the problem is ffmpeg output being such a nonsense in the end with all that stupid data, full metadata report (without asking for it), build flags, etc. being always shown no matter what you do or the log level you set. So if you also manage to convince ffmpeg devs to add a switch to stop such nonsense, that would do too XD

The output is an empty json, nothing, nada, the absolute void  8)

Your exe are doing the same.

Only difference is that if I call the files with the full paths the initial dump of ffmpeg build options didn't show, but the rest of data still is there.

Never gives a clean output like the one you post.

My system ffmpeg do the same. There is a loglevel but i can managed to hide the verbose and get an output.

I search commands to get lra and found

"ffmpeg -i 01.mp3  -hide_banner -nostats -af loudnorm=I=-16:TP=-1.5:LRA=11:print_format=summary -f null -&>1.text"

that give me, like with the windows version, a lot of data

Code: [Select]
Input #0, mp3, from '01.mp3':
  Metadata:
    track           : 1
    disc            : 1
    BARCODE         : 197511685014
    ARTISTS         : Mathew's Hidden Museum
    ORIGINAL RELEASE DATE: 2023-02-03
    title           : The Resurrectionist
    artist          : Mathew's Hidden Museum
    album           : Mathew's Hidden Museum
    album_artist    : Mathew's Hidden Museum
    genre           : Rock
    TLEN            : 125000
    publisher       : Interstellar Smoke Records
    TSRC            : QZFYX2359819
    date            : 2023-02-03
  Duration: 00:02:05.05, start: 0.025057, bitrate: 320 kb/s
  Stream #0:0: Audio: mp3, 44100 Hz, stereo, fltp, 320 kb/s
    Metadata:
      encoder         : LAME3.99r
    Side data:
      replaygain: track gain - -8.300000, track peak - unknown, album gain - unknown, album peak - unknown,
Stream mapping:
  Stream #0:0 -> #0:0 (mp3 (mp3float) -> pcm_s16le (native))
Press [q] to stop, [?] for help
Output #0, null, to 'pipe:':
  Metadata:
    track           : 1
    disc            : 1
    BARCODE         : 197511685014
    ARTISTS         : Mathew's Hidden Museum
    ORIGINAL RELEASE DATE: 2023-02-03
    title           : The Resurrectionist
    artist          : Mathew's Hidden Museum
    album           : Mathew's Hidden Museum
    album_artist    : Mathew's Hidden Museum
    genre           : Rock
    TLEN            : 125000
    publisher       : Interstellar Smoke Records
    TSRC            : QZFYX2359819
    date            : 2023-02-03
    encoder         : Lavf59.27.100
  Stream #0:0: Audio: pcm_s16le, 192000 Hz, stereo, s16, 6144 kb/s
    Metadata:
      encoder         : Lavc59.37.100 pcm_s16le
    Side data:
      replaygain: track gain - -8.300000, track peak - unknown, album gain - unknown, album peak - unknown,
size=N/A time=00:02:05.00 bitrate=N/A speed=14.2x   
video:0kB audio:93750kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
[Parsed_loudnorm_0 @ 0x562f212302c0]
Input Integrated:     -8.4 LUFS
Input True Peak:      +0.1 dBTP
Input LRA:             9.1 LU
Input Threshold:     -19.5 LUFS

Output Integrated:   -14.8 LUFS
Output True Peak:     -1.5 dBTP
Output LRA:            6.7 LU
Output Threshold:    -25.2 LUFS

Normalization Type:   Dynamic
Target Offset:        -1.2 LU

but no way to hide all the extra data and get only the output



Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2023-04-07 14:56:06
I was trying to get a .json file with the output of ffmpeg_32.exe in the wine cmd console and I make some kind of success.

I managed to write the output to a file with
Code: [Select]
ffmpeg_32.exe -hide_banner -i 1.mp3 -af loudnorm=dual_mono=true:print_format=json -nostats -f null - >1.json 2>&1

and using the sed.exe on 1.json

Code: [Select]
sed.exe 1,/^\[Parsed_loudnorm/d 1.json  >2.json 2>&1

I get a 2.json with

Code: [Select]
{
        "input_i" : "-8.38",
        "input_tp" : "0.06",
        "input_lra" : "9.10",
        "input_thresh" : "-19.48",
        "output_i" : "-22.63",
        "output_tp" : "-4.23",
        "output_lra" : "7.20",
        "output_thresh" : "-32.96",
        "normalization_type" : "dynamic",
        "target_offset" : "-1.37"
}

And that is the output we need, right?

But I didn't know how to join this sequence of commands and adapt it to the ffmpeg.bat

any idea?
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-04-08 01:19:13
This
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2023-04-08 01:55:06
This

With an old copy of the scripts (previous to the modification that check for _32) it works.

With the last set (the one that check _32) the ffmpeg_32 process didn't spawn and fails

json not found
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-04-08 02:16:14
Yeah... cmd doesn't overwrite variables... love the language.
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2023-04-08 02:54:56
Yeah... cmd doesn't overwrite variables... love the language.

Still no luck with the last zips from github

I tried as downloaded (i noticed a new wine bat), overwritten the ffmpeg.bat with the one you put in last post and changing the ffmpeg.bat with the wine one but no ffmpeg_32 scan is done

The old ones work perfect with the modified ffmpeg.bat of the above post

Just to clarify.

The set of zips that work are the ones that need a copy of both ffmpeg executables to be present. These perform the scan even when failed to write the tags.

The ones that enable EBUR with only the 32 executable present never trigger the scan process. Even before the last modifications to write the json and tags they didn't scan like before.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-04-08 09:16:43
Yeah... cmd doesn't overwrite variables... love the language.

Still no luck with the last zips from github

I tried as downloaded (i noticed a new wine bat), overwritten the ffmpeg.bat with the one you put in last post and changing the ffmpeg.bat with the wine one but no ffmpeg_32 scan is done

The old ones work perfect with the modified ffmpeg.bat of the above post

Just to clarify.

The set of zips that work are the ones that need a copy of both ffmpeg executables to be present. These perform the scan even when failed to write the tags.

The ones that enable EBUR with only the 32 executable present never trigger the scan process. Even before the last modifications to write the json and tags they didn't scan like before.
I have lost track of what you are doing.

Either you use the last github commit, or the bat file here. Not both. You don't have to rename anything or touch the files anymore.

Please, just download the latest files from github (just updated it), overwrite all, and let me know if it works and the output.
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2023-04-08 17:25:54
I have lost track of what you are doing.

Either you use the last github commit, or the bat file here. Not both. You don't have to rename anything or touch the files anymore.

Please, just download the latest files from github (just updated it), overwrite all, and let me know if it works and the output.

Just trying random combinations....rarely works, and of course, trying to explain it I made it more confusing 8)

Anyway, this new set works perfect. It will be a great time saver, I have a lot of files tagged with essentia before you introduce LRA.

Thanks a lot



Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-04-09 00:33:25
Great :)
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-05-08 14:23:46
https://github.com/regorxxx/Playlist-Tools-SMP/releases/tag/v3.0.0-beta.26

v3.0.0-beta.26 - Smart shuffle & Last.fm improvements and bugfixes
Quote
## [3.0.0-beta.26] - 2023-05-08
### Added
- Last.fm: menu entries are now available as dynamic SMP menus (toogable setting).
- Top Rated Tracks from...: pressing shift when clicking the menu entries now randomizes the tracks taken from the pool (according to rating and date), instead of sorting them by play count (which always output the same tracks if play count doesn't change). i.e. if someone wants to listen their top rated tracks from the 2000s but different sets of tracks on every listening session, not always the same most rated and most played tracks, the randomize modifier could be used.
- Pools: new 'smartShuffle' option for pools which mimics 'Selection manipulation\Shuffle' feature on the output by set tag. Check '.\presets\Playlist Tools\pools\allowedKeys.txt' for usage and examples.
- Selection manipulation\Shuffle: additional option to scatter to scatter instrumental, live and other tracks while respecting the smart pattern by tag (usually Artist). For ex. if it can swap tracks without altering the Artist proportion for a given range of tracks, thus moving an instrumental track to another position to soft-limit the appearance of consecutive instrumental tracks. Same rationale applies for live tracks or other special conditions. This somewhat ensures any cluster of tracks is as diverse as possible.
- Selection manipulation\Shuffle: additional options for the Spotify-like smart shuffle to prioritize tracks by Rating, Play Count (original Spotify's behavior), Last played date, randomly...
### Changed
- Last.fm: no longer requires [original package](https://github.com/L3v3L/foo-last-list-smp), fully integrated now. Reason: original package follows a design not fully compatible with some of the new features added.
- Last.fm: better library matching of extra chars (for ex. in original package '.38 Special' would not match '38 Special').
- Last.fm: better library matching removing unwanted title words (remastered, ...).
- Playlist filter: pressing Ctrl + L. Click now outputs all duplicates found (like the remove duplicates button). Pressing Ctrl + Shift + L. Click outputs only N duplicates following the buttons settings.
- Console: multiple improvements when logging to file for FbMetadbHandle, FbMetadbHandleList, Error and unknown instances (totally irrelevant except for debug purposes).
- Console: menu entries are no longer logged to console after clicking (except when pressing Ctrl before opening the button's menu).
- UI: standardized and shortened all current/locked/playing playlist flags text in menu entries related to playlist and selection manipulation. i.e. 'my playlist (current)' instead of 'my playlist (current playlist)' or 'my playlist (current | playing)' instead of 'my playlist (current playlist) (playing playlist)'.
- Buttons: Last.fm button's icon to font, instead of png image; scales better on different DPI settings.
- Buttons: macros button's icon to half hourglass; blends better on dark and light themes.
- Buttons: top tracks button's icon to a heart without filling; blends better on dark and light themes.
- Buttons: Playlist Tools submenu custom button's icon now changes according to the associated submenu.
- Buttons: search same button's icon to magnifying glass with a plus; more intuitive than previous icon (link).
- Buttons: profiler logging for 'search_by_tags_combinations', 'search_by_tags_queries', 'search_top_tracks', 'search_top_tracks_from_date', 'playlist_filter', 'playlist_remove_duplicates' and 'playlist_show_duplicates' button now follows Playlist Tools button config, disabled otherwise.
- Helpers: updated helpers.
### Removed
### Fixed
- Last.fm: tracks are now added preserving last.fm order. Workaround for AddLocations being async, used on original package, which may results on tracks not being inserted on playlist following the original order.
- Last.fm: link caching on input popups not working, regression on original package 1.2 version.
- Other Tools\Write tags: tool was checking for x64 binary existence on x32 systems (thus needing both instead of only the latter).
- Other Tools\Write tags: workaround for [Wine's CMD pipes bug](https://hydrogenaud.io/index.php/topic,120978.msg1024697.html#msg1024697) while using  EBUR 128 Scanner (ffmpeg) tool.
- Selection manipulation\Advanced sort...: harmonic mixing configuration menu not shown if 'Playlist manipulation' and 'Special playlists' submenus were hidden.
- Selection manipulation\Shuffle: 'By...(tag)' entry not working.
- Playlist Manipulation\Query filtering: dynamic queries were not being properly inverted while pressing Ctrl on some edge cases.
- Script Integration\SMP Dynamic menu: crash on init after disabling submenu (and feature) via shift clicking .
- Script Integration\SMP Dynamic menu: feature was not disabled/enabled properly to work with [ajquery-xxx](https://github.com/regorxxx/ajquery-xxx).
- Playlist Manipulation: disabling submenu via shift clicking did not output the proper menu list order.
- Playlist filter: non uniform tabulation on button tooltip.
- Remove Duplicates: skip processing if there is no active playlist.
- Buttons: 'main_menu_shortcut' button's state was not saved properly when using 'Run when closing foobar?' option due to a limit on how [foobar2000/SMP work](https://github.com/TheQwertiest/foo_spider_monkey_panel/issues/205). A workaround has been implemented, considering a button should always be on an specific state at init if these options were used.
- Buttons: removed non needed console logging for 'search_by_tags_queries' button and 'Search same by tags' menu entries.
- Buttons: 'playlist_remove_duplicates' and 'playlist_show_duplicates' now show the keyboard action associated while pressing control (if the mouse shortcuts has been disabled). Previously it only worked with shift.
- Pools: pools using dynamic queries crashed when there was no focus item (on any playlist).
- Pools: pools using standard queries without a focused item (on any playlist) did not output any results.
- Pools: number of tracks output was lower than expected on classic pools mode (_GROUP_X) due to wrong tag handling of special chars.
- Pools: missing harmonic mix dependencies when the 'Selection manipulation' submenu was disabled.
- Macros: updated test macros with latest name changes. There were some entries not working using old names.
- Macros: removed extra separator on edit entries submenu.

Last.fm package is NO LONGER REQUIRED. Fully implemented here (with a lot of improvements).
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-06-29 13:56:38
https://github.com/regorxxx/Playlist-Tools-SMP/releases/tag/v3.0.0-beta.28

Quote
[3.0.0-beta.28] - 2023-06-28
Added
Changed
Removed
Fixed

    Wrong property value for 'Duplicates RegExp title matching?.

[3.0.0-beta.27] - 2023-06-27
Added

    Global Forced Query: 'Top Rated Tracks from...', 'Most played Tracks from...' and 'Most played Tracks' are now also added to the list of toogable forced query application. This addition should cover all existing tools where the forced query is applicable.
    Remove duplicates: new setting at button to prefer tracks by a given TF expression. By default by higher rating and not live tracks. Delete '[foobar_profile]\js_data\presets\global\globQuery.json' and '[foobar_profile]\foobar2000\js_data\presets\global\globTags.json' files after installation.
    Show duplicates: new setting at button to prefer tracks by a given TF expression. By default by higher rating and not live tracks.
    Playlist filter: new setting at button to prefer tracks by a given TF expression. By default by higher rating and not live tracks.
    Configuration: new setting to set de-duplication bias is at 'Configuration\Duplicates handling...'. (this only applies to Playlist Tools button for tools listed below)
    Selection manipulation\Expand: added 'By rating' entry.
    Selection manipulation\Jump: added 'By rating' entry.

Changed

    Last.fm: button is now animated during all asynchronous tasks.
    Other tools\Import track list: tracks are now also preferred by higher rating (if possible).
    Pools: when removing duplicates, chosen tracks are now preferred by higher rating and not live tracks (if possible). This is apart from the forced query filtering (which may result on this feature being irrelevant in some use cases).
    Top Rated Tracks from...: when removing duplicates, chosen tracks are now preferred by higher rating and not live tracks (if possible). This is apart from the forced query filtering (which may result on this feature being irrelevant in some use cases).
    Most played Tracks from...: when removing duplicates, chosen tracks are now preferred by higher rating and not live tracks (if possible). This is apart from the forced query filtering (which may result on this feature being irrelevant in some use cases).
    Most played Tracks: when removing duplicates, chosen tracks are now preferred by higher rating and not live tracks (if possible). This is apart from the forced query filtering (which may result on this feature being irrelevant in some use cases).
    Search by tags (combinations): when removing duplicates, chosen tracks are now preferred by higher rating and not live tracks (if possible). This is apart from the forced query filtering (which may result on this feature being irrelevant in some use cases).
    Search by tags (queries): when removing duplicates, chosen tracks are now preferred by higher rating and not live tracks (if possible). This is apart from the forced query filtering (which may result on this feature being irrelevant in some use cases).
    Last Action: available now as dynamic main menu (and thus can be bound to a keyboard shortcut).

Removed
Fixed

    UI: tooltip flickering while pressing Shift/Ctrl over a button in icon-only mode.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-06-29 21:37:51
https://github.com/regorxxx/Playlist-Tools-SMP/releases/tag/v3.0.0-beta.29
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-07-28 22:38:00
https://github.com/regorxxx/Playlist-Tools-SMP/releases/tag/v3.0.0

Quote
[3.0.0] - 2023-07-28
Added
Changed

    Configuration: ALBUM ARTIST is now used instead of ARTIST by default (on new installations). This ensures better compatibility with classical music, where the artist is the actual performer but the album artist is the original composer/artist. To apply the change on existing installations, delete '[foobar_profile]\js_data\presets\global\globQuery.json' and '[foobar_profile]\foobar2000\js_data\presets\global\globTags.json' files. Further configuration may be needed via menus.

Removed
Fixed

    Portable: 'Script integration\SMP Dynamic menu\Custom function' now allow relative paths for included scripts to enhance portability compatibility. Path is relative to the 'xxx-scripts' root.
    Portable: 'Add SKIP tag to playback' now uses relative paths by default.
    Script Integration\SMP Dynamic menu: fixed crash in some instances while using 'Custom function' or 'Custom menu'.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-09-14 19:05:38
v3.1.0 - QuickSearch & QuickMatch
https://github.com/regorxxx/Playlist-Tools-SMP/releases/tag/v3.1.0

Quote
Added

    Quickmatch: added new button to look for other tracks on library with same tag values than the focused track; similar to "quicksearch" but limited to the selected tag. Also supports -full- tag retrieval from WilB's Biography script, 'locale' tag retrieval from World-Map-SMP, 'LASTFM_SIMILAR_ARTIST' tag retrieval from foo_uie_biography and 'SIMILAR ARTISTS SEARCHBYDISTANCE' tag retrieval from Search by Distance-SMP.
    Quicksearch: added setting to sort the results found. By default: '%ALBUM ARTIST%|%ALBUM%|%TRACK%'. Set to '$rand()' to randomize order.
    Quicksearch: pressing Shift + Ctrl will apply the search to the current playlist instead of the entire library.
    Quicksearch: added setting to preserve original sorting when using current playlist as source. i.e. tracks matched will be output in the original appearance order.
    Playlist Revive: added entry to select dead items on current playlist.

Changed

    Other tools\Check Tags: track list is de-duplicated before analysis. This may be relevant on album list views where a file appears multiple times at the tree.
    Playlist Revive: some menu entries are now grayed out if the active playlist is locked (remove/add items).
    Playlist Revive: simplified menus to just one option per playlist, selection or all playlists.
    Playlist Revive: now ensures the track which replaces a dead item also exists, since foobar2000 may have a dead track on library. Thus a dead track may be used to substitute another dead track; not a bug since it's native behavior, but this change aligns better with the expected result.
    Playlist Revive: AutoPlaylists are now also analyzed, although they can not be changed.
    Playlist Revive: in case a locked playlist (remove/add items) contains dead items a warning will be shown.
    Playlist Revive: improved error handling.

Removed
Fixed

    Portable: 'Script integration\SMP Dynamic menu\Custom function' removed warning about not found file already included. Also improved the logic to try to include only once.
    Last.fm: bio tag retrieval setting could not be disabled.


X
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2023-09-17 05:17:09
Have an error with the new scripts.
I start fresh and when I start to customize the tag mapping for mood to ["MOOD","MOOD ALLMUSIC","THEME","THEME ALLMUSIC"] I get this

Code: [Select]
rror: Spider Monkey Panel v1.6.1-mod ({341046C8-56E8-4AC9-8E11-E25A8789D068}: Playlist Tools: Buttons Bar v3.0.1 by XXX)
tag is not defined

File: playlist_tools_menu_search_by_distance.js
Line: 205, Column: 17
Stack trace:
  func@playlist_tools_menu_search_by_distance.js:205:17
  _menu/this.btn_up/<@menu_xxx.js:408:15
  _menu/this.btn_up@menu_xxx.js:398:24
  ["Playlist Tools"]<@buttons_playlist_tools.js:57:9
  themedButton/this.onClick@buttons_xxx.js:432:21
  @buttons_xxx.js:754:21
  fireEvents/</<@callbacks_xxx.js:149:37
  fireEvents/<@callbacks_xxx.js:145:30

and the panel crash.

After a reload the panel didn't crash and the modification show up in the menu but not in the last.fm button.

Also the last.fm button doesn't seem to see the data of bio panel.

The listenbrainz one show it without problem.

I make sure to have the notify tags set to true in bio..

For example.

The files didn't have any last.fm, allmusic or wikipedia info in tags.

The listenbrainz menu

(https://i.imgur.com/nk7NCDE.png)

(https://i.imgur.com/kBWwxPl.png)

but the last.fm one

(https://i.imgur.com/QwdCeoe.png)



No similar artist, mood, etc.

In tag mapping global I have this

(https://i.imgur.com/iWJON7H.png)

Adding tags to file like

(https://i.imgur.com/HdyaofL.png)

Only show mood and theme and not the other added in the setting

(https://i.imgur.com/erR2jVK.png)

This is also true to listenbrainz one.

(https://i.imgur.com/AKKsKLa.png)




Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-09-17 22:27:54
Quote
After a reload the panel didn't crash and the modification show up in the menu but not in the last.fm button.
Why should it show there too? Every button has its own config.

Quote
and the panel crash.
Fixed.

Quote
Also the last.fm button doesn't seem to see the data of bio panel.
Works fine here. Have you enabled bio tags on the button?
X X

Quote
In tag mapping global I have this
There is no such thing as global tag mapping. Every button and tool uses its own config. You are totally mixing things here.

Since there is no menu to edit tags on ListenBrainz or Last.fm Tools, that clearly means tags are not configurable for those 2 tools. It just reads these tags:
   
Quote
      {name: 'Artist top tracks', tf: ['ARTIST', 'ALBUM ARTIST']},
      {name: 'Artist shuffle', tf: ['ARTIST', 'ALBUM ARTIST']},
      {name: 'Similar artists to', tf: ['ARTIST', 'ALBUM ARTIST']},
      {name: 'Similar artists', tf: ['SIMILAR ARTISTS SEARCHBYDISTANCE', 'LASTFM_SIMILAR_ARTIST', 'SIMILAR ARTISTS LAST.FM']},
      {name: 'Album tracks', tf: ['ALBUM']},
      {name: 'Genre & Style(s)', tf: ['GENRE', 'STYLE', 'ARTIST GENRE LAST.FM', 'ARTIST GENRE ALLMUSIC', 'ALBUM GENRE LAST.FM', 'ALBUM GENRE ALLMUSIC', 'ALBUM GENRE WIKIPEDIA', 'ARTIST GENRE WIKIPEDIA']},
      {name: 'Folksonomy & Date(s)', tf: ['FOLKSONOMY', 'OCCASION', 'ALBUMOCCASION', 'LOCALE', 'LOCALE LAST.FM', 'DATE', 'LOCALE WORLD MAP']},
      {name: 'Mood & Theme(s)', tf: ['MOOD','THEME', 'ALBUMMOOD', 'ALBUM THEME ALLMUSIC', 'ALBUM MOOD ALLMUSIC']},

Will not change it to remap tags here since those are the standard tag names provided by all the tools (BIO and others).
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2023-09-18 02:19:27
Why should it show there too? Every button has its own config.
Fixed
Ok, get it. But the playlists tools search by distance tag remapping option affects others buttons that use this feature, like the predefined ones or a new custom, right?

Quote
Works fine here. Have you enabled bio tags on the button?
Nope, I didn't even know this menu existed  :P . Now it works

Quote
There is no such thing as global tag mapping. Every button and tool uses its own config. You are totally mixing things here.

Since there is no menu to edit tags on ListenBrainz or Last.fm Tools, that clearly means tags are not configurable for those 2 tools. It just reads these tags:
      {name: 'Artist top tracks', tf: ['ARTIST', 'ALBUM ARTIST']},
      {name: 'Artist shuffle', tf: ['ARTIST', 'ALBUM ARTIST']},
      {name: 'Similar artists to', tf: ['ARTIST', 'ALBUM ARTIST']},
      {name: 'Similar artists', tf: ['SIMILAR ARTISTS SEARCHBYDISTANCE', 'LASTFM_SIMILAR_ARTIST', 'SIMILAR ARTISTS LAST.FM']},
      {name: 'Album tracks', tf: ['ALBUM']},
      {name: 'Genre & Style(s)', tf: ['GENRE', 'STYLE', 'ARTIST GENRE LAST.FM', 'ARTIST GENRE ALLMUSIC', 'ALBUM GENRE LAST.FM', 'ALBUM GENRE ALLMUSIC', 'ALBUM GENRE WIKIPEDIA', 'ARTIST GENRE WIKIPEDIA']},
      {name: 'Folksonomy & Date(s)', tf: ['FOLKSONOMY', 'OCCASION', 'ALBUMOCCASION', 'LOCALE', 'LOCALE LAST.FM', 'DATE', 'LOCALE WORLD MAP']},
      {name: 'Mood & Theme(s)', tf: ['MOOD','THEME', 'ALBUMMOOD', 'ALBUM THEME ALLMUSIC', 'ALBUM MOOD ALLMUSIC']}
Will not change it to remap tags here since those are the standard tag names provided by all the tools (BIO and others).

Knowing how to make that bio panel tags show up is not necessary, I only tried to remap when I saw that they didn't be there.

Thanks



Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-09-18 08:09:39
Quote
Ok, get it. But the playlists tools search by distance tag remapping option affects others buttons that use this feature, like the predefined ones or a new custom, right?
No. As said, every button has its own config. So you can set different tags for different buttons/tools.

Quote
Nope, I didn't even know this menu existed  :P . Now it works
Tooltip over buttons shows the available menus. There is a general UI design on all my scripts.
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2023-09-18 13:16:49
Quote
Ok, get it. But the playlists tools search by distance tag remapping option affects others buttons that use this feature, like the predefined ones or a new custom, right?
No. As said, every button has its own config. So you can set different tags for different buttons/tools.

Quote
Nope, I didn't even know this menu existed  :P . Now it works
Tooltip over buttons shows the available menus. There is a general UI design on all my scripts.

So If I want tag remapping in a sbd button, I must make a custom one that allow tag remapping. and is only used in this one.

Ok



Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-09-18 21:58:23
Quote
Ok, get it. But the playlists tools search by distance tag remapping option affects others buttons that use this feature, like the predefined ones or a new custom, right?
No. As said, every button has its own config. So you can set different tags for different buttons/tools.

Quote
Nope, I didn't even know this menu existed  :P . Now it works
Tooltip over buttons shows the available menus. There is a general UI design on all my scripts.

So If I want tag remapping in a sbd button, I must make a custom one that allow tag remapping. and is only used in this one.

Ok
Yep. Every button has its own config.

On second thought, I may add tag remapping to ListenBrainz/Last.fm tools at some point. But those are the only 2 tools without tag remapping.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-09-20 15:14:15
https://github.com/regorxxx/Playlist-Tools-SMP/releases/tag/v3.1.1

Quote
## [3.1.1] - 2023-09-20
### Added
### Changed
### Removed
### Fixed
- Tags: crash when using Search by Distance tag remapping.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-10-05 19:40:31
https://github.com/regorxxx/Playlist-Tools-SMP/releases/tag/v3.2.0

Quote
[3.2.0] - 2023-10-05
Added

    Selection Manipulation\Select by query: equivalent to 'Playlist Manipulation\Query filtering' but selecting the tracks by query (instead of removing them). Not it also works with dynamic queries.
    Last.fm: tag remapping is now available along customizable entries at buttons configuration menu.
    Last.fm: added forced query to pre-filter library for all lookups. Greatly speedups the process of searching matches in library.

Changed

    Pools: default presets have been changed for all 'Top tracks...' pools. Now instrumentals are only allowed for tracks with rating > 3 (see query below). Restore defaults in submenu to load updated presets.
    Playlist Manipulation\Query filtering: new default preset added to filter instrumental tracks ('NOT (STYLE IS instrumental OR GENRE IS instrumental OR SPEECHNESS EQUAL 0 OR LANGUAGE IS zxx)').
    Configuration: expanded user configurable files at '[FOOBAR PROFILE FOLDER]\js_data\presets\global' with new queries. File will be automatically updated with new values (maintaining the user settings).
    Configuration: improved the user configurable files update check for missing keys.
    Presets: all default menu entries are now saved as a file preset named 'default.json' for every tool at '.\presets\Playlist Tools'. Importing them, when all entries have been removed, is equivalent to use 'Restore defaults' for that tool. Whenever a default entry is updated (for ex in future versions), the file is also updated. These entries may be used as example to create your own presets.
    Search by Distance: changed default tag values, reset defaults at 'Configuration/Search by Distance/Tag remapping...' to apply.
    Helpers: updated helpers.

Removed

    Search by Distance: tags cache menu entry on configuration submenu has been removed (the setting is still accessible via the properties panel).
    Search by Distance: 'Create theme file with selected track' menu entry on configuration submenu has been removed. It has no use now on this tool.

Fixed

    Search by Distance: 'dynGenre' tag being configurable when it should have not been (along other virtual tags added).
    UI: fix extra tab on Last.fm tools tooltip.


@paregistrase the last.fm remap implementation  ;)
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2023-10-05 23:46:42
@paregistrase the last.fm remap implementation  ;)

Cool. Now I can restrict the last.fm playlist generation only with the last.fm specific tags from bio  8) . This button is becoming a centerpiece of my foobar.

Thank you very much


Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-11-15 18:00:03
v3.3.0 - Deduplication for pools + toolbar customization
https://github.com/regorxxx/Playlist-Tools-SMP/releases/tag/v3.3.0

Quote
[3.3.0] - 2023-11-15
Added

    Auto-update: added -optional- automatic checks for updates on script load; enabled by default. Compares version of current file against GitHub repository. Manual checking can also be found at the settings menu. For buttons within the toolbar every button will check for updates independently (although the toolbar menu has an entry for batch checking). Setting may also be globally switched at '[FOOBAR PROFILE FOLDER]\js_data\presets\global\globSettings.json', by changing 'bAutoUpdateCheck'. It will apply by default to any new installed script (previous scripts will still need to be manually configured to change them).
    Pools: new 'deDuplicate' option for pools which filters the group by TF and against the rest of the tracks already picked, to ensure there are zero duplicates -tracks with same TF result- (within the group and at the final playlist). For ex. for groups defined by '%ARTIST%', X tracks per artist would be retrieved. The standard duplicates removal procedure would check for tracks with same title, artist and date. But is possible to have a track and a live track from another year, which may be undesirable. Setting 'deDuplicate' to '[%ARTIST%,%TITLE%]' would also ensure that within a group of same artist, no 2 tracks have the same title. Note that's different to define a group by '%ARTIST%-%TITLE%', which does not ensure X track per artist (you could have 10 tracks from Artist A and 2 from Artist B as long as their titles are different). Check '.\presets\Playlist Tools\pools\allowedKeys.txt' for usage and examples.
    Presets: presets can now be individually exported by tool (instead of exporting all at the configuration submenu).
    Buttons bar: added some safe-checks to panel properties.
    Buttons bar: added custom button hover color and customization.
    Buttons bar: added custom offset for buttons along X/Y axis.
    Buttons bar: added full size mode for buttons, which will use full Width/Height according to Y/X orientation.
    Added setting to disable popups related to features not being supported by the OS (at startup). Found at '[FOOBAR PROFILE FOLDER]\js_data\presets\global\globSettings.json', by changing 'bPopupOnCheckSOFeatures'. By default popups are always shown. This setting will never be exposed within foobar, only at this file.

Changed

    Presets: separator entries are now non editable.
    UI: toolbar's color menu entries now show the color name along the menu entry. 'none' equals to no color.
    Buttons bar: renamed background buttons to 'Use themed buttons', which depends on the windows theme.
    Helpers: updated helpers.

Removed
Fixed

    Presets: presets not being saved properly for later exporting when editing an entry in some cases.
    Quickmatch: crash without Last.fm tools button also loaded.

Spoiler (click to show/hide)
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2023-11-15 20:16:17
Good new additions @regor

About the updates....Do it check for new GitHub updates or only new releases?
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-11-15 20:25:03
Only releases, so it doesn't bother anyone with small changes. Also only releases are 'guaranteed' to be stable.

It would also be really difficult to track changes by commit. There are other software out there for those interested on that.
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2023-11-15 20:31:31
Is the logic solution, only asking to confirm my guessing.

Thanks for the great work.



Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-11-15 20:41:09
:) I may study a way to check for commits at some point though (with a setting to enable at the globSettings.json file), but it's not trivial.
Since the commit id is set after I upload the files xd So I can not assign a state of files to a commit and compare against github. It would require CRC comparisons, file per file, which I may precompute if I find a way to do it automatically in github,
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2023-11-15 21:44:26
Nah, is cool with releases. Less burden to users and secure updates (more stable).

At the end, to tracks more granular updates, there are other more specialized tools.

Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-11-24 19:15:05
https://github.com/regorxxx/Playlist-Tools-SMP/releases/tag/v3.4.0

Quote
[3.4.0] - 2023-11-24
Added

    Other tools\Write Tags: new setting to disable popups about file format/tools compatibility.
    Other tools\Write Tags: new setting to disable popups about tool tips.
    Buttons bar: new setting to enable asynchronous loading of buttons, now the default behavior.

Changed

    Readmes: improved dynamic queries and tags readme.
    Helpers: updated helpers.
    Console: reduced max log file size to 1 MB.

Removed
Fixed

    Other tools\Write Tags: crash when running Audio MD5 tool on iso files.
    Playlist Revive: fixed menu entries not being grayed out in some cases.
    Playlist Revive: fixed menu entry not showing the actual similarity value after changing it.
    Auto-update: changed logic to check Playlist Tools's buttons updates independently to the toolbar version, so mixed scripts versions no longer produce false negatives.

Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2023-11-25 15:43:12
Got a crash with tags automation

Code: [Select]
Error: Spider Monkey Panel v1.6.1-mod ({376C6C53-A11B-46E1-B34A-44D63AFDF25C})
include failed:
utils.ReadTextFile(...).match(...) is null

File: buttons_tags_automation.js
Line: 19, Column: 106
Stack trace:
  @buttons_tags_automation.js:19:106
  includeButton@buttons_toolbar.js:182:4
  reducer/</</<@helpers_xxx_prototypes.js:309:60
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-11-26 21:47:58
https://github.com/regorxxx/Playlist-Tools-SMP/releases/tag/v3.4.1

Quote
[3.4.1] - 2023-11-24
Added

    UI: added setting to disable tooltip on all scripts. Found at '[FOOBAR PROFILE FOLDER]\js_data\presets\global\globSettings.json', by changing 'bTooltip'. By default tooltip is always shown. This setting will never be exposed within foobar, only at this file.

Changed
Removed
Fixed

    Buttons bar: crash with multiple buttons while checking version number.

Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2023-11-27 13:08:58
Still same crash.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2023-11-27 16:20:55
That's not possible, since the last release doesn't have a line 19 with that code (which is the thing I fixed). So there is something wrong on your side or the error must be another one.

X
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2023-11-27 18:08:20
My god, I decompress Playlist-Tools-SMP-main.zip but the new download is Playlist-Tools-SMP-main(1).zip

 :-[
Title: Re: Playlist-Tools-SMP
Post by: regor on 2024-01-09 17:20:27
Have finally bypassed all problems found to use ChromaPrint within foobar (see https://hydrogenaud.io/index.php/topic,120978.msg1011036.html#msg1011036) and I will create a new repository with the FooID and ChromaPrint tools.

Whenever we have a SMP x64 build, it will use cached tags, but on large libraries and x32 builds it will use ffprobe to retrieve the fingerprint tags without reaching RAM limits.

Database is now created incrementally, so every-time the library changes only the added/removed tracks must be updated (instead of calculating all again).
And the JSON database files are split into small chunks, so it doesn't crash with Utils.ReadTextFile() anymore. I can still be optimized here and there, but it finds matches in 5 secs in a set of 80K tracks.

X
Title: Re: Playlist-Tools-SMP
Post by: regor on 2024-02-28 18:29:23
https://github.com/regorxxx/Playlist-Tools-SMP/releases/tag/v4.0.0
Quote
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_XXX.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.
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2024-03-01 10:03:26
I have this enable in auto tags

X

Add tags on batch to selected tags do the FooID and ChromaPrint and stop. It is necessary to Manually force next step.

Then it starts scanning essentia and RG, but the audio md5 is not wrote.

The component is installed and the audio md5 scan in utilities-create audio md5 tags works fine
Title: Re: Playlist-Tools-SMP
Post by: regor on 2024-03-01 11:27:03
The processing order is not the one at the list.
Remove ReplayGain -> FooId -> Masstager MD5 -> DR -> ChromaPrint -> ffmpeg LRA -> Folksonomy -> Essentia (fast) -> Essentia -> AudioMD5 -> ReplayGain

The audio MD5 calls 'Utilities/Create Audio MD5 checksum' contextual menu. Check it exists with the same name. Works fine on my pc, but maybe newest versions have changed it.

EDIT: I think Is my fault, MD5 tool looks for AUDIOMD5 tag and Audio MD5 tool looks for MD5 tag. Let me check it
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2024-03-01 11:34:12
The processing order is not the one at the list.
Remove ReplayGain -> FooId -> Masstager MD5 -> DR -> ChromaPrint -> ffmpeg LRA -> Folksonomy -> Essentia (fast) -> Essentia -> AudioMD5 -> ReplayGain

The audio MD5 calls 'Utilities/Create Audio MD5 checksum' contextual menu. Check it exists with the same name. Works fine on my pc, but maybe newest versions have changed it.

EDIT: I think Is my fault, MD5 tool looks for AUDIOMD5 tag and Audio MD5 tool looks for MD5 tag. Let me check it

I have Utilities>Create Audio MD5 tag
& Create Audio MD5 tag (rescan)
Title: Re: Playlist-Tools-SMP
Post by: regor on 2024-03-01 11:37:21
Yep. 0.5 changed the wording... so that's the thing to fix.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2024-03-01 11:41:05
This should work on 0.6.5 and also on previous versions.
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2024-03-01 11:59:32
Now the audiomd5 works, but still stop after chromaprint. Need to do next step.
the audiomd5 and RG give file already in use and not write the tags
Title: Re: Playlist-Tools-SMP
Post by: regor on 2024-03-01 12:05:12
If you want to stop having problems, downgrade audiomd5 plugin.

Some things have changed which will need further investigation.
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2024-03-01 12:06:04
If you want to stop having problems, downgrade audiomd5 plugin.

Some things have changed which will need further investigation.

Okis
Title: Re: Playlist-Tools-SMP
Post by: regor on 2024-03-01 12:13:54
Anyway maybe it's a one time error, just retry. Or send me the files you have problems with, so I can test them.

There are too many variables (with a lot of external executables), and while I will try to fix any obvious bug, as stated on the readme, it's just a private tool to be used as is. If something fails but files are tagged fine just use next step.

BTW: the way it currently works, it checks at every step that the tag is written on [allowed] selected files. So there is at least a single file on some step failing. If that happens, you must manually run next step. This is done to ensure you can read the console and find the track failing, otherwise you would have no notice of something failing (since all tagging is done by external tools).
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2024-03-01 12:34:26
I'll make some test with different files and tool used to see when failed. This afternoon, I have time to expend
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2024-03-01 16:02:07
I make sure that the source file can be tagged with audiomd5, RG and FooID with the contextual menu. Also that doesn't gives error with essentia. All correct in the file side.

Erase that tags and begins testing tools once at a time with the SMP button

FooID:
Code: [Select]
Error calculating fingerprint for file: file://Z:\mnt\wdc\Music\Files\Incoming\2004 Philip Glass - Concerto For Cello And Orchestra - Concerto Fantasy For Two Timpanists And Orchestra (Orange Mountain Music)\01 Concerto For Cello And Orchestra - Movement I.flac / 0. Error: File is already in use
Save fingerprints to files - completed in 0.0031677 seconds
The file doesn't get tagged and the button keeps active until manually force next or stop execution

ChromaPrint:
File tagged but the button keeps active

Audio MD5:
audio MD5 Pop-up window-Status file is already in use. The button return to normal state.

ReplayGain:
All normal.

EBUR 128 ffmpeg:
All normal

essentia:
All normal

All together (EBUR with ffmpeg):
FooID and ChromaPrint success. Stop the scannings until manually next
EBUR ffmpeg success
essentia sucess
audio MD5 and RG file already in use
Button return to normal.

Seems a little bit weird that fooID doesn't work in solitary and works in addition, but I did it several times and the result is consistent..

Other files presents same behavior

Edit: audio MD5 version 0.6.4

Edit 2: With the fingerprint tools button, both (FooID and ChromaPrint) work fine

Full console log


Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2024-03-04 07:56:27
With latest changes, the situation is much better.
Still stop after foo ID, Chroma Print scan and need manual intervention to continue, but all scans finish without errors and write the tags except audio md5 that pop up a window to confirm (just like when it is launched from menu).
Title: Re: Playlist-Tools-SMP
Post by: regor on 2024-03-04 11:05:52
Nothing has changed, except the menu name xd I mean, file being in use is either a Foobar thing or your OS or your HDD being too slow. And it may happen randomly.

I can adjust the timeouts between tools to give more time between them, but that's totally random anyway. I could allow the user to set the timeouts though, in case the standard ones don't work.
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2024-03-04 11:18:00
Nothing has changed, except the menu name xd I mean, file being in use is either a Foobar thing or your OS or your HDD being too slow. And it may happen randomly.

I can adjust the timeouts between tools to give more time between them, but that's totally random anyway. I could allow the user to set the timeouts though, in case the standard ones don't work.

I think that could be the lyrics, I change to write at 1/3 and the file in use errors disappear.
Title: Re: Playlist-Tools-SMP
Post by: Defender on 2024-03-07 00:26:23
Interesting to see.

The album LUFS and PLRA values are calculated taking the length of the underlying songs in respect (which is correct imo), whilst the album DR is based on rounded integer values per track which are totaled and divided by the number of tracks (which is not correct imo).

I hope that if Album LRA is going to be implemented it uses the same method as LUFS and PLRA (based on length of the underlying songs).
Maybe also an idea to overwrite the Album DR with the correct value from the Playlist Tools "Add tags on batch to selected tracks" too?
Title: Re: Playlist-Tools-SMP
Post by: regor on 2024-03-07 10:22:27
Quote
Maybe also an idea to overwrite the Album DR with the correct value from the Playlist Tools "Add tags on batch to selected tracks" too?
Not going to do that. The tag is provided by an external plugin, just ask their developers for it. I don't have the motivation for it, since it would be useless for me.

Quote
I hope that if Album LRA is going to be implemented it uses the same method as LUFS and PLRA (based on length of the underlying songs).
I'm fine with that whenever I add it.
Title: Re: Playlist-Tools-SMP
Post by: Defender on 2024-03-08 19:13:02
Quote
Maybe also an idea to overwrite the Album DR with the correct value from the Playlist Tools "Add tags on batch to selected tracks" too?
Not going to do that. The tag is provided by an external plugin, just ask their developers for it. I don't have the motivation for it, since it would be useless for me.

I tried to do that earlier. Unfortunately the developer has been offline since 2011.
Reason I asked you is because you've got the logic anyway if/when you're going to implement the LRA album tag.
Title: Re: Playlist-Tools-SMP
Post by: Defender on 2024-03-12 08:45:07
Hi,

How do I configure the following:

1) Color of the tooltips
2) Color of dropdown (probably I cannot because it's part of the default dark theme color?)
3) Color of the animated hover around a button. It's white and I would like to have a more blueish animation. I experimented with the  Set customs hover color but that does not change anything.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2024-03-13 20:03:38
1) It's a windows/foobar thing, not mine. So either ask the foobar developer or look for windows info about it.
2) The same.
3) You have not changed the hover color on your settings, no idea what you have changed. It says white. (according to your screenshot)
Title: Re: Playlist-Tools-SMP
Post by: Defender on 2024-03-13 23:53:46
1) It's a windows/foobar thing, not mine. So either ask the foobar developer or look for windows info about it.
2) The same.
3) You have not changed the hover color on your settings, no idea what you have changed. It says white. (according to your screenshot)

Thx for clarifying 1) and 2).

About nr 3):
I'm referring to the outside hover color which is defined by Use button's border on hover. If I disable it there is no outside button color on hover as expected. When enabled it is white and I have no clue where I can set the button's border color. None of the colors in the configuration are set to white.

In the screenshot you can see the outside button color (white) on hover
Title: Re: Playlist-Tools-SMP
Post by: regor on 2024-03-17 12:16:41
That's not configurable. Neither it is on any other UI element out there. It's just black border + white diffused background which works with any combination of bar/button color.

I could add another setting for it, but I have no motivation for it (i.e. I prefer to spend my free time on other things which I will use). You can disable the borders on hover which would hide that if you don't like it.

Or edit buttons_xxx.js, line 378 and 381
Title: Re: Playlist-Tools-SMP
Post by: marc2k3 on 2024-03-17 18:28:29
1) It's a windows/foobar thing, not mine. So either ask the foobar developer or look for windows info about it.

It's obviously not your issue but it is a component thing. Getting dark mode/callbacks for dark mode being toggled are provided by SDK methods but tooltips have to be applied manually per component -  just like the dialogs. Nothing anyone can do except wait for an updated SMP with dark mode support.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2024-03-17 19:25:58
Yep, when I said foobar developers, I was talking about SMP/components too. Was not clear, thanks for clarifying.

Anyway, I really doubt anyone will add customizable colors for the dropdown menus or tooltip, except offering dark/light modes. It would be great though.

EDIT: If anyone wants to request...
https://hydrogenaud.io/index.php/topic,116669.new.html
Title: Re: Playlist-Tools-SMP
Post by: Defender on 2024-03-17 20:30:52
That's not configurable. Neither it is on any other UI element out there. It's just black border + white diffused background which works with any combination of bar/button color.

I could add another setting for it, but I have no motivation for it (i.e. I prefer to spend my free time on other things which I will use). You can disable the borders on hover which would hide that if you don't like it.

Or edit buttons_xxx.js, line 378 and 381

Strange, you said the button outside hover was not configurable . Maybe I misunderstood, because I was able to solve the button outside hover colors after you pointed me in the right direction. Thx!

I disabled one DrawRoundRect to remove the outermost hoverline and changed the color in another DrawRoundRect in one of my own button colors . Looks great imo.

I have yet another issue with the tooltips. I understand the color of the tooltips can currently not be changed (or put in dark mode).
The issue I encountered is that when I ported my current skin to an OLED with scaling set to 250% it was quiet easy to set scaling for the Playlist-Tools. However the tooltips do not scale (and are unreadable as a result).

Is there a solution for scaling the tooltips?

Another issue is the warning I get about SO features upon starting foobar. The fix you mention means installing IE11 which my Windows 11 23H2 22631.3296 does not allow, probably because Edge (and Firefox) are installed.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2024-03-17 20:54:08
Strange, you said the button outside hover was not configurable . Maybe I misunderstood, because I was able to solve the button outside hover colors after you pointed me in the right direction. Thx!

I disabled one DrawRoundRect to remove the outermost hoverline and changed the color in another DrawRoundRect in one of my own button colors . Looks great imo.
Maybe I misunderstood you.

Quote
I have yet another issue with the tooltips. I understand the color of the tooltips can currently not be changed (or put in dark mode).
The issue I encountered is that when I ported my current skin to an OLED with scaling set to 250% it was quiet easy to set scaling for the Playlist-Tools. However the tooltips do not scale (and are unreadable as a result).
If you had installed the scripts after scaling, that would have not happened.

Edit the global config files: ...AppData\Roaming\foobar2000\js_data\presets\global\globFonts.json

Note these files will affect ALL my scripts/packages (previously installed or future ones).

EDIT: will add this info to the readme/wiki since many people may not know it.

Quote
Another issue is the warning I get about SO features upon starting foobar. The fix you mention means installing IE11 which my Windows 11 23H2 22631.3296 does not allow, probably because Edge (and Firefox) are installed.
As you can imagine, how you fix it is your problem (or you can ignore it). The popup also points you to a way to disable the warning in case you don't. It's set by default to be checked at every startup to force people reading it.

Now, if you find another method to enable HTML popups (found on BIO package) on win 11, report it and I will add it to the popup.
Title: Re: Playlist-Tools-SMP
Post by: Defender on 2024-03-17 21:18:49
Quote
I have yet another issue with the tooltips. I understand the color of the tooltips can currently not be changed (or put in dark mode).
The issue I encountered is that when I ported my current skin to an OLED with scaling set to 250% it was quiet easy to set scaling for the Playlist-Tools. However the tooltips do not scale (and are unreadable as a result).
If you had installed the scripts after scaling, that would have not happened.

Edit the global config files: ...AppData\Roaming\foobar2000\js_data\presets\global\globFonts.json

Note these files will affect ALL my scripts/packages (previously installed or future ones).

EDIT: will add this info to the readme/wiki since many people may not know it.

Uh? I am not talking about the fonts you are using in Playlist Tools. It's about the font being used in the Tooltips that does not scale.
All the fonts described in your globFonts.json are eactly the fonts and fontsizes I am using myself. Windows does scale these fonts automatically.

So please be more specific. Which one is being used in Tooltips?

Quote
Another issue is the warning I get about SO features upon starting foobar. The fix you mention means installing IE11 which my Windows 11 23H2 22631.3296 does not allow, probably because Edge (and Firefox) are installed.

Quote
As you can imagine, how you fix it is your problem (or you can ignore it). The popup also points you to a way to disable the warning in case you don't. It's set by default to be checked at every startup to force people reading it.

Now, if you find another method to enable HTML popups (found on BIO package) on win 11, report it and I will add it to the popup.

No complaint. Just a headsup that your Fix is not working anymore on a fully upgraded windows. So maybe update the warning. People might get confused if the fix does not work. And yes I know I can disable it, but I don't like to disable stuff.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2024-03-17 21:39:06
Quote
So please be more specific. Which one is being used in Tooltips?
? Can not be more specific than that.

X

Quote
No complaint. Just a headsup that your Fix is not working anymore on a fully upgraded windows. So maybe update the warning. People might get confused if the fix does not work. And yes I know I can disable it, but I don't like to disable stuff.
It's not "my fix". And it's not a feature I use. It's also not my responsibility to find how things work on Win 11 or any other OS. I just show general info gathered on the forums.

The popup clearly states "none of my scripts use it" -for this particular fature-. I added it to help people recognize why usual features are not working on SMP  (specially using Wine). Whatever users do with it, is their problem. If you don't want to disable it, so be it. If you have any info to "update it" for Win 11, great, but there is nothing more I will do.
Title: Re: Playlist-Tools-SMP
Post by: Defender on 2024-03-18 11:48:36
Quote
So please be more specific. Which one is being used in Tooltips?
? Can not be more specific than that.

<Picture>

Quote
No complaint. Just a headsup that your Fix is not working anymore on a fully upgraded windows. So maybe update the warning. People might get confused if the fix does not work. And yes I know I can disable it, but I don't like to disable stuff.
It's not "my fix". And it's not a feature I use. It's also not my responsibility to find how things work on Win 11 or any other OS. I just show general info gathered on the forums.

The popup clearly states "none of my scripts use it" -for this particular fature-. I added it to help people recognize why usual features are not working on SMP  (specially using Wine). Whatever users do with it, is their problem. If you don't want to disable it, so be it. If you have any info to "update it" for Win 11, great, but there is nothing more I will do.

About the scaling thing ... I was able to solve it by changing the font in globFonts just as you suggested and restarting fooBar. After that I changed it once more to the exact original values, and restarted fooBar once again. Also no issues.
So it seems as if something (Spidermonkey?) checks if globFonts is changed/touched and issues a kind of reset with the desired result.

I'm quite reluctant to ask this since I don't need it anymore but I have a small suggestion.
Since your Playlist-Tools have an excellent routine to resize buttons and text, would it be an idea to include a touch of the globFonts file (or give a popup with info about globFonts)? You won't be changing any actual data so it would not hurt anything else out there.

Anyway, issue solved for me.

About the SO features popup ...
You mention that Bio Script configuration will not work. I don't know which Bio Script you are referring to, but I use WillB's and I have no issues whatsoever with using that script or it's configuration on the system that gets the SO features warning popup. So if you are referring to WillB's script the SO features warning is in my case a false positive.

Another thing is that the popup is completely random. Only about 50% of the times I start fooBar on that machine I get the popup. Maybe you have an idea why it is a random thing.

I did notice that I had a lot of Windows Defender Controlled Folder Access blocks for powershell.exe (which you can unfortunately only see when you go inside Windows Defender). Don't know if it is related, but I granted powershell.exe full access.

Since I actually do not have any issues I will now change bPopupOnChecksOFeatures. No merit in chasing red herrings.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2024-03-18 12:18:56
Quote
About the scaling thing ... I was able to solve it by changing the font in globFonts just as you suggested and restarting fooBar. After that I changed it once more to the exact original values, and restarted fooBar once again. Also no issues.
So it seems as if something (Spidermonkey?) checks if globFonts is changed/touched and issues a kind of reset with the desired result.
Obviously that's how it works. There is no need to restart foobar, just reloading the panel works too. Any setting there will be applied at startup in all my scripts as default values. BTW all this is already written on the json file...

Quote
Fonts used by scripts at multiple places on UI. File is loaded on the fly at startup, so no hard-saving on properties is involved (thus only requiring a panel reload to use the new values). The fallback font can not be changed, is forced by SMP/foobar2000.

Quote
Since your Playlist-Tools have an excellent routine to resize buttons and text, would it be an idea to include a touch of the globFonts file (or give a popup with info about globFonts)? You won't be changing any actual data so it would not hurt anything else out there.
I already said such info will be added on the readme/wiki. It's something globally applicable to all my scripts, not just this one.

Quote
You mention that Bio Script configuration will not work. I don't know which Bio Script you are referring to, but I use WillB's and I have no issues whatsoever with using that script or it's configuration on the system that gets the SO features warning popup. So if you are referring to WillB's script the SO features warning is in my case a false positive.
That one. Well something is not working since it warns about it.
Code: [Select]
new ActiveXObject('Scripting.FileSystemObject');
new ActiveXObject('MSXML2.XMLHTTP');
new ActiveXObject('ADODB.Stream');
If there is a problem, one of those, in your system, in a blank panel will make it crash. And all 3 are used on Bio.

Quote
Another thing is that the popup is completely random. Only about 50% of the times I start fooBar on that machine I get the popup. Maybe you have an idea why it is a random thing.
Nop. And that's why there is a way to disable it.  I don't care about OS or SMP exotic behavior, it may fail randomly in some cases at startup or because -surprise- win has bugs.
Thing is, if it fails at this point is ok. But if it fails later on panel usage, it crashes. As I said, I don't care about it, people can do whatever they want with it. And if it works fine, just ignore it.
Title: Re: Playlist-Tools-SMP
Post by: Defender on 2024-03-18 13:09:58
Quote
About the scaling thing ... I was able to solve it by changing the font in globFonts just as you suggested and restarting fooBar. After that I changed it once more to the exact original values, and restarted fooBar once again. Also no issues.
So it seems as if something (Spidermonkey?) checks if globFonts is changed/touched and issues a kind of reset with the desired result.
Obviously that's how it works. There is no need to restart foobar, just reloading the panel works too. Any setting there will be applied at startup in all my scripts as default values. BTW all this is already written on the json file...

I'm still confused. The information in globFonts with correctly scaled tooltip is exactly the same as it was before with wrongly scaled tooltip. Only difference is the filedate.
So is the info in globFonts always applied when a panel is reloaded (with starting fooBar?) or is it only applied if the filedate is touched?

Quote
Code: [Select]
new ActiveXObject('Scripting.FileSystemObject');
new ActiveXObject('MSXML2.XMLHTTP');
new ActiveXObject('ADODB.Stream');
If there is a problem, one of those, in your system, in a blank panel will make it crash. And all 3 are used on Bio.

No crash. So in my case a false positive.
Title: Re: Playlist-Tools-SMP
Post by: Defender on 2024-03-28 14:35:57
@regor

Case made a nice tool to scan for Truepeaks and number of clipped samples which integrates with the Replaygain context menu.

Would you consider to add this utility to be selectable in the button_automation_tags.js script?
Title: Re: Playlist-Tools-SMP
Post by: teleomorph on 2024-04-04 03:57:30
So this plugin only works if using 32-bit Foobar, and not 64 (v2), is that correct?
Title: Re: Playlist-Tools-SMP
Post by: paregistrase on 2024-04-04 04:10:04
So this plugin only works if using 32-bit Foobar, and not 64 (v2), is that correct?

Correct.
It depends on Spider Monkey Panel that still doesn't have a 64 bits version
Title: Re: Playlist-Tools-SMP
Post by: regor on 2024-04-04 10:45:38
@regor

Case made a nice tool to scan for Truepeaks and number of clipped samples which integrates with the Replaygain context menu.

Would you consider to add this utility to be selectable in the button_automation_tags.js script?
That plugin also has 3 different settings for tags usage and all tags are customizable... which means I would have to add all those possibilities on the script. That's a nope. Specially since that script is just meant for my personal usage.

I may add a single option using the default custom tags and nothing more. People may edit the script to change the tags though.
Title: Re: Playlist-Tools-SMP
Post by: Defender on 2024-04-04 11:00:41
@regor

Case made a nice tool to scan for Truepeaks and number of clipped samples which integrates with the Replaygain context menu.

Would you consider to add this utility to be selectable in the button_automation_tags.js script?
That plugin also has 3 different settings for tags usage and all tags are customizable... which means I would have to add all those possibilities on the script. That's a nope. Specially since that script is just meant for my personal usage.

I may add a single option using the default custom tags and nothing more. People may edit the script to change the tags though.

Great!
Would be great just to hit one button that does all things I want to scan, instead of one button and a couple of context clicks.

If you are referring to edit either tags_automation or buttons_tags_automation, I have to admit I had a look and those two scripts are way above my level to make changes unless I get specific instructions where to make those changes.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2024-04-04 11:08:21
@regor

Case made a nice tool to scan for Truepeaks and number of clipped samples which integrates with the Replaygain context menu.

Would you consider to add this utility to be selectable in the button_automation_tags.js script?
That plugin also has 3 different settings for tags usage and all tags are customizable... which means I would have to add all those possibilities on the script. That's a nope. Specially since that script is just meant for my personal usage.

I may add a single option using the default custom tags and nothing more. People may edit the script to change the tags though.

Great!
Would be great just to hit one button that does all things I want to scan, instead of one button and a couple of context clicks.

If you are referring to edit either tags_automation or buttons_tags_automation, I have to admit I had a look and those two scripts are way above my level to make changes unless I get specific instructions where to make those changes.
Not gonna happen. As I said (and the readme states), this script is for my personal usage. If people want to tweak it, great, but not gonna help with that.

EDIT: The single entry without extra things seems to work fine, will upload it later.
Title: Re: Playlist-Tools-SMP
Post by: Defender on 2024-04-04 11:49:08
@regor

Case made a nice tool to scan for Truepeaks and number of clipped samples which integrates with the Replaygain context menu.

Would you consider to add this utility to be selectable in the button_automation_tags.js script?
That plugin also has 3 different settings for tags usage and all tags are customizable... which means I would have to add all those possibilities on the script. That's a nope. Specially since that script is just meant for my personal usage.

I may add a single option using the default custom tags and nothing more. People may edit the script to change the tags though.

Great!
Would be great just to hit one button that does all things I want to scan, instead of one button and a couple of context clicks.

If you are referring to edit either tags_automation or buttons_tags_automation, I have to admit I had a look and those two scripts are way above my level to make changes unless I get specific instructions where to make those changes.
Not gonna happen. As I said (and the readme states), this script is for my personal usage. If people want to tweak it, great, but not gonna help with that.

EDIT: The single entry without extra things seems to work fine, will upload it later.

Thank you.

My first try was not successful. Added a TruePeak option with 4 tags defined, can run it but tags where not written.

I will patiently await your upload.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2024-04-05 01:07:23
Should be working now. Also fixed a long time bug with Chromaprint requiring manually running next step in some cases.

I may think about adding fingerprints to a json database instead of files, considering the problems on x32 foobar v2 and tag caching.
Title: Re: Playlist-Tools-SMP
Post by: Defender on 2024-04-05 01:26:46
Should be working now. Also fixed a long time bug with Chromaprint requiring manually running next step in some cases.

I may think about adding fingerprints to a json database instead of files, considering the problems on x32 foobar v2 and tag caching.

Great. Where can I find it? Checking for updates does not find it.

Yes, I also ran into the chromaprint thingy. Nice that it is solved.
Another thing is if I remember correctly that it is mentioned somewhere in your documentation that in order to get FooID running you have to put FooID.dll in the root folder of %fb2k_profile%. I had to put in user_components\foo_biometrics to get it working.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2024-04-05 01:34:04
Quote
Great. Where can I find it? Checking for updates does not find it.
If there is no update, it's because there is no update. Obviously. I don't create an update for every minor thing I change.

Check the Nightly. As shown at the wiki.

Quote
Another thing is if I remember correctly that it is mentioned somewhere in your documentation that in order to get FooID running you have to put FooID.dll in the root folder of %fb2k_profile%. I had to put in user_components\foo_biometrics to get it working.
That's not what the instructions say about FooID.dll. Nothing goes to the profile root.
https://github.com/regorxxx/foobar2000-assets/tree/main/FooID
Title: Re: Playlist-Tools-SMP
Post by: Defender on 2024-04-05 01:46:00
Quote
Great. Where can I find it? Checking for updates does not find it.
If there is no update, it's because there is no update. Obviously. I don't create an update for every minor thing I change.

Check the Nightly. As shown at the wiki.

Quote
Another thing is if I remember correctly that it is mentioned somewhere in your documentation that in order to get FooID running you have to put FooID.dll in the root folder of %fb2k_profile%. I had to put in user_components\foo_biometrics to get it working.
That's not what the instructions say about FooID.dll. Nothing goes to the profile root.
https://github.com/regorxxx/foobar2000-assets/tree/main/FooID

Nightly. Thx!

Biometrics. I misread/was confused by your instructions I guess. English is not my native language. Maybe an idea to just put FooID,dll in the foo_biometric folder just like foo_biometrics_dll on the wiki to avoid confusion?
Title: Re: Playlist-Tools-SMP
Post by: regor on 2024-04-05 08:11:33
I'm following the instructions of the original plugin.
Title: Re: Playlist-Tools-SMP
Post by: Koshingg on 2024-04-23 14:29:10
So, the second issue, I have this :

Code: [Select]
Error: Spider Monkey Panel v1.6.1-mod (ListenBrainz Tools Button: Playlist Tools: Buttons Bar v1.1.0 by regorxxx)
include failed:
themedButton is not defined

File: buttons_others_device_selector.js
Line: 30, Column: 2
Stack trace:
  @buttons_others_device_selector.js:30:2
  includeButton@buttons_toolbar.js:223:4
  reducer/</</<@helpers_xxx_prototypes.js:353:60

Title: Re: Playlist-Tools-SMP
Post by: regor on 2024-04-23 23:39:41
There is something wrong on your installation. That's simply impossible.

EDIT: This is what happens when someone doesn't read the changelog..
Quote
- 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.

I follow Semantic Versioning, so if you go from 3.7 (or lower) to 4.X... and people don't read the changelog, then it's a miracle things work as they should be. xd Since I'm stating some things have been removed or changed in a major version change.
Title: Re: Playlist-Tools-SMP
Post by: Koshingg on 2024-04-24 17:14:37
Well, actually you're a bit wrong here, haha :) I did read the change log at the time but I simply forgot to do those changes later when I updated, I assumed I already made those changes....I guess lately I was frustrated by so many annoyances...Foobar v2, foo_plorg, and the list is very very long...Or as you saw recently foo_skipcount....where you helped the developer with those bugs, some of them I've also noticed...When you have many components it's hard to keep track with so many changes , especially now with Foobar v2...

I solved the problem by resetting the toolbar, then I reimported the user presets for the Playlist Tools, the other buttons didn't have many settings, so nothing is lost.
Title: Re: Playlist-Tools-SMP
Post by: regor on 2024-04-24 23:56:10
Well, actually you're a bit wrong here, haha :) I did read the change log at the time but I simply forgot to do those changes later when I updated, I assumed I already made those changes....I guess lately I was frustrated by so many annoyances...Foobar v2, foo_plorg, and the list is very very long...Or as you saw recently foo_skipcount....where you helped the developer with those bugs, some of them I've also noticed...When you have many components it's hard to keep track with so many changes , especially now with Foobar v2...

I solved the problem by resetting the toolbar, then I reimported the user presets for the Playlist Tools, the other buttons didn't have many settings, so nothing is lost.
Understandable hahaha nothing to add. Glad you got it working.