-
Notifications
You must be signed in to change notification settings - Fork 0
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.
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.
The adapted information pages append common controls beneath their own panel-specific commands.
Available when the panel contains text, list or display objects:
- 10
- 12
- 14
- 16
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.
Available on panels that follow a media-library or playlist item:
- Prefer now playing
- Follow selected track (playlist)
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.
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.
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 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
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.
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 is available from either control panel and the centre display.
- Transparent / inherit parent
- Black
- DarkOne grey (default)
- DarkOne dark grey
- Columns UI global background
- Custom colour... (
#RRGGBB)
This single setting controls the bottom-left control panel, bottom-right control panel, centre Display panel and the Bottom Controls JSplitter backing behind them.
Transparent / inherit parent resolves uniformly to DarkOne dark grey (#181818, DOJSP3.colours.separator) across all three JScript panels and both nested JSplitter hosts. Literal no-paint transparency is not used because native JSP3 and JSplitter child windows expose different component backings. Columns UI mode follows the current Columns UI global background and updates when the UI colour changes.
- Transparent / inherit background
- Black
- DarkOne grey
- DarkOne dark grey (default)
- Columns UI global background
- Custom colour... (
#RRGGBB)
This setting controls both lower vertical divider strips together. Transparent leaves the selected bottom-area background visible in their place. The Quick Search frame and native edit-control interior remain fixed and are not affected.
The shared properties are:
DARKONEJSP3.BOTTOM.BACKGROUND.MODE
DARKONEJSP3.BOTTOM.BACKGROUND.CUSTOM.COLOUR
DARKONEJSP3.BOTTOM.DIVIDER.MODE
DARKONEJSP3.BOTTOM.DIVIDER.CUSTOM.COLOUR
JScript Panel and JSplitter keep separate notification domains. DarkOneJSP3 mirrors this state through:
js_data\darkonejsp3.bottom-area-state.txt
The file is generated automatically and should not be edited. Existing state from DarkOneJSP3\shared\bottom-area-state.txt is migrated automatically.
Each JScript panel reads and applies the shared state once during initialisation, before its first paint, then uses same-component notifications for live panel-to-panel updates. Divider-only changes update menu properties without rebuilding JScript button or Display rendering resources.
Only the Bottom Controls JSplitter polls the state file, at 100 ms, to bridge the component hosts. Failed writes are logged with the target path and retried once.
Factory reset uses a second short-lived runtime file:
js_data\darkonejsp3.reset-command.txt
The same Bottom Controls timer checks that command every 500 ms, consumes it, removes or clears the processed file and rebroadcasts the reset notification to all JSplitter controllers.
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.
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.
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...
Mouse-wheel artwork selection uses an 80 ms trailing debounce. Rapid wheel input loads only the final artwork type after scrolling settles, avoiding repeated image decoding and Direct2D conversion. Keyboard and context-menu selection remain immediate.
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.
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.
Right-click empty space on the tab row beneath the left information area. The complete menu is described below.
Select any currently visible page:
- Playlists
- Biography
- Last.fm
- Album Notes
- Queue
- Properties
Show or hide pages independently. The final visible tab cannot be hidden.
- 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.
- 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.
- 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.
- Automatic height (follows tab font sizing)
- Set fixed tab area height...
Enter 0 in the fixed-height dialog to restore automatic height.
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...
Uses the shared upper-divider menu described in section 3.
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.
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.
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.
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.
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.
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.
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
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
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.
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.
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.
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
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.
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.
Right-click the narrow JSplitter host/spacer around the waveform, not the Waveform Minibar child itself.
Host background
- Automatic - Bottom area background (default)
- Transparent / inherit parent
- Black
- DarkOne grey: RGB 32, 32, 32
- DarkOne dark grey: RGB 24, 24, 24
- Columns UI global background
- Custom colour...
Automatic follows the effective shared Bottom area background. When that shared setting is Transparent / inherit parent, Automatic resolves it to the uniform DarkOne dark grey parent tone (#181818) rather than exposing the host's native backing. Existing explicitly selected fixed Host background modes remain fixed; the fixed Transparent choice uses the same resolved tone.
The Bottom Controls host remains the sole runtime-state poller and relays changed state within the JSplitter domain, so Display/Waveform does not add another poller.
Other controls:
- Force blank waveform when playback stops
- New-track reveal delay
- Reset waveform-area settings
Waveform blanking and reveal delay are behaviour settings. Host background and custom colour are appearance settings, so the coordinated reset scopes do not alter one another.
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.
The fourth InfoStack child must be titled DOJSP3.AlbumNotes and load samples\Album Notes.txt. Right-click empty content space inside the page.
- Album notes
- MusicBrainz releases
- MusicBrainz links
MusicBrainz view entries are enabled only when their corresponding source roles are enabled.
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.
Commands:
- Move earlier
- Move later
- Restore default order
- Prefer descriptive sources
Default order:
- AllMusic
- TheAudioDB
- Wikipedia
- Apple Music
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:
- Tagged release-group MBID
- A manually confirmed or previously saved identity
- 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:
- 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.
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.
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.
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.
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.
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.BOTTOM.BACKGROUND.MODE
DARKONEJSP3.BOTTOM.BACKGROUND.CUSTOM.COLOUR
DARKONEJSP3.BOTTOM.DIVIDER.MODE
DARKONEJSP3.BOTTOM.DIVIDER.CUSTOM.COLOUR
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
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.
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. Waveform blanking and reveal delay belong to this scope; Host background belongs to appearance.
Because JScript Panel and JSplitter are separate component hosts, coordinated reset writes a short-lived command under js_data. The Bottom Controls host validates and relays it to the JSplitter controllers, then acknowledges the command by removing or clearing the file.
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.
DarkOneJSP3 documentation · Unofficial community continuation · Back up your foobar2000 profile before installation or upgrade. · Repository · Credits