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 76025 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

JSplitter (splitter + SMP x64 alternative)

This is just a non-official thread for collaborative support and info about the component.
Don't ask me anything about it I'm just copying the original info.


This is essentially a SMP clone + splitter functionality, working on both x32 and x64 versions. With an updated JS engine and some bug fixes.

Original thread
https://foobar2000.ru/forum/viewtopic.php?t=6378

Google translate
The plugin is a panel that combines the functionality of a splitter (a container for panels of other plugins) and a JavaScript script host.

Features of the functionality:

1. Panels are added to the splitter in any order, where they can be worked with as with regular Windows windows, namely: moved, resized, minimized, maximized, closed. That is, when working with the plugin, foobar2000 turns into an application with an MDI interface (Multi Document Interface). For precise positioning of panels, the display of coordinates and their editing "on the fly" in the panel window title is provided (useful when designing the assembly interface). It is also possible to customize the colors and font of the panel window title.
The splitter functionality works both in DUI and in CUI.

X

2. Supports panel placement management in the splitter via the standard Columns UI "placer". Also supported in DUI is what is similar to its standard splitters, which is now supported by the author himself.
3. The script host is based on JScript Panel / Spider Monkey Panel , respectively, it has all the capabilities of these panels + additional API extensions related to the splitter.
4. Supports panel management in the splitter from scripts. It is possible to programmatically move, hide, and resize panels.
5. There is a special API for quickly creating buttons in the root of the panel and processing their clicks.

Result: in its functionality, it repeats Mega Panel Splitter, but with nice additions in the form of manual control of panel movement and a simple API for creating buttons. Well, maybe someone will just like to use foobar2000 as an MDI application, who knows.

Disclaimer :
Almost every new version of JSplitter is based on the next version of JScript Panel / Spider Monkey Panel , so it carries all the changes intended by the author. If you notice any changes in the operation of your scripts, then refer to the JScript Panel / Spider Monkey Panel release page , where the author always indicates changes that can affect the existing code.

Quick Guide
Spoiler (click to show/hide)

Version History
Spoiler (click to show/hide)


Downloads at original thread (at top).

Re: JSplitter (splitter + SMP x64 alternative)

Reply #1
https://hydrogenaud.io/index.php/topic,120979.msg1051984.html#msg1051984
Related to this, I can open the script window without any problem by pressing: Win + Shift + R. click. As it always has been at SMP.
Spoiler (click to show/hide)
Note I added the script directly to the splitter, there is not an additional window.

Re: JSplitter (splitter + SMP x64 alternative)

Reply #2
https://hydrogenaud.io/index.php/topic,120979.msg1051984.html#msg1051984
Related to this, I can open the script window without any problem by pressing: Win + Shift + R. click. As it always has been at SMP.
Spoiler (click to show/hide)
Note I added the script directly to the splitter, there is not an additional window.

I didn't know that.
I was using the menu entry in the normal right click that some scripts have and layout editing right click when there wasn't one.
xD

Re: JSplitter (splitter + SMP x64 alternative)

Reply #3
Uhm that was the only way to open such menu on all my scripts though xd so you had to do a lot of workarounds all this time. It's a standard SMP thing, works everywhere.

Wll add it at the script wikis (or tooltips if applicable).

Re: JSplitter (splitter + SMP x64 alternative)

Reply #4
Regarding SMP / JSspliter compatibility, if the code was limited to whatever was compatible with SMP everything works the same except unnoficial .toSource() method for RegExp objects, which must be polyfilled like this (in case you used it, otherwise ignore it).

Code: [Select]
// Add unnoficial method
// https://reference.codeproject.com/javascript/Reference/Global_Objects/Regexp/toSource
if (!RegExp.prototype.toSource) {
Object.defineProperty(RegExp.prototype, 'toSource', {
enumerable: false,
configurable: false,
writable: false,
value: function () {
return '/' + this.source + '/' + this.flags; // NOSONAR
}
});
}

Note using more modern JS code than ECMAScript 2019 will work on JSplitter but will not work with old SMP, in case backwards compatibility is desirable.

Re: JSplitter (splitter + SMP x64 alternative)

Reply #5
Uhm that was the only way to open such menu on all my scripts though xd so you had to do a lot of workarounds all this time. It's a standard SMP thing, works everywhere.

Wll add it at the script wikis (or tooltips if applicable).

Well... I clicked layout editing mode and right-click the panel.... Normal behavior xD

Re: JSplitter (splitter + SMP x64 alternative)

Reply #6
Windows 11 Home
foobar2000 v2.1.6 64-bit (Default UI)

All panels displayed on the TAB, including the Playlist View, use JSplitter.
Multiple overlapping panels.





Even if you uncheck Show caption and hide the title bar, you can still move the Panel with the mouse.

Preferences > Tools > JSplitter > Move panel with middle mouse button
A cross mark will appear and you can move it.
SHURE SRH1840, SENNHEISER HD660S2, SENNHEISER HD620S, SENNHEISER HD 490 Pro Plus, beyerdynamic DT 1990 PRO, HiFiMAN Edition XS, HIFIMAN ANANDA, Bowers & Wilkins P7, FiiO FT5, FiiO FT1 Pro, 水月雨 (MOONDROP) 空鳴 - VOID, SONY WH1000XM5 (made a Upgrade/Balanced Cable by myself)

Re: JSplitter (splitter + SMP x64 alternative)

Reply #7
So this crashes silently on exit. The only way you'll notice is by checking your fb2k profile folder/crash reports. Seems to only happen if you open the script editor.

Re: JSplitter (splitter + SMP x64 alternative)

Reply #8
So this crashes silently on exit. The only way you'll notice is by checking your fb2k profile folder/crash reports. Seems to only happen if you open the script editor.
Yikes!  Thanks for the heads-up.  Any ideas as to what the issue is with the script editor?

Re: JSplitter (splitter + SMP x64 alternative)

Reply #9
I figured out the bug and reported it on that Russian forum thread.


Re: JSplitter (splitter + SMP x64 alternative)

Reply #11
Reply #1174: https://hydrogenaud.io/index.php/topic,112914.msg1051982.html#msg1051982
foobar2000 v2.24 preview 2024-10-11 : 64-bit
JSplitter 3.6.1.10 (foo_uie_jsplitter) 2024-10-04

After installing Windows 11 23H2 (KB5044285) or 24H2 (Confirmed),

Failed to open archive: `Biography-v1.4.2.mod.1.zip`
  mz_zip_reader_init_file failed with error 0x11: file open failed

This error message appears and the Script Package (.zip) cannot be loaded.

Does anyone have symptoms like these?
----
Before the update, all the tabs I created had panels that used JSplitter, so I copied them and am using them.

SHURE SRH1840, SENNHEISER HD660S2, SENNHEISER HD620S, SENNHEISER HD 490 Pro Plus, beyerdynamic DT 1990 PRO, HiFiMAN Edition XS, HIFIMAN ANANDA, Bowers & Wilkins P7, FiiO FT5, FiiO FT1 Pro, 水月雨 (MOONDROP) 空鳴 - VOID, SONY WH1000XM5 (made a Upgrade/Balanced Cable by myself)

Re: JSplitter (splitter + SMP x64 alternative)

Reply #12
JSplitter 3.6.1.10 (foo_uie_jsplitter).7z (64bit)
https://mega.nz/file/NO9HFahB#pVEgOiP26aILXH4Bj2Nnp7aiyq_jXd_5dKbyYXJ1_Qc

profile
    -foo_uie_jsplitter
    -user-components-x64
                                             -foo_uie_jsplitter

If I use this profile folder on a foobar that does not use JSplitter or on a foobar that cannot read the Script Package (.zip), will I be able to read the Package (.zip)?
Even if an error message appears, click the OK button to proceed.
SHURE SRH1840, SENNHEISER HD660S2, SENNHEISER HD620S, SENNHEISER HD 490 Pro Plus, beyerdynamic DT 1990 PRO, HiFiMAN Edition XS, HIFIMAN ANANDA, Bowers & Wilkins P7, FiiO FT5, FiiO FT1 Pro, 水月雨 (MOONDROP) 空鳴 - VOID, SONY WH1000XM5 (made a Upgrade/Balanced Cable by myself)

Re: JSplitter (splitter + SMP x64 alternative)

Reply #13
More Images.

Windows 11 Home 23H2
foobar2000 v2.24 preview 2024-10-18 : 64-bit
Default UI

JS Playlist-mod (Sample)
Bography (Biography-v1.4.2.mod.1) By regor: https://hydrogenaud.io/index.php/topic,112914.msg1051980.html#msg1051980
WebView 0.1.8,0
 -GeoIP (webview) By Sergey77: https://hydrogenaud.io/index.php/topic,126243.msg1052557.html#msg1052557
JScript Panel 3 3.8.0
VU Meter Visualisation 0.3.2-rc
ESLyric 1.0.0.1025
Youtube Source 3.9.6
-foo_youtube_addon By ilovefb2k: https://hydrogenaud.io/index.php/topic,110516.msg1052472.html#msg1052472
MilkDrop 2 Visualisation 0.1.9-beta

 

 

Of course, the Biography can be displayed in the entire Panel frame.

SHURE SRH1840, SENNHEISER HD660S2, SENNHEISER HD620S, SENNHEISER HD 490 Pro Plus, beyerdynamic DT 1990 PRO, HiFiMAN Edition XS, HIFIMAN ANANDA, Bowers & Wilkins P7, FiiO FT5, FiiO FT1 Pro, 水月雨 (MOONDROP) 空鳴 - VOID, SONY WH1000XM5 (made a Upgrade/Balanced Cable by myself)

Re: JSplitter (splitter + SMP x64 alternative)

Reply #14
JScript Panel 3 Script
-JSP3 Cover Panel, CD vinyl By: ilovefb2k: https://hydrogenaud.io/index.php/topic,110516.msg1048255.html#msg1048255
-Screen Shot: https://hydrogenaud.io/index.php/topic,110516.msg1048256.html#msg1048256

foo_uie_webview
-Vinyl By Julero: https://hydrogenaud.io/index.php/topic,126042.msg1048112.html#msg1048112
JScript Panel 3 Script
-CoverFlow View By: ilovefb2k: https://hydrogenaud.io/index.php/topic,110516.msg1048255.html#msg1048255

JScript Panel 3 Script
-Pseudo Beat Audio By: ilovefb2k: https://hydrogenaud.io/index.php/topic,110516.msg1052760.html#msg1052760

  

  

SHURE SRH1840, SENNHEISER HD660S2, SENNHEISER HD620S, SENNHEISER HD 490 Pro Plus, beyerdynamic DT 1990 PRO, HiFiMAN Edition XS, HIFIMAN ANANDA, Bowers & Wilkins P7, FiiO FT5, FiiO FT1 Pro, 水月雨 (MOONDROP) 空鳴 - VOID, SONY WH1000XM5 (made a Upgrade/Balanced Cable by myself)

Re: JSplitter (splitter + SMP x64 alternative)

Reply #15
I'm not able to connect to the Russian site for some reason, so I can't currently play around with this, but I've got some questions based on the screenshots @Airken posted. From my understanding it's a splitter which can host other components, and it looks like Air Ken is doing that with JScript and Webview panels inside Jsplitter... but you don't have to do that because it also has a JS editor window which can run JS/SMP code natively without hosting one of those panels, is that correct?

Can I click a button in one panel and spawn a second panel?

Re: JSplitter (splitter + SMP x64 alternative)

Reply #16
I'm not able to connect to the Russian site for some reason, so I can't currently play around with this, but I've got some questions based on the screenshots @Airken posted. From my understanding it's a splitter which can host other components, and it looks like Air Ken is doing that with JScript and Webview panels inside Jsplitter... but you don't have to do that because it also has a JS editor window which can run JS/SMP code natively without hosting one of those panels, is that correct?

Can I click a button in one panel and spawn a second panel?
I've got the same kind of questions, PLEASE play around with it, attachment below was SHA-512 verified against one downloaded today from original site.  It does NOT yet contain a fix for the "invisible crash" after opening the script editor eported to the author by marc2k3 with the fix (though the author acknowledges and thanks him in the ru forum).

 

Re: JSplitter (splitter + SMP x64 alternative)

Reply #17
https://hydrogenaud.io/index.php/topic,126743.0.html

> Features of the functionality:

> 1. Panels are added to the splitter in any order, where they can be worked with as with regular Windows windows, namely: moved, resized, minimized, maximized, closed. That is, when working with the plugin, foobar2000 turns into an application with an MDI interface (Multi Document Interface). For precise positioning of panels, the display of coordinates and their editing "on the fly" in the panel window title is provided (useful when designing the assembly interface). It is also possible to customize the colors and font of the panel window title.
The splitter functionality works both in DUI and in CUI.
SHURE SRH1840, SENNHEISER HD660S2, SENNHEISER HD620S, SENNHEISER HD 490 Pro Plus, beyerdynamic DT 1990 PRO, HiFiMAN Edition XS, HIFIMAN ANANDA, Bowers & Wilkins P7, FiiO FT5, FiiO FT1 Pro, 水月雨 (MOONDROP) 空鳴 - VOID, SONY WH1000XM5 (made a Upgrade/Balanced Cable by myself)

Re: JSplitter (splitter + SMP x64 alternative)

Reply #18
I'm not able to connect to the Russian site for some reason, so I can't currently play around with this, but I've got some questions based on the screenshots @Airken posted. From my understanding it's a splitter which can host other components, and it looks like Air Ken is doing that with JScript and Webview panels inside Jsplitter... but you don't have to do that because it also has a JS editor window which can run JS/SMP code natively without hosting one of those panels, is that correct?

Can I click a button in one panel and spawn a second panel?
It's a splitter where you can add whatever you want; the splitter works different to DUI/CUI ones, since sub-panels can be arranged as windows.

In top of that you have native SMP functionality, just by adding directly a script to the panel (it just spawns a child window). You DONT need to install SMP as standalone component, since JSplitter already contains an updated copy of SMP (compatible with x64).

Finally, all child windows can be managed within JS, you can hide/show them, resize them, etc. i.e. the SMP Api has been extended.

Re: JSplitter (splitter + SMP x64 alternative)

Reply #19
@regor

Could you please lend me the folder where you installed your Script (package)? This is a test for JSplitter v3.6.1.10.
Reply #11: https://hydrogenaud.io/index.php/topic,126743.msg1052207.html#msg1052207

After installing Windows 11 23H2 (KB5044285) or 24H2, Script (package) *.zip does not load.
So you will need the Script (package) folder that you have already installed.

For example, Reply #12.
Reply #12: https://hydrogenaud.io/index.php/topic,126743.msg1052214.html#msg1052214

This is the folder for WilB's Biography and Library Tree. If you place this in the profile folder, it will load Script (package) *.zip.
You can then install it.

Please use the same folder structure as Reply #12.
I'd definitely like to test it out.

All have the same symptoms.

24H2: Bootable USB USB memory

Clean installed laptop
Overwrite installation laptop
Laptops that don't support Windows 11 (Overwrite installation laptop)

Thanks.
SHURE SRH1840, SENNHEISER HD660S2, SENNHEISER HD620S, SENNHEISER HD 490 Pro Plus, beyerdynamic DT 1990 PRO, HiFiMAN Edition XS, HIFIMAN ANANDA, Bowers & Wilkins P7, FiiO FT5, FiiO FT1 Pro, 水月雨 (MOONDROP) 空鳴 - VOID, SONY WH1000XM5 (made a Upgrade/Balanced Cable by myself)

Re: JSplitter (splitter + SMP x64 alternative)

Reply #20
Win 11 bugs should be fixed on Win 11 forums xd just saying. Also you should report it at the ru forum. maybe the dev can change the library used for unzipping.

Anyway you don't need no one to share anything, just unpack the package by yourself and put it into:
'foobar2000\foo_spider_monkey_panel\packages\'
Extrat the id from the JSON:
{E85C9EF0-778B-46DD-AF20-F4BE831360DD}
Create a folder in the packages folder which such ID:
'foobar2000\foo_spider_monkey_panel\packages\{E85C9EF0-778B-46DD-AF20-F4BE831360DD}'
X
Extract everything there. Done.

People keep forgetting "packages" were just a fancy easy way to install scripts, but anyone can install any script manually without all that. You can follow the same steps with any package, just extract their ID.

Re: JSplitter (splitter + SMP x64 alternative)

Reply #21
This is not a bug, it's a security update.

foobar2000 before applying Windows 11 23H2 (KB5044285) or 24H2.
You will need the Package folder from Script (package) *.zip that was loaded with JSplitter.
The Packages {E85C9EF0-778B-46DD-AF20-F4BE831360DD} folder name is also different.

Do you have the environment to check?

I pulled out my old laptop and updated it to the current environment (Windows 11 23H2 (KB5044285) or 24H2 not updated), and then updated foobar2000 to the current environment, loaded Playlist-Manager-SMP-0-19-0-package.zip, and copied the Package folder. I'll try testing it with foobar2000 + JSplitter 3.6.1.10 with Windows 11 23H2 (KB5044285) or 24H2 applied.
SHURE SRH1840, SENNHEISER HD660S2, SENNHEISER HD620S, SENNHEISER HD 490 Pro Plus, beyerdynamic DT 1990 PRO, HiFiMAN Edition XS, HIFIMAN ANANDA, Bowers & Wilkins P7, FiiO FT5, FiiO FT1 Pro, 水月雨 (MOONDROP) 空鳴 - VOID, SONY WH1000XM5 (made a Upgrade/Balanced Cable by myself)

Re: JSplitter (splitter + SMP x64 alternative)

Reply #22
 It's irrelevant the ID used as long as the JSON and folder name match.

There is no need to copy folders from different windows at all. Use the ID from the package you want, that's up to you. I simply gave you an example. Every ID is different

Zip files not working... well a security update which break things is a bug to me xd but whatever.

Re: JSplitter (splitter + SMP x64 alternative)

Reply #23
Playlist-Manager-SMP-0-19-0-package.zip cannot be loaded with foobar2000 + JSplitter.
WilB's Biography and Library Tree was easy to create.

Could you please take a look at the contents of the user-components-x64\foo_uie_jsplitter folder after loading Playlist-Manager-SMP-0-19-0-package.zip into JSplitter and give me some advice?
SHURE SRH1840, SENNHEISER HD660S2, SENNHEISER HD620S, SENNHEISER HD 490 Pro Plus, beyerdynamic DT 1990 PRO, HiFiMAN Edition XS, HIFIMAN ANANDA, Bowers & Wilkins P7, FiiO FT5, FiiO FT1 Pro, 水月雨 (MOONDROP) 空鳴 - VOID, SONY WH1000XM5 (made a Upgrade/Balanced Cable by myself)

Re: JSplitter (splitter + SMP x64 alternative)

Reply #24
I don't understand your reply.
Quote
Playlist-Manager-SMP-0-19-0-package.zip cannot be loaded with foobar2000 + JSplitter.
Are you saying 'Playlist-Manager-SMP-0-19-0-package.zip' doesnt work on win 11, but the others work? You reported no zip file worked.

Quote
WilB's Biography and Library Tree was easy to create.
Are you talking about the folders, following my instructions? Or the zip files?