DarkOneJSP3 v0.9.19 - Simply Sound Samples 馃摙
DarkOneJSP3 v0.9.19
This release introduces a major compatibility improvement for the enhanced JScript Panel 3 sample library, followed by extensive release hardening and expanded documentation.
The enhanced samples supplied with DarkOneJSP3 can now be installed and used independently by other foobar2000 themes without requiring the main DarkOneJSP3 project directory.
Enhanced Sample Library
The upgraded JScript Panel samples now store their reusable dependencies directly inside:
user-components-x64\foo_jscript_panel3\
They retain their established filenames, module paths, constructors, callbacks and saved property keys, allowing existing themes and older saved panel entries to continue using the enhanced implementations.
DarkOneJSP3 and compatible third-party themes can therefore share the same maintained sample library without requiring separate theme-specific forks.
Standalone improvements include:
- Enhanced Album Notes and MusicBrainz functionality
- Improved JS Playlist and Smooth Playlist Manager implementations
- Enhanced scripted Queue Viewer
- Updated Properties and Last.fm panels
- Shared performance scheduling and UI cadence controls
- Component-local colour and page-background handling
- Standalone reset support
- Backwards compatibility for older saved entry scripts
- Compatibility aliases for existing DarkOneJSP3 properties and notifications
Changes since v0.9.16
Standalone sample compatibility
-
Moved reusable sample infrastructure into the JScript Panel component directory.
-
Removed mandatory sample imports from the separate
DarkOneJSP3project directory. -
Added component-local shared helpers for:
- Performance management
- UI update cadence
- Colour handling
- Sample defaults
- Reset integration
-
Preserved existing sample filenames, internal paths, constructors and callback behaviour.
-
Preserved the existing
DARKONEJSP3.*,JSPLAYLIST.*andSMOOTH.*property namespaces. -
Added guarded helper fallbacks through
helpers.txtfor older themes and saved panel entries. -
Preserved the existing:
darkonejsp3_page_background: trueoption as a compatibility alias.
-
Added the neutral standalone replacement:
enhanced_page_background: true -
Generalised applicable sample and networking identities to JSP3 Enhanced Samples.
-
Removed a hidden generic
_panelcontext-menu dependency on the enhanced colour helper.
Reset compatibility and safety
-
Added the neutral standalone reset notification:
JSP3Enhanced.Reset.Properties -
Preserved support for the existing:
DarkOneJSP3.Reset.Properties -
Added a self-contained legacy reset adapter for panels retaining pre-v0.9.17 entry scripts.
-
Restored reset support for all migrated sample roles:
- Album Notes
- MusicBrainz
- JS Playlist
- Smooth Playlist Manager
- Queue Viewer
- Properties
- Last.fm Biography
- Last.fm Artist Information
-
Separated sample defaults from DarkOneJSP3 layout and controller defaults.
-
Ensured malformed reset scopes are ignored rather than being interpreted as complete resets.
-
Ensured unknown reset roles do not alter properties or unnecessarily reload panels.
-
Applied the same reset protections across:
- Standalone enhanced samples
- DarkOneJSP3 JScript Panel scripts
- JSplitter controllers
Shared helper and runtime hardening
-
Reordered current script imports so the canonical performance and UI-cadence helpers are used directly.
-
Retained the guarded copies inside
helpers.txtstrictly as compatibility fallbacks. -
Removed redundant network coordinator imports from:
- Album Notes
- MusicBrainz
- AllMusic Review
- AllMusic Review + Album Art
-
Fixed optional profiler timer resets when native JScript Panel methods are exposed as COM methods.
-
Preserved compatibility with unchanged sample entry text stored inside existing panel configurations.
-
Confirmed that no executable enhanced sample entry requires:
%fb2k_profile_path%DarkOneJSP3
Documentation
-
Added a dedicated Enhanced Sample Library section to the main README.
-
Added a direct link to the standalone integration guide:
DarkOneJSP3/docs/ENHANCED_SAMPLES.txt -
Expanded the README with:
- Standalone installation guidance
- Compatibility guarantees
- Benefits for other foobar2000 themes
- Upgrade and backup guidance
- Updated repository structure
- Revised asset descriptions
-
Added the Enhanced Sample Library guide to the main documentation index.
-
Added validator checks requiring the README section and guide link to remain present.
Validation and release hardening
- Added component-only validation that stages the enhanced sample tree without the
DarkOneJSP3directory. - Added recursive preprocessing and JavaScript syntax checks for current sample entries.
- Added recursive preprocessing and syntax checks for legacy saved entries.
- Added reset execution tests for every migrated sample role.
- Added tests for malformed scopes and unknown reset roles.
- Added source-mirror and generated-adapter synchronisation checks.
- Added combined preprocessor syntax validation for imported source trees.
- Added clean archive extraction and source-to-package hash comparison.
- Added README documentation consistency checks.
- Confirmed that all packaged files match the validated source tree.
Compatibility
No Columns UI layout changes are required.
Existing panel properties, colours, caches, scrolling preferences and sample settings are retained.
Panels containing older saved sample entry scripts remain supported. Re-importing the supplied current sample entries is recommended to receive the latest metadata and import structure, but it is not required for continued operation.
The included DarkOneJSP3.fcl remains unchanged and is not modified or regenerated by the project tooling.
Before upgrading, back up:
DarkOneJSP3\
user-components-x64\foo_jscript_panel3\samples\
user-components-x64\foo_jscript_panel3\helpers.txt
This is particularly important when another installed theme contains locally modified versions of the original JScript Panel sample files.
Validation
The completed release passed the following checks:
- 195 project files audited
- 43 current panel entries recursively preprocessed
- 7 legacy panel entries recursively preprocessed
- All migrated sample reset roles tested
- JavaScript syntax validation passed
- Python maintenance-tool validation passed
- Component-only sample staging passed
- Source mirrors and generated compatibility adapters verified
- Clean archive extraction passed
- All packaged files matched the validated source tree
- ZIP integrity test passed
- Zero validation warnings
The completed build was also tested successfully in a live foobar2000 v2.25.10 x64 portable installation using:
- JScript Panel 3.8.5
- JSplitter 4.1.12
All panels initialised successfully, all tested features worked correctly, and no JavaScript or component errors were reported.