Skip to content
Pawel Osmolski edited this page Aug 8, 2026 · 4 revisions

Frequently Asked Questions

Is DarkOneJSP3 an official DarkOne release?

No. It is an unofficial community continuation and does not imply endorsement by the original theme, component or sample authors.

Which foobar2000 architecture is required?

DarkOneJSP3 targets foobar2000 v2 x64 with Columns UI. The documented setup uses JScript Panel 3.8.5 and JSplitter 4.1.12.

Should I import the included FCL?

The FCL is optional. The package includes a maintainer-exported convenience snapshot, but the authoritative setup reference remains the Layout and Panel Map. Manual layout construction is recommended because it creates component instances for the local installation and makes every title and script assignment visible. The FCL contains both the default DarkOneJSP3 scripted-queue layout and a DarkOneJSP3 Native Queue layout.

Does an upgrade require a factory reset?

Normally, no. Persistent JScript Panel and JSplitter properties are retained. Use a factory reset only when intentionally restoring defaults or when troubleshooting a configuration-specific issue.

Do I need to re-import the JScript Panel entries after upgrading?

Not normally. Older saved entries are supported through compatibility helpers and reset adapters. Re-importing supplied entries is useful when you want the newest displayed sample metadata and import structure.

Can the enhanced samples be used by other themes?

Yes. The enhanced sample tree is standalone and does not require the DarkOneJSP3 project directory. See Enhanced Sample Library.

Will the sample library overwrite files used by another theme?

It may replace matching files in foo_jscript_panel3\samples and helpers.txt. Back them up first, especially when another theme includes locally modified versions.

Why does the Display panel report resetRenderedImages is unsupported?

That error indicates mixed or outdated Display files. The current Display system no longer exports resetRenderedImages() and refreshes through its current colour and sprite-rendering APIs. Install one complete current package, replace both Config_Global_Script.js and the Display modules, then restart foobar2000.

Why does Album Art wheel navigation no longer load every intermediate image?

The enhanced Album Art implementation deliberately waits 80 ms after the final wheel event, then loads only the selected artwork type. This prevents rapid wheel movement from synchronously decoding several images and stalling the interface. Keyboard and menu selection remain immediate.

How is rendering performance optimised?

JS Playlist caches selection and playback state and reuses visible rows, control panels reuse objects while resizing, Dot Matrix values draw directly from cached sprite sheets, InfoStack reuses a cached render model, the project Queue Viewer uses direct JSplitter queue enumeration instead of playlist-wide discovery, and Album Art creates blurred artwork only when a blur-using layout requests it. The standalone Queue Viewer retains bounded yielding scans. These optimisations are automatic.

How do the shared bottom-area colours work?

Bottom area background is one setting shared by the bottom-left control panel, bottom-right control panel, centre Display panel, Bottom Controls backing and—when Automatic is selected—the Display/Waveform host.

Bottom area side divider colour controls both lower vertical divider strips. The Quick Search border and native edit-control background remain independent.

What happens if I cancel a bottom-area Custom colour picker?

Nothing changes. Cancelling the native picker—or closing it without selecting a different colour—preserves the previous mode and custom colour. A failed native picker call is also non-destructive and writes a contextual message to the foobar2000 console.

Why can native colour-picker values appear negative in diagnostics?

DarkOneJSP3 stores and renders colours as opaque ARGB values. JScript Panel's native ColourPicker expects the same 32-bit bit pattern as a signed integer, so values with an opaque alpha byte may be negative only while crossing that native API boundary. The selected value is normalised back to the established opaque ARGB representation before it is stored or rendered.

Why does Transparent / inherit parent use #181818?

JScript Panel and JSplitter child windows expose different native backings when they literally paint nothing. DarkOneJSP3 therefore resolves the composite bottom area's inherited colour to DOJSP3.colours.separator (#181818) across every participating surface, producing a uniform result.

What does Automatic mean for the Display/Waveform Host background?

Automatic follows the effective shared Bottom area background. It is the default for new configurations and appearance resets. Existing explicitly stored fixed Host background modes remain fixed until Automatic is selected.

What are the files in js_data beginning with darkonejsp3.?

darkonejsp3.bottom-area-state.txt stores shared bottom appearance across the separate JScript Panel and JSplitter hosts. darkonejsp3.reset-command.txt is a short-lived factory-reset bridge. The queue bridge additionally uses darkonejsp3.queue-state.json, darkonejsp3.queue-command.json and darkonejsp3.queue-command-result.json for direct enumeration and writable queue commands. These files are generated at runtime, excluded from releases and should not be edited manually.

Which Queue Viewer should I use?

Use the DarkOneJSP3 scripted Queue Viewer. It is the recommended implementation because its JScript Panel UI uses the always-running JSplitter root as a direct, writable queue bridge, providing fast enumeration plus remove, multi-remove, clear and reorder controls. The separate native Queue Viewer remains a supported alternative for users who prefer its native interface. The generic Enhanced Sample Library Queue Viewer stays read-only when used outside DarkOneJSP3 because the project bridge is not present.

Why does Album Notes report an AllMusic HTTP 403?

AllMusic may reject scripted requests even when the page works in a normal browser. Album Notes can attempt a MusicBrainz relationship lookup as an AllMusic URL resolver. Some albums still require Fetch from manual AllMusic URL... or another enabled source.

Why does Album Notes say MusicBrainz could not match an album?

The automatic search could not confidently identify the release. Supply a MusicBrainz release-group or release MBID, correct the tags, forget the saved identity and resolve again, or use a manual AllMusic URL where appropriate.

Why are there many “Playlist loaded” console lines?

foobar2000 reports each restored playlist during startup. These lines are informational unless accompanied by an actual error or failed script initialisation.

Why does the theme briefly show a native grey or black surface at startup?

With Startup set to Off, native Columns UI or JSplitter backing surfaces may briefly appear before every child completes its first paint. Use Black reveal when this is noticeable. Optional reveal modes intentionally coordinate nested controller readiness.

Why does JS Playlist use more CPU at 8 ms?

An 8 ms refresh interval targets very smooth animation but performs more frequent work. Select 10, 12 or 16 ms when lower CPU usage is more important.

Why can’t I find a setting mentioned in the guide?

Right-click location matters. Playlist rows, empty panel areas, scrollbars, the volume knob, centre display, narrow waveform host and InfoStack tab strip expose different menus. See the Configuration Guide.

What should I include in a bug report?

Include component versions, the exact panel or script, reproduction steps, console output, screenshots when useful, and confirmation that the issue occurs on the current stable release. Run the validator where possible.

How do I roll back?

Close foobar2000 and restore the backed-up DarkOneJSP3 folder and JScript Panel sample files. Re-import the backed-up Columns UI layout only when the layout itself changed.

Clone this wiki locally