Skip to content

Configuration Guide

Pawel Osmolski edited this page Aug 4, 2026 · 5 revisions

DarkOneJSP3 Configuration Guide

This guide maps the user-facing DarkOneJSP3 menus and settings in the supported layout. Native component menus can contain additional component-owned commands; those are identified where they are outside DarkOneJSP3's control.

Menu notation

A path such as InfoStack tab strip > Startup means right-click the named area, then open the listed submenu.

The exact place clicked matters in several panels:

  • Playlist Manager: right-click a playlist row for playlist operations; right- click empty space or the scrollbar for appearance and scrolling settings.
  • Main JS Playlist: right-click a track or empty playlist area for the main context menu; right-click the header bar for Groups, Columns and Double Track Line.
  • Biography, Last.fm, Album Notes and Properties: right-click empty content space to open the panel-specific menu followed by shared page controls.
  • Waveform: right-click the narrow JSplitter host/spacer for DarkOneJSP3 host settings; right-click inside Waveform Minibar for that native component's own menu.

1. Menu conventions and shared page controls

Shared JScript Panel page controls

The adapted information pages append common controls beneath their own panel-specific commands.

Font size

Available when the panel contains text, list or display objects:

  • 10
  • 12
  • 14
  • 16

Page background colour

Available on Biography, Last.fm, Album Notes, Properties and the optional scripted Queue Viewer. Each panel instance stores its choice independently.

Choices:

  • Transparent / inherit parent
  • Black
  • DarkOne grey: RGB 32, 32, 32
  • DarkOne dark grey: RGB 24, 24, 24 (default)
  • Columns UI global background
  • Custom colour...

Transparent / inherit parent reveals the InfoStack backing colour. Columns UI global background follows the active Columns UI background colour. The native Queue Viewer component does not use this JScript Panel menu.

Selection mode

Available on panels that follow a media-library or playlist item:

  • Prefer now playing
  • Follow selected track (playlist)

Configure...

Opens the current JScript Panel script editor/configuration window. It is an advanced command; normal DarkOneJSP3 settings should be changed through the menus documented here.

Album Art uses a related but separate Background colour menu because it is a generic image panel rather than an InfoStack text page. See section 3.

2. DarkOne Tools and control panels

Opening the menus

Right-click either bottom control panel. Right-click the centre display for Display Style, Display accent colour and DarkOne Tools.

On the right control panel, right-click directly on the volume knob to open the volume menu instead of the general control-panel menu.

Optional buttons

Menu path: either control panel > Optional buttons

The submenu lists every optional button for that panel. Checked entries are visible. The left panel provides eight optional buttons; the right panel provides ten.

Additional commands:

  • Edit buttons: configure command paths and display labels.
  • Re-detect command types: clears remembered command classifications so they are detected again on the next click.
  • Command guide...: explains supported main-menu, context-menu and trusted JavaScript command formats.

Optional-button settings are retained when a button is hidden. Labels are limited to ten characters so they remain within the intended button area.

Button appearance

Button roundness is available on both control panels:

  • Automatic / follow button style
  • Square (0%)
  • Subtle (20%)
  • Classic DarkOne (33%)
  • Rounded (60%)
  • Maximum / pill (100%)
  • Custom roundness...

The percentage is relative to the maximum possible corner radius for the current button size. Presets that intentionally use ellipses remain elliptical.

The left control panel also provides:

Button style

  • Preset 1
  • Preset 2
  • Preset 3
  • Preset 4
  • Preset 5

Button depth

  • Flat
  • Soft
  • Medium
  • Strong

Volume knob

Right-click the volume knob for:

  • Up
  • Down
  • Volume Mute
  • Set to 0 db
  • Set to -3 db
  • Set to -6 db
  • Set to -9 db
  • Set to -12 db
  • Set to -15 db
  • Set to -18 db
  • Set to -21 db

The mouse wheel adjusts volume when the pointer is over the knob.

Volume drag refresh rate

Controls the visual refresh cadence used while dragging the knob.

Choices:

  • Automatic (default)
  • 8 ms
  • 10 ms
  • 12 ms
  • 16 ms

Automatic follows the fastest live UI refresh interval reported by JS Playlist and Smooth Playlist Manager. For example, if JS Playlist uses 8 ms and Playlist Manager uses 16 ms, the knob preview uses 8 ms. When neither panel has reported a value, Automatic uses a 16 ms fallback.

The knob preview is independent from the underlying fb.Volume write cadence. Actual volume writes retain a safe minimum interval of 16 ms to avoid flooding global volume-change callbacks and starving native visualisers. The first drag value is immediate and the exact final value is flushed on release.

A manual choice overrides the preview cadence only; it does not raise the volume-write frequency above the protected 16 ms maximum cadence.

DarkOne Tools

DarkOne Tools is available from either control panel and the centre display.

Fonts

  • Control-panel labels
  • Display captions
  • Display values

Each font submenu provides:

  • Current font
  • Set font family...
  • Weight: Regular 400, Medium 500, Semi-bold 600, Bold 700 or Black 900
  • Size scale...
  • Restore default

Fonts also provides Reset all font defaults.

DarkOne2021-compatible defaults:

  • Control labels: Arial Black, Black 900
  • Display captions: Arial Black, Black 900
  • Display values: Microsoft Sans Serif, Regular 400

Plain Font display mode uses the display-value font. Dot Matrix mode uses image glyphs and is unaffected by the display-value font family.

High-DPI / scaling

  • Control font scale...
  • Button hitbox scale...
  • Icon scale...
  • Display master font scale...
  • Reset scaling defaults

Reset DarkOneJSP3

  • Reset this panel
  • Reset appearance settings...
  • Reset behaviour settings...
  • Reset all DarkOneJSP3 settings...

Utilities

  • Renderer: Direct2D + DirectWrite (JSP3)
  • Open DarkOneJSP3 folder
  • Open JScript Panel js_data cache
  • Open JScript Panel 3 component folder
  • Panel properties
  • Configure script...
  • Reload this panel

DarkOneJSP3 uses the DARKONEJSP3.* property namespace for project-managed control and display settings. Legacy DARKONE2021.* properties are not read or recreated.

3. Centre display, Album Art and Spectrum

Centre display

Right-click the centre display.

Display Style

  • Plain Font
  • Dot Matrix

Display accent colour

  • Default - DarkOne blue: #298FCC
  • Columns UI selected-item background
  • Custom colour... (#RRGGBB)

The accent applies to Plain Font values and active indicators, Dot Matrix digits and punctuation, and the stop-after-current and playback-order status icons. Switching away from Custom preserves the remembered custom value. Columns UI colour changes are applied live.

DarkOne Tools... opens the shared menu described in section 2.

Album Art

Right-click inside the Album Art panel.

Album Art commands:

  • Refresh
  • Mode: Default or Custom
  • Default image type: Front, Back, Disc, Icon or Artist
  • Edit...: edit the ordered custom image-type expression when Custom is active
  • Crop (focus on centre)
  • Crop (focus on top)
  • Full
  • Show hover tooltip
  • Open containing folder
  • Google image search
  • Double click:
    • Opens image in external viewer
    • Opens image using fb2k viewer
    • Opens containing folder

Shared Album Art controls:

Background colour

  • Use columns UI setting
  • Splitter
  • Custom
  • Set custom colour... (enabled while Custom is selected)

Selection mode

  • Prefer now playing
  • Follow selected track (playlist)

Configure...

Album Art/Spectrum side dividers

Right-click the InfoStack tab strip and open Side divider colour. The same menu is available by right-clicking either narrow upper divider strip.

Choices:

  • Transparent / inherit parent
  • Black (default)
  • DarkOne grey: RGB 32, 32, 32
  • DarkOne dark grey: RGB 24, 24, 24
  • Columns UI global background
  • Custom colour...

One setting controls both upper dividers. Transparent removes their explicit fill while preserving width and alignment. The lower control-panel dividers are unaffected.

Enhanced Spectrum Analyser

The spectrum panel is a native component. DarkOneJSP3 supplies its layout position and surrounding divider colours but does not replace or reproduce the component's own context menu. Configure analyser modes, channels, frequency range, colours and rendering through the native component menu.

4. InfoStack tab strip

Right-click empty space on the tab row beneath the left information area. The complete menu is described below.

Select tab

Select any currently visible page:

  • Playlists
  • Biography
  • Last.fm
  • Album Notes
  • Queue
  • Properties

Visible tabs

Show or hide pages independently. The final visible tab cannot be hidden.

Tab titles

  • Rename each page label
  • Use Title Case defaults
  • Use UPPERCASE defaults
  • Reset current to default
  • Reset all titles to defaults

A visible label does not change the child's required DOJSP3.* custom title. Default labels are Playlists, Biography, Last.fm, Album Notes, Queue and Properties.

Tab font size

  • Automatic tab font size
  • Set fixed tab font size...
  • Set automatic base scale...
  • Reset automatic base scale

Automatic base scale ranges from 50% to 200%; the default is 100%. A fixed font size bypasses responsive calculation. Enter 0 in the fixed-size dialog to return to automatic sizing.

Tab font colour

  • Default - DarkOne blue: #298FCC
  • Columns UI selected-item background
  • Custom colour...

This affects normal inactive labels. The active label remains white and the hovered label remains grey.

Tab area

  • Automatic height (follows tab font sizing)
  • Set fixed tab area height...

Enter 0 in the fixed-height dialog to restore automatic height.

InfoStack backing colour

Controls the JSplitter backing behind the information pages and tab strip:

  • Transparent / inherit parent
  • Black
  • DarkOne grey
  • DarkOne dark grey (default)
  • Columns UI global background
  • Custom colour...

Side divider colour

Uses the shared upper-divider menu described in section 3.

Startup

The root JSplitter owns these settings; InfoStack provides the control menu.

Transition

  • Off (default)
  • Black reveal
  • Staged reveal

Other commands:

  • Minimum black hold...
  • Layout-readiness timeout...
  • Preview startup transition
  • Restore startup defaults

Defaults:

  • Transition: Off
  • Minimum black hold: 250 ms
  • Layout-readiness timeout: 2000 ms

Black reveal and Staged reveal wait 150 ms after the final root repaint before showing native child windows. Staged reveal shows the bottom controls 125 ms after the main area. Network requests and artwork downloads do not hold the interface closed.

5. Playlist Manager

Choosing the correct menu

Right-click a playlist row for playlist operations. Right-click empty panel space or the scrollbar for panel settings. Right-clicking inside the filter field opens the normal Cut, Copy and Paste text-editing menu.

Settings menu: empty space or scrollbar

Header Bar

  • Shows or hides the complete top bar.

Playlist filter

  • Shows or hides only the playlist-name filter while the header remains shown.
  • The close icon clears the filter.
  • Ctrl+T toggles the complete header bar.

Colours

  • Enable Dynamic
  • Enable Custom
  • Alternating row shading
  • Text
  • Background
  • Selected background

The individual colour pickers are enabled while Enable Custom is active. Alternating row shading is enabled by default.

Background Wallpaper

  • None
  • Front cover of playing track
  • Custom image
  • Custom image path...
  • Blur

Enhanced smooth scrolling

  • Remember manager scroll position
  • Keep active playlist visible
  • 8 ms refresh (120/144 Hz)
  • 10 ms refresh (100 Hz)
  • 12 ms refresh (80 Hz)
  • 16 ms refresh (60 Hz)
  • Set custom refresh interval...
  • Set smoothness...
  • Set wheel row step...

Defaults:

  • Remember manager scroll position: enabled
  • Keep active playlist visible: enabled
  • Refresh interval: 8 ms
  • Smoothness divisor: 1.75
  • Wheel row step: 3

Select a fixed preset or enter a custom interval from 8-40 ms. Lower values can look smoother on high-refresh displays but generate more UI work. The selected interval controls active smooth-scroll animation only. Changes are applied immediately to the live frame loop and are retained for future panel sessions. The manager uses a demand-driven frame loop and does not keep a high-frequency timer running while idle. Playlist type and lock-state icons are cached until the playlist state changes.

Playlist row spacing

  • Compact / DarkOne2021 (26)
  • Balanced (29)
  • Original JSP3 spacing (32)
  • Set custom row height...
  • Restore DarkOne2021 spacing

The saved manager position is row-aware. It stores the top playlist anchor and row offset, reducing jumps after row-height, DPI, header or panel-size changes. An end-of-list position remains anchored to the end where possible.

Configure...

  • Opens the JScript Panel script editor/configuration window.

Playlist-row operations

When a playlist row is targeted, the menu can include:

  • Rename this playlist (F2)
  • Remove this playlist (Del)
  • Duplicate this playlist
  • Auto-playlist properties
  • Convert to a normal playlist
  • Edit playlist lock...
  • Remove playlist lock
  • Items: foobar2000 context commands for the playlist contents
  • Create new playlist
  • Load playlist...
  • Create new autoplaylist
  • Preset autoplaylists
  • Restore recycler entries
  • Clear history
  • Sort playlists A-Z
  • Sort playlists Z-A

Commands appear or change according to playlist type, lock state and recycler contents.

6. Main JS Playlist

Track and empty-area context menu

Right-click a track or empty area in the main playlist.

Panel Settings...

  • Opens the full-screen playlist configuration interface described below.

Colours

  • Enable Dynamic
  • Enable Custom
  • Text
  • Highlight
  • Background
  • Selected background
  • Mood
  • Rating

Smooth scrolling

  • Enable smooth scrolling
  • UI refresh interval:
    • 8 ms (120/144 Hz)
    • 10 ms (100 Hz)
    • 12 ms (80 Hz)
    • 16 ms (60 Hz)
  • Set custom refresh interval...
  • Set smoothness...
  • Set wheel throttle...
  • Snap wheel scrolling to playlist rows
  • Set free-scroll wheel distance...
  • Set snapped wheel row step...
  • Snap scrollbar dragging to playlist rows
  • Restore enhanced defaults

Defaults:

  • Smooth scrolling: enabled
  • UI refresh interval: 8 ms
  • Smoothness divisor: 2
  • Wheel throttle: 8 ms
  • Wheel row snapping: enabled
  • Scrollbar dragging row snapping: enabled
  • Snapped wheel row step: 3
  • Free-scroll distance: automatic, 65% of row height

Select a fixed preset or enter a custom interval from 7-40 ms. Lower values can look smoother on high-refresh displays but generate more UI work.

The playlist uses demand-driven repaint scheduling, so the selected refresh interval governs both smooth-scroll animation updates and the coalesced paints that display them, rather than waking the panel continuously at idle. Scrollbar thumb dragging uses a dedicated latest-target frame loop with time-based interpolation, allowing lower refresh intervals to render intermediate positions between host mouse-move callbacks. Row-snapped dragging remains aligned to playlist rows, while free-position dragging retains pixel offsets. The exact cursor-derived destination is applied when the mouse button is released. Changes are applied immediately, including to row-snap or free-scroll animation already in progress. Visible-row title-format output is cached across scroll frames and invalidated when playlist contents, affected metadata rows, queue state, playback state or column formatting changes. Playback-dependent fields are reused within the same playback update, and clock-dependent fields are refreshed once per second while static fields remain cached. Custom columns that share $puts/$get state retain combined-pattern evaluation when required.

When one or more tracks are selected, standard operations include Play, Crop, Remove, Invert selection, Cut, Copy, Paste and the normal foobar2000 track context commands. With no selection, Paste remains available when the active playlist accepts items and the clipboard contains compatible data.

Header-bar context menu

Right-click the playlist column header bar.

Groups

  • Enable Groups
  • Select a Group By pattern

Columns

  • Show or hide individual columns

Double Track Line

  • Enables or disables the extra line used by configured columns.

Panel Settings interface

Use the back arrow to return to the playlist. The interface contains four pages.

General

  • Show Information Panel (toggle = CTRL+I)
  • Show Header Toolbar (toggle = CTRL+T)

Columns

  • Select a column
  • Visible
  • Label
  • Title Format
  • Extra Line Title Format
  • Sort Order
  • Text alignment: Left, Right or Centre
  • Add or remove user-defined columns where allowed

Groups

  • Group by
  • Label
  • Title Format
  • Expanded group-header height: 1, 2, 3 or 4 rows
  • Enable Cover
  • Header line 1, left field
  • Header line 1, right field
  • Header line 2, left field
  • Header line 2, right field

Appearance

  • Enabled wallpaper
  • Wallpaper source: Album, Artist or Default
  • Blurred
  • Default Wallpaper Path

Information-panel playlist manager

When Show Information Panel is enabled, its internal playlist manager has its own playlist menu. Depending on the target playlist, it can provide:

  • Load Playlist...
  • Add > New Playlist
  • Add > New Autoplaylist
  • Restore recycler entries
  • Clear history
  • Duplicate, Rename or Remove playlist
  • Auto-playlist properties or conversion to normal
  • Playlist lock controls
  • Items: foobar2000 context commands

7. Biography, Last.fm and Properties

Biography

Right-click empty content space in the Biography page.

Panel-specific commands:

  • Force update
  • Last.fm API key...
  • Last.fm language: English, German, Spanish, French, Italian, Japanese, Polish, Portuguese, Russian, Swedish, Turkish or Chinese
  • Country flags > Title Format
  • Country flags > Last.fm replacements
  • Show extra info
  • Open containing folder

The panel then appends Font size, Page background colour, Selection mode and Configure... from the shared page controls in section 1.

Last.fm

Right-click empty content space in the Last.fm page.

Primary mode:

  • Artist Info
  • User Info

Artist Info methods:

  • Similar Artists
  • Top Tracks
  • Top Tags

User Info methods:

  • Charts
  • Recent Tracks

When Charts is active:

  • Artist
  • Album
  • Track
  • Overall
  • Last 7 days
  • 1 month
  • 3 month
  • 6 month
  • 12 month

Account and file commands:

  • Last.fm username...
  • Last.fm API key...
  • Open containing folder

The panel then appends Font size, Page background colour, Selection mode and Configure... from the shared page controls in section 1.

Properties

Right-click empty content space in the Properties page.

Panel-specific commands:

  • Metadata
  • Location
  • Tech Info
  • Open containing folder

Metadata, Location and Tech Info independently show or hide those sections. The panel then appends Font size, Page background colour, Selection mode and Configure... from the shared page controls in section 1.

8. Queue Viewer

Native Queue Viewer

The native Queue Viewer component is the recommended DOJSP3.Queue panel. It provides complete playback-queue editing, including adding, removing and reordering entries. Its context menu is component-owned and can change with the installed component version; DarkOneJSP3 does not reproduce that upstream menu here.

Give the component the exact custom title:

DOJSP3.Queue

Optional scripted Queue Viewer

Load the reset-aware wrapper rather than the generic sample entry:

DarkOneJSP3\jscript\DarkOneJSP3 - Queue Viewer.txt

The script reconstructs queue order from %queue_indexes%, scans incrementally when painted and supports duplicate queue positions.

Selection and navigation:

  • Click: select one row
  • Ctrl+click: toggle rows
  • Shift+click: select a range
  • Ctrl+Shift+click: add a range
  • Ctrl+A: select all
  • Up/Down: move the active selection
  • Shift+Up/Down: extend the selection
  • Home/End: first or last row
  • Page Up/Page Down: move by the visible page
  • Enter or double-click: show the source playlist item
  • Escape: clear selection

Row commands:

  • Show source playlist item
  • Play source item now
  • Open containing folder
  • Properties or Properties for selected items
  • Copy item title or selected item titles
  • Copy file path or selected file paths
  • Item display title formatting...
  • Re-scan playback queue

The script also appends Font size, Page background colour and Configure... from the shared page controls. It has no Selection mode submenu because queue rows already represent explicit source playlist items.

JScript Panel 3 no longer exposes the playback-queue mutation functions needed to add, remove, reorder or clear entries. This panel is therefore a viewer and source-item navigator rather than a complete queue editor.

9. Quick Search Toolbar and waveform area

Quick Search Toolbar

JSplitter paints the DarkOne frame. Configure the native toolbar as follows:

  • Frame style: None
  • Normal background: RGB 30, 30, 30
  • Custom icon: DarkOneJSP3\images\QS.bmp

Grey or Sunken native frames create a double border. Other Quick Search commands and search-history behaviour belong to the native component.

Waveform host

Right-click the narrow JSplitter host/spacer around the waveform, not the Waveform Minibar child itself.

Host background

  • Transparent / inherit parent
  • Black
  • DarkOne grey: RGB 32, 32, 32 (default)
  • DarkOne dark grey: RGB 24, 24, 24
  • Columns UI global background
  • Custom colour...

Other controls:

  • Force blank waveform when playback stops
  • New-track reveal delay
  • Reset waveform-area settings

The host background paints the 20-pixel spacer and the area exposed while Waveform Minibar is hidden. The default reveal delay is 200 ms and suppresses a previous track's cached waveform while the new waveform becomes available. Try 300-500 ms on slower storage or with uncached tracks.

For a continuous background, configure Waveform Minibar itself to use matching played and unplayed background RGB values, disable Transparent background and disable Draw window border. Native child-window transparency does not reliably composite with the JSplitter Direct2D host.

10. Album Notes and online sources

The fourth InfoStack child must be titled DOJSP3.AlbumNotes and load samples\Album Notes.txt. Right-click empty content space inside the page.

View

  • Album notes
  • MusicBrainz releases
  • MusicBrainz links

MusicBrainz view entries are enabled only when their corresponding source roles are enabled.

Album-note mode and sources

Album-note mode

  • Best available: checks enabled sources in Source priority order
  • Browse one source: requests only the selected enabled source

Browse source

  • Selects the single provider used while Browse one source is active.

Sources

  • AllMusic album notes (enabled by default)
  • MusicBrainz matching and relationships (enabled by default)
  • MusicBrainz Releases view (enabled by default)
  • MusicBrainz Links view (enabled by default)
  • TheAudioDB album notes (disabled by default)
  • Wikipedia album notes (disabled by default)
  • Apple Music album notes (disabled by default)

MusicBrainz matching and its two views are independent. Existing tagged or locally saved release-group IDs can still be used when online matching is off.

Source priority

Commands:

  • Move earlier
  • Move later
  • Restore default order
  • Prefer descriptive sources

Default order:

  1. AllMusic
  2. TheAudioDB
  3. Wikipedia
  4. Apple Music

Provider, identity and cache settings

Provider and matching settings

  • Set TheAudioDB API key... (the public development key defaults to 2)
  • Set Apple Music developer token...
  • Set Apple Music storefront...
  • Show resolved album identity
  • Set release-group MBID manually...
  • Forget saved album identity
  • Copy release-group MBID

Album identity is resolved in this order:

  1. Tagged release-group MBID
  2. A manually confirmed or previously saved identity
  3. An exact, unambiguous MusicBrainz release-group search when matching is enabled

TheAudioDB text is accepted only after the returned artist and album match the current selection.

Request identity provides independent profiles:

API services

  • DarkOneJSP3 application (recommended)
  • Google Chrome 150-style (experimental)

HTML services

  • DarkOneJSP3 application
  • Google Chrome 150-style (experimental)

These profiles change request headers only. They do not run a browser or bypass a provider's verification challenge.

Cache periods

  • TheAudioDB, Wikipedia and Apple Music each provide 1 day, 7 days, 14 days, 30 days or Manual refresh only. No-result responses are cached for 24 hours to avoid repeated identical lookups.

Top-level actions and diagnostics

Top-level actions:

  • Refresh enabled sources
  • Clear current source cache
  • Copy displayed notes

Current source

  • Open source page
  • Copy source URL
  • Show diagnostics
  • Copy diagnostics

Diagnostics identify disabled, cached, skipped, retried, failed and successful providers. Reopening the same album re-arms provider completion and cannot leave the enabled-source chain waiting without an active request or terminal result.

AllMusic actions

When AllMusic is the active note source, its additional actions include:

  • Paste review from clipboard
  • Open album on AllMusic
  • AllMusic cache/tools:
    • Refresh from AllMusic (retry once)
    • Delete cached review
    • Fetch from manual AllMusic URL...
    • Copy AllMusic album URL
    • Open artist cache folder
    • Open js_data cache folder
    • Copy cache file path
  • Open containing folder

These tools provide manual recovery when automatic page lookup is blocked or a specific edition URL is required.

MusicBrainz Releases and Links views

The MusicBrainz views provide additional controls.

Artist identity

  • Track artist
  • Album artist
  • Automatically resolve missing artist IDs
  • Resolve current artist now
  • Set artist MBID manually...
  • Clear cached artist match
  • Copy artist MBID
  • Open artist on MusicBrainz

Cache refresh

  • 1 day
  • 7 days
  • 30 days
  • Manual refresh only

Releases view

Release limit

  • 100 release groups
  • 250 release groups
  • 500 release groups
  • 1000 release groups

Release sorting

  • Newest first
  • Oldest first
  • Title A-Z

Links view

  • Show full link URLs

Shared MusicBrainz actions

  • Remember scroll position
  • Refresh MusicBrainz data
  • Delete current cache
  • Open containing folder
  • Set MusicBrainz contact URL/email...

MusicBrainz recognises common MUSICBRAINZ_ARTISTID and MUSICBRAINZ_ALBUMARTISTID tag variants. Automatic artist matching accepts only exact normalised names, sort names or aliases; ambiguous candidates are not guessed. Requests are serialised and spaced by at least 1.1 seconds, with bounded retries for throttling and transient failures.

Local state files

js_data\darkonejsp3.album-identity.json
js_data\darkonejsp3.network-state.json
js_data\musicbrainz.artist-map.json

The panel then appends Font size, Page background colour, Selection mode and Configure... from the shared page controls in section 1.

11. Standalone metadata panels

Enhanced standalone AllMusic and MusicBrainz samples remain available for layouts outside the default InfoStack. Do not substitute the standalone MusicBrainz wrapper for DOJSP3.AlbumNotes.

Standalone AllMusic retains manual URL, browser-open, clipboard-cache and request-diagnostic tools. Standalone MusicBrainz retains its own Releases and Links menu. Those commands are panel-specific and can differ from the consolidated Album Notes menu.

Other retained JScript Panel samples can expose their upstream context menus. DarkOneJSP3 documents the samples used by the supported layout; it does not claim ownership of every generic sample menu bundled with JScript Panel 3.

12. Persistent-property reference

Direct property editing is useful for diagnostics, but context menus are the supported way to configure normal operation. Principal DarkOneJSP3-managed properties include:

Startup
  DARKONEJSP3.STARTUP.TRANSITION
  DARKONEJSP3.STARTUP.MINIMUM.DELAY
  DARKONEJSP3.STARTUP.SAFETY.TIMEOUT

Display
  Display Style
  DARKONEJSP3.DISPLAY.ACCENT.MODE
  DARKONEJSP3.DISPLAY.ACCENT.CUSTOM.COLOUR

Control appearance
  DARKONEJSP3.VOLUME.DRAG.REFRESH.MODE
  DARKONEJSP3.BUTTON.ROUNDNESS
  Buttons appearance preset
  Buttons depth preset
  DARKONEJSP3.FONT.SCALE
  DARKONEJSP3.BUTTON.HITBOX.SCALE
  DARKONEJSP3.ICON.SCALE
  DARKONEJSP3.DISPLAY.FONT.SCALE

Album Art/Spectrum side dividers
  DARKONEJSP3.ART.SPECTRUM.DIVIDER.MODE
  DARKONEJSP3.ART.SPECTRUM.DIVIDER.CUSTOM.COLOUR

InfoStack
  DarkOneJSP3.InfoStack.ActivePanel
  DarkOneJSP3.InfoStack.FontSize
  DarkOneJSP3.InfoStack.AutoFontScale
  DarkOneJSP3.InfoStack.BackgroundMode
  DarkOneJSP3.InfoStack.BackgroundColour
  DarkOneJSP3.InfoStack.TabAreaHeight
  DarkOneJSP3.InfoStack.TabColourMode
  DarkOneJSP3.InfoStack.TabCustomColour

Information-page controls (stored independently by each panel instance)
  DARKONEJSP3.PAGE.BACKGROUND.MODE
  DARKONEJSP3.PAGE.BACKGROUND.CUSTOM.COLOUR
  2K3.PANEL.FONTS.SIZE
  2K3.PANEL.SELECTION

Playlist scrolling
  JSPLAYLIST.Enable Smooth Scrolling
  JSPLAYLIST.UI Refresh Interval (ms)
  JSPLAYLIST.Smooth Scroll Divisor
  JSPLAYLIST.Playlist Wheel Throttle (ms)
  JSPLAYLIST.Snap Wheel Scrolling To Rows
  JSPLAYLIST.Snap Scrollbar Dragging To Rows
  JSPLAYLIST.Free Wheel Step (pixels)
  JSPLAYLIST.Playlist Scroll Step
  JSPLAYLIST.Enable Render Cache
  JSPLAYLIST.Render Cache Rows
  JSPLAYLIST.Enable Performance Profiling

Playlist Manager
  SMOOTH.SHOW.TOP.BAR
  SMOOTH.PLAYLIST.MANAGER.SHOW.FILTER
  SMOOTH.PLAYLIST.MANAGER.ALTERNATING.ROWS
  SMOOTH.PLAYLIST.MANAGER.ROW.HEIGHT
  SMOOTH.PLAYLIST.MANAGER.REMEMBER.SCROLL
  SMOOTH.PLAYLIST.MANAGER.AUTO.SHOW.ACTIVE
  SMOOTH.PLAYLIST.MANAGER.SCROLL.STATE.V2
  SMOOTH.Enable Performance Profiling

Waveform host
  DarkOneJSP3.DisplayWaveform.BackgroundMode
  DarkOneJSP3.DisplayWaveform.BackgroundColour
  DarkOneJSP3.DisplayWaveform.HideWhenStopped
  DarkOneJSP3.DisplayWaveform.NewTrackRevealDelay

Performance diagnostics

The rendering optimisations are enabled by default. Advanced testing options are available through each JScript Panel's Configure... property editor:

  • JSPLAYLIST.Enable Render Cache: keeps static visible-row title-format output.
  • JSPLAYLIST.Render Cache Rows: maximum cached playlist rows; default 768, supported range 64 to 4096.
  • JSPLAYLIST.Enable Performance Profiling: logs averaged JS Playlist paint time to the foobar2000 console every 120 rendered frames.
  • SMOOTH.Enable Performance Profiling: logs averaged Playlist Manager paint time using the same sampling interval.

Profiling is disabled by default and should normally be enabled only while comparing configurations. Changing the cache properties requires a panel reload. Disabling the render cache restores per-paint title-format evaluation for diagnostic comparison, but is not recommended for normal use.

13. Resetting DarkOneJSP3

Menu path: DarkOne Tools > Reset DarkOneJSP3

Reset this panel restores DarkOneJSP3-managed properties belonging to the panel where the menu was opened.

Reset appearance settings... broadcasts appearance defaults to every participating DarkOneJSP3 JScript Panel and JSplitter controller.

Reset behaviour settings... broadcasts behaviour defaults.

Reset all DarkOneJSP3 settings... restores both groups. Multi-panel resets show a confirmation prompt.

Reset commands write explicit DarkOneJSP3-managed defaults before reloading the panels. They do not merely reload panels or store null values. Generic upstream sample customisation that DarkOneJSP3 does not own is preserved. Album Notes cache files and downloaded provider data are also preserved.

The enhanced JS Playlist participates in behaviour and full resets for its smooth-scrolling, refresh, throttle, row-step, snapping, render-cache and performance-diagnostic options. Playlist Manager also resets those behaviour settings. Its filter visibility, filter width, row height and alternating-row option belong to appearance. Full reset additionally clears its saved scroll anchors. InfoStack appearance reset restores the automatic font base scale to 100%, DarkOne dark grey page backing and Black upper side dividers.


Back to Home · Repository

Clone this wiki locally