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: JSplitter (splitter + SMP x64 alternative) (Read 19785 times) previous topic - next topic
0 Members and 12 Guests are viewing this topic.

Re: JSplitter (splitter + SMP x64 alternative)

Reply #100
Quote
If you stop playback and then close foobar, it will most likely not crash.
And it should not crash with the mod version.

But Defender does not have a crash, foobar is simply locked and can not be closed (?) which is something I have never experienced unless there was some process on the background waiting.

Re: JSplitter (splitter + SMP x64 alternative)

Reply #101
Quote
If you stop playback and then close foobar, it will most likely not crash.
And it should not crash with the mod version.

But Defender does not have a crash, foobar is simply locked and can not be closed (?) which is something I have never experienced unless there was some process on the background waiting.
I do have Spider Monkey panel 1.6.1-mod installed.

No, you are right it does not crash, but fooBar cannot be exited, which means I have to kill the process.
When you stop playing sometimes after some time the hanging process recovers and you can exit normally, but I am also not that patient.

Re: JSplitter (splitter + SMP x64 alternative)

Reply #102
I was talking about the Biography Mod though *, not the components. Just to be clear.

* Can be found at the Biography thread, one of my latest replies. With several fixes.

Re: JSplitter (splitter + SMP x64 alternative)

Reply #103
Thx.

I'm running the one in the screenshot (and cannot do without it) which seems to be the version I found it the thread.
Is there a newer one that I did not find?



Re: JSplitter (splitter + SMP x64 alternative)

Reply #106
Oops, indeed. Sorry :)

Re: JSplitter (splitter + SMP x64 alternative)

Reply #107
@Defender
Is it okay now?

Could the culprit running in the background be Windows Update?
The date and time match.
SHURE SRH1840, SENNHEISER HD660S2, SENNHEISER HD620S, SENNHEISER HD 490 Pro Plus, beyerdynamic DT 1990 PRO, HiFiMAN Edition XS, Bowers & Wilkins P7, FiiO FT5, 水月雨 (MOONDROP) 空鳴 - VOID, Nakamichi Elite FIVE ANC, SONY WH1000XM5 (made a Upgrade/Balanced Cable by myself)

Re: JSplitter (splitter + SMP x64 alternative)

Reply #108
When you stop playing sometimes after some time the hanging process recovers and you can exit normally, but I am also not that patient.
Could you check how much time does it need? The current timeout for web request is 30 seconds.

It's supposed they are closed on quit (if that's the problem since you are the only one experiencing it right now). I could force closing the request on playback stop too...

Re: JSplitter (splitter + SMP x64 alternative)

Reply #109
When you stop playing sometimes after some time the hanging process recovers and you can exit normally, but I am also not that patient.
Could you check how much time does it need? The current timeout for web request is 30 seconds.

It's supposed they are closed on quit (if that's the problem since you are the only one experiencing it right now). I could force closing the request on playback stop too...
Thanks for looking into this.

Setup fooBar-32bit, CUI, PSS.

I have 8 main PSS, primary PSS finds all art per track and has per second which does things like detecting new art has arrived and/or new artist/title in streams, when it detects this all other panels are forced to refresh.
I do have a full art system, but for artist pics I mainly rely on yttm.

All former SMP panels (8) have been migrated to JSplitter, also all plugins (15) that use DX12 and can go fullscreen have been wrapped as a single plugin in a JSplitter. Fullscreen DX12 directly from PSS crashes fooBar.
Migrating to JSplitter has not solved the BIO page issues.

Those 8 former SMP panels are:
3x WillB BIO (1 as BIO and 2 as Review)
1x WillB Find & Play
3x WillB Library Tree
1x Regor Playlist Tools

All 3 BIO are set to follow selected item. Also a JS3 albumart is set to follow selected item.

Besides that I really love the look & feel of those WillB plugins, my art system really depends on BIO's artist picture retrieval.
I have a fast 1200Mbit internet connection and also a fast system.

The problems occur very infrequent and they seem to be related with workload foobar has to do and maybe also with sometimes a large amount of large pictures that are being retrieved in JS3 Albumart.
I have been testing quite a lot SACD multichannel recently and since the new features where only published in foo_udsd and not in foo_sacd, I was running foo_udsd which seems to be using a lot more system resources than foo_sacd. Nothing failed, nothing stopped, but foobar was just a bit less snappy.
Since then I switched back to foo_sacd and on your suggestion put the script warning to 60 seconds.
And yes the problem has become even more infrequent.

When the issue occurs it is typically the mini Review that runs on the top right. This review panel does not display art but it is set to transparency and underneath in PSS I display one of the elements of my art system, and on top of that is the JSplitter which contains the mini Review.
When I select another track, this mini Review goes black (stops transparency), does what it has to do and restores transparency. This is most of not noticeable at all.

The moment it happens the background of the Mini Review goes black with text on top of it. And it stays black. Normally it does not recover from this situation and I cannot exit fooBar anymore. Stop playing and wait a bit sometimes helps, but most of the time I just have to kill foobar.

While typing this message I did my upmost best to let it happen again, but it doesn't. So no, I can't tell you if the text on the the black background still follow the cursor and/or it responds to mousescrolling. When it happens again I will pay attention to it and inform you.

I don't have a clue of the internals of BIO. If I have 3 BIO panels do they all fire up their connections to the internet to do the same requests or does the "BIO server" handle this in a more sophisticated way?

Re: JSplitter (splitter + SMP x64 alternative)

Reply #110
1 request per foobar instance only (if it works right).

Quote
When I select another track, this mini Review goes black (stops transparency), does what it has to do and restores transparency. This is most of not noticeable at all.
That's not right, have to check it, but there is no reason Bio panel would draw a different background while processing something if you have set it without a background. If that's the case, at least that part should be easy to fix.

Note JSplitter has 2 settings to enable transparency. The SMP configuration and the actual panel configuration. It must be enabled in both to work properly.

Now, per your report, it seems to fail at text reading (which should not behave like that); but when there are multiple panels, data is supposed to be synced.

Could you PM me a portable foobar with your current layout? There are so many variables there, and I don't have some of those components.

Also probably you already know it, but I would suggest you to replace PSS with other splitters. Note JSplitter allows you to set the background with art/color via JS and the other windows on top of that with transparency, so there is no need for PSS in such case.

Specially I would recommend you to reduce library tree to a single instance and make the buttons change its settings, instead of having 3 of them with different settings. That alone will make faster startups, since it's being processed no matter if it's on screen or not.

Re: JSplitter (splitter + SMP x64 alternative)

Reply #111
Quote
When I select another track, this mini Review goes black (stops transparency), does what it has to do and restores transparency. This is most of not noticeable at all.
That's not right, have to check it, but there is no reason Bio panel would draw a different background while processing something if you have set it without a background. If that's the case, at least that part should be easy to fix.
It doesn't paint a background. It's stops transparency for a split second or so and as a result goes black. Or when the BIO script malfunctions keeps it that way. My painted background from PSS through JSplitter is still there.

Note JSplitter has 2 settings to enable transparency. The SMP configuration and the actual panel configuration. It must be enabled in both to work properly.
It is. otherwise I wouldn't see my background with normal operation of the script.

Now, per your report, it seems to fail at text reading (which should not behave like that); but when there are multiple panels, data is supposed to be synced.

Could you PM me a portable foobar with your current layout? There are so many variables there, and I don't have some of those components.
I am not sure it is text reading why it fails. The data is already there in YTTM and it has to retrieve it from a fast NVME.

Portable?
Hmmm, I never bothered to make a portable install since I need YTTM and Lyrics. My personal YTTM alone is 12GB.
I do share my skin without YTTM, Lyrics and I have a separate art package of 570MB.
The shared skin itself is 573MB, of that 170MB packed is my helpers and 186MB packed is your playlist tools (with the same helpers :-D ).
So how to proceed?

Also probably you already know it, but I would suggest you to replace PSS with other splitters. Note JSplitter allows you to set the background with art/color via JS and the other windows on top of that with transparency, so there is no need for PSS in such case.
My splitters and ELP run a total of 1.59MB code. I dream TF-PSS and TF-ELP ;-)
And I don't know anything about control or programming in JSplitter, SMP or JS3.
So that is not going to happen anytime soon. If I encounter issues/limitations with PSS/ELP I always find or create other ways around it.

Specially I would recommend you to reduce library tree to a single instance and make the buttons change its settings, instead of having 3 of them with different settings. That alone will make faster startups, since it's being processed no matter if it's on screen or not.
That is a good tip. I actually don't use them at all, but other people do. I'll discuss.
I pretty much don't use anything library related, nor different playlists (your Top playlists aside).

EDIT: FCL is a lot smaller of course that's 2220KB.

Re: JSplitter (splitter + SMP x64 alternative)

Reply #112
Quote
It doesn't paint a background. It's stops transparency for a split second or so and as a result goes black. Or when the BIO script malfunctions keeps it that way. My painted background from PSS through JSplitter is still there.
Stopping "transparency" is painting a background, if there is nothing painted on the panel then necessarily it shows whatever is below.

Quote
I am not sure it is text reading why it fails. The data is already there in YTTM and it has to retrieve it from a fast NVME.
I was not suggesting it was a disk reading problem due to it being slow. But files may be locked too by other reasons.

Quote
Hmmm, I never bothered to make a portable install since I need YTTM and Lyrics. My personal YTTM alone is 12GB.
I don't understand this point. What has that to do with a portable install? You can have all that in a portable install.

Quote
The shared skin itself is 573MB, of that 170MB packed is my helpers and 186MB packed is your playlist tools (with the same helpers :-D ).
To be exact, not my helpers but essentia and third party tools xd which I provide to make people's life easier. They take a lot of space though

Quote
My splitters and ELP run a total of 1.59MB code. I
Complexity is not measured by code size, although it may be somewhat related. For sure my most complex scripts are not the heaviest ones.

That's why I suggested that change to Library Tree, it's processing your entire library 3 times (unless you are using it as facets). And every tag change will trigger a refresh (unless Wiilb did some clever check for specific tags according to your tree TF expression).

Quote
So how to proceed?
The profile folder is enough, without clutter like YTTM, lyrics, art, etc. But definitely I need to run your theme in a portable install with the same layout and components to test your problems.

 

Re: JSplitter (splitter + SMP x64 alternative)

Reply #113
Quote
My splitters and ELP run a total of 1.59MB code. I
Complexity is not measured by code size, although it may be somewhat related. For sure my most complex scripts are not the heaviest ones.
It doesn't help you cannot use loops, subroutines and arrays in TF-PSS. In TF-ELP I can cheat for subroutines, but ELP has a 30KB source limitation per script. Limitation in PSS is 256KB I found out the hard way :-)

Quote
So how to proceed?
The profile folder is enough, without clutter like YTTM, lyrics, art, etc. But definitely I need to run your theme in a portable install with the same layout and components to test your problems.
Ok. I'll port it on one of my other systems as a portable and get back to you.

Re: JSplitter (splitter + SMP x64 alternative)

Reply #114
Sharing a volume slider package compatible with JSplitter and SMP, which is meant to replace the volume slider sample.

• Drag + L. Click to set volume.
• Double L. Click on button to mute\set full volume. (new)
• Configurable layout and colors using R. Click menu. (new)
• Elements may be disabled removing color or setting size to 0. (new)
• Shift + Win + R. Click for SMP panel menu.

The images are created with panels set to full screen width, obviously it looks better in a small panel within a toolbar. But you get the idea.
This completely replaces the CUI volume slider (the SMP sample was missing the button) and adds extra actions and settings.

Re: JSplitter (splitter + SMP x64 alternative)

Reply #115
Small update, with a minimum value for the slider button (8 px) if enabled, so it doesn't have bugged behavior with rounded corners.

And a proper image showcase:
X

Don't have in mind any more updates except some kind of dynamic coloring or background according to art like the rest of my scripts.

Re: JSplitter (splitter + SMP x64 alternative)

Reply #116
Quote
So how to proceed?
The profile folder is enough, without clutter like YTTM, lyrics, art, etc. But definitely I need to run your theme in a portable install with the same layout and components to test your problems.
Ok. I'll port it on one of my other systems as a portable and get back to you.
@regor

I have ported it.

Of course some issues with third party plugins (even new ones) that don't accept relative paths.

Normally I solve that by using a junction. Would creating a junction work for you?
If not, what folder do you want me to create the portable?

And how do I get the portable to you?
I can put it on a google drive or WeTransfer or something. Including my and your helpers it is 573MB excluding art. Art would be an extra 580MB.

Tia.

Re: JSplitter (splitter + SMP x64 alternative)

Reply #117
Quote
So how to proceed?
The profile folder is enough, without clutter like YTTM, lyrics, art, etc. But definitely I need to run your theme in a portable install with the same layout and components to test your problems.
Ok. I'll port it on one of my other systems as a portable and get back to you.
@regor
Of course some issues with third party plugins (even new ones) that don't accept relative paths.
If that's the case for some plugin, it should be reported. Things are supposed to work contained in the profile folder.

Quote
Normally I solve that by using a junction. Would creating a junction work for you?

If not, what folder do you want me to create the portable?
The profile folder. Which is what's shared for any theme.


Quote
I can put it on a google drive or WeTransfer or something. Including my and your helpers it is 573MB excluding art.
As long as you didn't touch my files, and they are at xxx-scripts,e tc.... you can delete those. I will simply add mine.

Re: JSplitter (splitter + SMP x64 alternative)

Reply #118
Ok final iteration. I have added my background framework present on all scripts but only for the dynamic colors retrieval, I don't think anyone will use it to display artwork as background for this panel, but if that's the case let me know and I will expose the settings (since it also includes gradients and other advanced backgrounds).

@TT it takes some tricks and time to find the proper colors, I appreciate more your work on georgia now xd

So far added:
Quote
- Rounded bar
- Rounded gradient bar (requires at least right color, left may be "null")
- Rounded slider button
- Setting to enable dynamic colors. These colors are extracted from artwork
- Some minor UI fixes and improvements, specially when removing the slider element.
Gradient
X
Rounded
X
Dynamic colors
X

Edit: just noticed that since I did not expose the background framework, the artwork is always retrieved from playing and then selected track. So I will update it some day to at least include such settings, if not all.

Re: JSplitter (splitter + SMP x64 alternative)

Reply #119
I have added my background framework present on all scripts but only for the dynamic colors retrieval, I don't think anyone will use it to display artwork as background for this panel, but if that's the case let me know and I will expose the settings (since it also includes gradients and other advanced backgrounds).
I'm struggling with applying a meshed up version of the found cover which works fine, but is a bit too bright for lighter covers and a bit too dark for darker covers.

What functions are available to get the predominant color of an image?
And related how can you find the average brightness of an image?

Re: JSplitter (splitter + SMP x64 alternative)

Reply #120
Quote
I'm struggling with applying a meshed up version of the found cover which works fine, but is a bit too bright for lighter covers and a bit too dark for darker covers.
My timeline and world map script use the same framework, to use the cover or any kind of art, and works fine (I think). (playlist manager uses a similar one) Transparency and blur can be freely set. Usually both help.

Also adding a gradient overlay.

Finally, obviously some kind of contrast check must be done for every UI element against the background. You are not supposed to just paint the art and don't care about the rest of the colors. See Georgia Reborn for ex. or my last update on Timeline (which replaced simple brightness checks with proper perceptive contrast)
https://hydrogenaud.io/index.php/topic,125040.msg1058089.html#new

Quote
What functions are available to get the predominant color of an image?
If you are talking about SMP:
https://theqwertiest.github.io/foo_spider_monkey_panel/assets/generated_files/docs/html/GdiBitmap.html#GetColourScheme
There are other ways.

Quote
And related how can you find the average brightness of an image?
You have to calculate it by yourself. Either code your own color related functions, check other people's helpers or use an existing framework for that.

Re: JSplitter (splitter + SMP x64 alternative)

Reply #121
For ex. which one do you think looks better?

Spoiler (click to show/hide)

Setting the right blur settings helps a lot with having a -somewhat- uniform color and not having a distracting background. On top of that add some kind of check against most predominant color(s) and you are done.


EDIT: note my 2 playlist manager panels at top have a cover without blur. See here the difference with 50 px blur (40% alpha in both cases). It's pretty great, considering that particular art is not too obtrusive.
Spoiler (click to show/hide)



Re: JSplitter (splitter + SMP x64 alternative)

Reply #122
@TT it takes some tricks and time to find the proper colors, I appreciate more your work on georgia now xd

You just need to have a good taste and feeling what looks good ( half-joking ) :P
But the best harmonic colors can be found in nature. For example, most flowers have harmonic colors which look great.
Look at some flower images online.

Also here is a secret website most designers know:
https://www.color-name.com

Look at the "Tools" section of the website, for example here:
https://www.color-name.com/tools/color-palette-generator

Complementary colors are almost always harmonic and good choices.

Btw, all colors in Georgia-ReBORN were handpicked by me, the color system is a lot of work if you look at the code =)
Also for inspiration, Georgia-ReBORN supports custom themes every user can design.
These are the first 10 official custom themes I have made:
https://github.com/TT-ReBORN/Georgia-ReBORN/discussions/99
Maybe I will do some in the future when I have more time...

-TT

Re: JSplitter (splitter + SMP x64 alternative)

Reply #123
Thanks for the references :) For sure creating a proper UI takes time, is not just adding random colors or whatever you like. And you have to consider how each one interacts with the other elements.

I use colorbrewer btw, since it also has specific palettes for color blindness. Which is what I use on all my scripts. Not so pretty than other palettes but in this case I prefer accessibility, and it's already builtin in chroma.js framework which I also use (and forked to further develop it).
https://colorbrewer2.org/#type=sequential&scheme=Purples&n=8

Re: JSplitter (splitter + SMP x64 alternative)

Reply #124
Ok, exposed the background submenu too. So now playing/follow selection and source for artwork can be set too.

Since all options are now exposed, as result it's also possible now to set the artwork as background like any other of my scripts, by disabling the slider background color first, even if it makes zero sense xd

Also adjusted the dynamic colors logic, to tweak the colors a bit if they are not saturated enough or too similar in some cases. Should look much better now.

Spoiler (click to show/hide)

I don't see anything more to do here. Consider it the final version, unless there is some bug.