Skip to content
This repository was archived by the owner on Nov 29, 2025. It is now read-only.

SMP vs JSplitter notes

regorxxx edited this page Sep 18, 2025 · 1 revision

As noted on the installation page, both Spider Monkey Panel and JSplitter components are compatible.

A few notes about these components:

  • To simplify, JSplitter can be considered a component merging a Splitter element + SMP panel within the same UI panel. As splitter, it may contain multiple child panels. People with some kind of JS knowledge or advanced UI needs will surely prefer tinkering with JSplitter.
  • In SMP there is only a panel/window per 'script host'.
  • In JSplitter there is a 'background panel' which can host a script file/package. And also may contain multiple floating windows within it (usually hosting other kind of panels, but it's also possible to have multiple JSplitter windows recursively added as shown below).

image

  • All existing SMP scripts until 2024 are 100% compatible with both components. JSplitter introduces a few new methods which has not been used by devs at the moment, but some kind of compatibility layer or feature check instead of crashing is a reasonable expectation if this changes.
  • Both may be installed and actively used at the same time on a foobar2000 instance. This also applies to any other JS component, like JSP3.
  • SMP only supports x32 architecture, while JSplitter has components for both x32 and x64 architectures. Therefore people migrating to foobar2000 v2+ x64 may want to use JSplitter to continue using their SMP scripts.
  • JSplitter uses a more modern JS engine than SMP so some performance improvements may be expected.
  • Installation steps and paths are exactly the same on both components.
  • Each one has its own settings at the advanced preferences window, its own package repository, etc.

image

  • A non-official support thread for JSplitter may be found at Hydrogenaudio forum.
  • Panel's properties from both components are interchangeable. i.e. They can be exported and/or imported in both of them. This may be used to create backups or to transition from one component to the other -when replacing panels- without losing any setting.

image

Clone this wiki locally