Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: Spider Monkey Panel (foo_spider_monkey_panel) (Read 349663 times) previous topic - next topic
0 Members and 2 Guests are viewing this topic.

Re: Spider Monkey Panel (foo_spider_monkey_panel)

Reply #425
I'm searching a playlist viewer that can be linked to a specific playlist like EsPlaylist. Is it possible with jsplaylist? I've tried but It seems auto-linked to the active playlist  :(


HI,

as it is a script, you can modify jssplaylist to replace active playlist to a specific one, but it needs some changes to do that like replacing in script "plman.ActivePlaylist" with a variable that you have to set on init, by scanning existing playlists to find the index of the playlist you want to link to the playlist view (by playlist name testing imho ...)

HTH  ;)



Re: Spider Monkey Panel (foo_spider_monkey_panel)

Reply #426
@SUPERCOOLMAN, it's an out of memory error. The script preloads all images from the folder without resizing them (so as to support dynamic size, e.g. when resizing player), so if there are a lot of big images, it might eat all of the available memory. It might be possible to avoid this issue by resizing images immediately after loading them, but this way there won't be a higher resolution image for dynamic resizing.

@Air KEN , MS Store sandboxes their apps (by disabling some operations), in this case it might have disabled some internet related API used by SMP. Nothing I can do to fix that, aside from rewriting the whole networking stack (which I won't be doing any time soon).

@wcs13 , it might be possible to implement such logic in the script (ignoring low-res images that is), but I'm currently prioritizing component development over script improvement. In other words it won't be fixed anytime soon, sorry.

Re: Spider Monkey Panel (foo_spider_monkey_panel)

Reply #427
People getting out of memory errors with samples from the complete folder can open samples\complete\js\helpers.js and replace this function...

Code: [Select]
function _img(value) {
if (_isFile(value)) {
return gdi.Image(value);
} else {
return gdi.Image(folders.images + value);
}
}

with

Code: [Select]
function _img(value) {
let img;
if (_isFile(value)) {
img = gdi.Image(value);
} else {
img = gdi.Image(folders.images + value);
}

if (!img) return null;

const MAX_SIZE = 1000;
if (img.Width < MAX_SIZE && img.Height < MAX_SIZE) return img;

const s = Math.min(MAX_SIZE / img.Width, MAX_SIZE / img.Height);
const w = Math.floor(img.Width * s);
const h = Math.floor(img.Height * s);
return img.Resize(w, h);
}

Using the old function, I tested it with 8 large 5000px + images that take 40MB on disk but caused SMP to use nearly 900MB of ram according to window.PanelMemoryUsage

After this change, the reported value was 22MB.

edit: resizing doesn't come for free - there might be an apparent freeze for a second or 2 while it hogs the CPU!! YMMV.

Re: Spider Monkey Panel (foo_spider_monkey_panel)

Reply #428
images that take 40MB on disk but caused SMP to use nearly 900MB of ram according to window.PanelMemoryUsage
That's because images are loaded in memory as uncompressed BMP, so it takes much more memory than it could've (or should've).

edit: resizing doesn't come for free - there is a performance penalty to be paid which might be noticeable?? YMMV.
This is caused by resize operation being performed on the main thread. I was thinking of making it async or maybe incorporating it `LoadImageAsync` (i.e. load *and* resize), but thought that such functionality was not that needed...

In long-term I'm planning to implement a new graphics back-end based on Direct2D (the support for current GDI/GDI+ back-end will remain), which should help with RAM utilization (amongst many other things).

Re: Spider Monkey Panel (foo_spider_monkey_panel)

Reply #429
I'm searching a playlist viewer that can be linked to a specific playlist like EsPlaylist. Is it possible with jsplaylist? I've tried but It seems auto-linked to the active playlist  :(


HI,

as it is a script, you can modify jssplaylist to replace active playlist to a specific one, but it needs some changes to do that like replacing in script "plman.ActivePlaylist" with a variable that you have to set on init, by scanning existing playlists to find the index of the playlist you want to link to the playlist view (by playlist name testing imho ...)

HTH  ;)


Hi Falstaff, nice to see you here again  :)
Yes, if I was a programmer this can help me a lot, but sadly my programmer skills are slightly above 0  :'(
And I don't want anyone to do the job for me for free.
In jsplaylist there is already a menu with a list of existing foobar playlists. I'm sure that can be modified to lock the view to the selected playlist but I've no idea on how to do this and how long it takes. So, if there is someone who wants to do it for me, please send me a PM.

Many thanks to all for this beautiful player and plugins

Fabio

Re: Spider Monkey Panel (foo_spider_monkey_panel)

Reply #430
Using the old function, I tested it with 8 large 5000px + images that take 40MB on disk but caused SMP to use nearly 900MB of ram according to window.PanelMemoryUsage

After this change, the reported value was 22MB.

edit: resizing doesn't come for free - there might be an apparent freeze for a second or 2 while it hogs the CPU!! YMMV.

ideally, script should generate only the small thumbnails when thumbnails is enabled. for main image, it should just keep a list of images file path found when current track's playback starts. script only need to load an image when being shown/drawn during current track's playback. there is already refresh/reload option when user want to refresh list of available images

another way to do this would be detecting screen resolution at the beginning and just down scale all images larger than that to screen resolution or smaller before loading since screen resolution is your display upper limit

This is caused by resize operation being performed on the main thread. I was thinking of making it async or maybe incorporating it `LoadImageAsync` (i.e. load *and* resize), but thought that such functionality was not that needed...

In long-term I'm planning to implementing a new graphics back-end based on Direct2D (the support for current GDI/GDI+ back-end will remain), which should help with RAM utilization (amongst many other things).

that would be a great improvement

one of the problem with the old albumart is that it doesn't pre-load or cache images during current track's playback, so it causes fb2k to freeze for 1-3 seconds every time it cycles to a high resolution image


Re: Spider Monkey Panel (foo_spider_monkey_panel)

Reply #432
unfortunately, for another complex script, I had to freeze JSP at pretty old version due to newer JSP causing breakage. marc2003 has also completely removed his repositories, so this is the only current repository for the thumbs

Re: Spider Monkey Panel (foo_spider_monkey_panel)

Reply #433
What version? Just checked and anything newer than v1.1.6.1 should have thumbs included.

Last.fm functionality will be broken in every version except the latest but since you're have issues with hi-res images, I'm assuming you're using custom folder mode which hasn't changed in years.

Re: Spider Monkey Panel (foo_spider_monkey_panel)

Reply #434
another way to do this would be detecting screen resolution at the beginning and just down scale all images larger than that to screen resolution or smaller before loading since screen resolution is your display upper limit
I think this is the easiest solution\workaround to your problem (coupled with the snippet @snotlicker posted above). But async resize would be needed to avoid fb2k freeze. I think I'll just add resizing to LoadAsync, coz I have a few huge album arts as well that I'm too lazy to resize, which cause fb2k to stutter every time they load...

Re: Spider Monkey Panel (foo_spider_monkey_panel)

Reply #435
Bug report:

in panel script editor, "Replace all" makes freezing/looping the program when searched string is a word in lowercase and the new string is the same word in uppercase

i.e: Replace "text" by "TEXT"

i've just lost 50 minutes of works :(




Re: Spider Monkey Panel (foo_spider_monkey_panel)

Reply #438
@wcs13 , it might be possible to implement such logic in the script (ignoring low-res images that is), but I'm currently prioritizing component development over script improvement. In other words it won't be fixed anytime soon, sorry.
Sounds great for me. Nobody's in a hurry. :)
I'd love it if it can be achieved someday, so please put it in your to-do list and you'll get to it eventually.
Many thanks for your work and your expertise!

Re: Spider Monkey Panel (foo_spider_monkey_panel)

Reply #439
coz I have a few huge album arts as well that I'm too lazy to resize, which cause fb2k to stutter every time they load...

I clean my images up (over 10GB of artists alone) in minutes using Agent Ransack and Image Resizer.
e.g. AR can search for image files of size> or dimensions> and the sortable results list can easily be batch resized by ctrl-click & IR

Re: Spider Monkey Panel (foo_spider_monkey_panel)

Reply #440
@Falstaff , `Replace All` is not working at all in the current version, REGEXP is borked as well. I'll fix it today\tomorrow.

Re: Spider Monkey Panel (foo_spider_monkey_panel)

Reply #441
I clean my images up (over 10GB of artists alone) in minutes using Agent Ransack and Image Resizer.
e.g. AR can search for image files of size> or dimensions> and the sortable results list can easily be batch resized by ctrl-click & IR
XnViewMP can do it too on its own, no need for two pieces of software :
1. Tools > Search (Add > File Size > Is greater than or equal to > 1000 > KiB)
2. Select all results
3. Right Click > Batch Convert (Add action > Image > Resize, then set all relevant options, everything is possible)

Re: Spider Monkey Panel (foo_spider_monkey_panel)

Reply #442
Hello,

if I use some of the samples of the "complete" folder (e.g. "last.fm bio.js"), the panel crashes and I get the following error message:

Quote
Error: Spider Monkey Panel v1.2.3 (Last.fm Bio by marc2003)
include failed:
ActiveXObject_Constructor failed:
WinAPI error: GetTypeInfo failed with error (0x80029c4a): Unknown error

File: helpers.js
Line: 588, Column: 11

Stack trace:
  @helpers.js:588:11
  @<main>:5:1

I'm on Windows 10 64bit with foobar2000 v1.5.3.0.

What could be the problem? Thank you very much in advance.

Re: Spider Monkey Panel (foo_spider_monkey_panel)

Reply #443
Hope this is the right place to ask, but has the Spectrogram Seekbar that used to run on WSH Panel been upated for SM Panel?
This is the old one: https://pastebin.com/6n0ZmTtB
I know SoX is or would be required...

Thanks!

Re: Spider Monkey Panel (foo_spider_monkey_panel)

Reply #444
Another question...   My SM Panels seem to be missing a font, so the down arrow isn't displaying properly. 
See here:  https://imgur.com/a/FHia3X7   Does anyone know how  to resolve this?

And last but not least, Marc2003 used to have a Last.fm script for WSH Panel that allowed you to see "top tracks" and "top albums" for an artist.  Has this been updated for SM Panels yet?

Thanks all.

Re: Spider Monkey Panel (foo_spider_monkey_panel)

Reply #445
@Bollerkopp , not sure, why you are getting this error. The library in question (`Mshtml.dll`) should be available on all supported Windows systems. Are you using a norrmal fb2k or a fb2k from Windows Store? There were reports about issues in Windows Store version.

@hexenszene ,
Quote
has the Spectrogram Seekbar that used to run on WSH Panel been upated for SM Panel?
AFAIK, no.

Quote
My SM Panels seem to be missing a font
have you installed `Font Awesome` as per `readme`?

Quote
And last but not least, Marc2003 used to have a Last.fm script for WSH Panel that allowed you to see "top tracks" and "top albums" for an artist.  Has this been updated for SM Panels yet?
`complete/last.fm similar artists + user charts + recent tracks.js`

@Falstaff , regretfully, the fix is still not ready. Hopefully I'll have enough free time and energy to complete the fix soon (it's 95% ready).

Re: Spider Monkey Panel (foo_spider_monkey_panel)

Reply #446
@Bollerkopp , not sure, why you are getting this error. The library in question (`Mshtml.dll`) should be available on all supported Windows systems. Are you using a norrmal fb2k or a fb2k from Windows Store? There were reports about issues in Windows Store version.

@hexenszene ,
Quote
has the Spectrogram Seekbar that used to run on WSH Panel been upated for SM Panel?
AFAIK, no.

Quote
My SM Panels seem to be missing a font
have you installed `Font Awesome` as per `readme`?

Quote
And last but not least, Marc2003 used to have a Last.fm script for WSH Panel that allowed you to see "top tracks" and "top albums" for an artist.  Has this been updated for SM Panels yet?
`complete/last.fm similar artists + user charts + recent tracks.js`

@Falstaff , regretfully, the fix is still not ready. Hopefully I'll have enough free time and energy to complete the fix soon (it's 95% ready).

Thanks for the help.  I had looked for a readme in the folder but somehow missed it.  Issue solved.
Regarding the script "complete/last.fm similar artists + user charts + recent tracks.js" -- this doesn't seem to have "top albums" or "top tracks" in it.  The only choices seem to be "last.fm user charts", "recent tracks", and "similar artists".  Am I missing something?

Re: Spider Monkey Panel (foo_spider_monkey_panel)

Reply #447
Regarding the script "complete/last.fm similar artists + user charts + recent tracks.js" -- this doesn't seem to have "top albums" or "top tracks" in it.  The only choices seem to be "last.fm user charts", "recent tracks", and "similar artists".  Am I missing something?
The Youtube Track Manager (YTTM, see here) is listing top albums and top tracks out of the box. Runs as well on SMP.

Re: Spider Monkey Panel (foo_spider_monkey_panel)

Reply #448
Regarding the script "complete/last.fm similar artists + user charts + recent tracks.js" -- this doesn't seem to have "top albums" or "top tracks" in it.  The only choices seem to be "last.fm user charts", "recent tracks", and "similar artists".  Am I missing something?
The Youtube Track Manager (YTTM, see here) is listing top albums and top tracks out of the box. Runs as well on SMP.
This is awesome!  Thank you!