github regorxxx/Timeline-SMP v2.0.0
v2.0.0 - Data aggregation + Dynamic queries +Dynamic colors

latest releases: v2.5.0, v2.4.0, v2.3.0...
6 months ago

Script should be installed as package, using the package manager at the SMP Configuration window. Old method is still supported anyway.

REQUIRES SMP OR JSPLITTER

Download below clicking at '[...]-package.zip'. Check installation instructions here.

image

See full changelog here.

2.0.0 - 2025-09-20

Added

  • Installation: new panel menu, accessed through 'Ctrl + Win + R. Click' (which works globally on any script and panel, at any position), used to export/import panel settings and any other associated data. These entries may be used to fully backup the panel data, help when moving between different JS components (JSplitter <-> SMP) or even foobar2000 installations, without needing to manually backup the panel properties or other external files (like .json, track's analysis data, etc.).
  • UI: new menu entry to share current UI settings across all available Timeline panels within foobar2000. It can be found at the display settings button menu (and also at the panel menu, see above). Every other panel will be highlighted and show a popup asking to import or ignore the new settings.
  • Presets: added new presets for Axis TF and data filtering. In particular some related to displaying listens by specific time ranges and to show histograms by day, month, etc. Restore defaults to see them.
  • Data: added support for foo_playcount_2003 tags to check if a source needs to be auto-updated. i.e. '%2003_LAST_PLAYED%', '%2003_PLAYCOUNT%','%2003_LAST_PLAYED_AGO%' and '%2003_LAST_PLAYED_AGO2%'.
  • Data: added support for Dynamic Queries at data filtering. Charts can now be created dynamically according to the current selection/now playing item, for ex. to show distribution of rating for selected artist only, etc. New settings have been added to 'Auto-update dynamic queries' submenu to tweak the behavior. Data updating follows a algorithm to avoid unnecessary re-calculations, i.e. if the new track is the same than the previous one or it would produce the same query, data is not refreshed; thus charts using dynamic queries and displaying data which also changes on playback will not be immediately refreshed (for performance reasons). There is also an additional setting to evaluate the query on multiple selection.
  • Data: new setting to avoid data loading on startup. This may be used to calculate data and display the chart only on demand. Previously there was an option to force a data update, but it was available only after loading it at least once. Thus charts associated to the entire library were always calculated at least once at startup, which may had been undesirable.
  • Data: added setting to change how the Z-groups are sorted within the group (independently from the global data).
  • Data: added setting to filter Z-groups points to either show all or non-zero values (on Y axis).
  • Data: added setting to switch duplicates removal. In general it will be desirable to have it enabled, but in case the X-Axis is set to track Albums, it may remove tracks present in multiple albums distorting the statistics. In such cases it's recommendable to disable it.
  • Data: added setting to aggregate Y-values per desired tag, so they are not counted multiple times. For ex. when displaying number of tracks at Y-axis, data may be aggregated by album so all tracks from same album only count as 1. This lets you display how many different items of any kind are present along X-axis values. i.e. artists per date, genres per decade, etc. Axis titles will be adjusted accordingly when using this setting or ask via input box for a proper title. Note this setting is only available when Y-axis is set to display a fixed number per track.
  • UI: added dynamic colors support based on track's artwork. It follows the background cover mode settings and must be enabled on 'Color palette' submenu. Note the axis and labels follow a different setting in their own submenu (option added on previous versions).
  • UI: new 'fill' chart type.
  • UI: new 'horizontal-bars' chart type.
  • UI: settings button tooltip now shows 'Shift + Win + R. Click' shortcut to open SMP/JSpliter panel menu (which works globally on any script and panel, at any position).
  • UI: settings button tooltip now shows 'Double Click' shortcut to force data update (see above).
  • UI: scrolling cursor is displayed when scrolling using mouse + dragging.
  • UI: added horizontal (x) scrolling using the mouse wheel (for mouses with horizontal moves).
  • UI: X-Axis shown values at display menu now allows any custom value.
  • UI: Y-Axis filter at display menu now allows any custom value for 'greater than'/'lower than' filters.
  • UI: option to filter data between 2 custom values on Y-Axis at display menu.
  • UI: custom option for Z-Axis groups setting at display menu.
  • UI: exposed grid settings.
  • UI: exposed background gradient focus setting, i.e. where the center color will be at its highest intensity.
  • UI: cut X-labels to 25 chars for non timeline charts.
  • UI: exposed color settings via window.NotifyOthers() method for themes/multi-panel support. You may pass a color scheme -size 6 recommended- (output from GetColourScheme()) at 'Colors: set color scheme' (applies to all compatible panels) or 'Timeline: set color scheme' (applies only to this script), which will set appropriate colors following panel's color logic; alternatively you may set direct color settings at 'Timeline: set colors' which needs an array of 3 colors or an object {background, left, right}. Panel has also independent settings to listen to colors from other panels or sending colors (as a color-server) to others. Additionally, local color processing from art may be disabled (in case colors are meant to be set only by server). See this and this.
  • Debug: added multiple debug logging settings to 'Other settings' menu.
  • Readme: readme is shown as popup on first installation and available at the settings menu.
  • Configuration: external files like world map database references are now exposed as a panel property.

Changed

  • Installation: added popup warnings when scripts are installed outside foobar2000 profile folder. These checks can be tweaked at globSettings.json.
  • Installation: script may now be installed at any path within the foobar profile folder, no longer limited to '[FOOBAR PROFILE FOLDER]\scripts\SMP\xxx-scripts' folder. Obviously it may still be installed at such place, which may be preferred if updating an older version.
  • Installation: multiple improvements to path handling for portable and non-portable installations. By default scripts will always try to use only relative paths to the profile folder, so scripts will work without any change when exporting the profile to any other installation. This change obviously doesn't apply to already existing installations unless restoring defaults.
  • JSplitter (SMP) support for locked playlists.
  • Statistics: general improvements and optimizations of point statistics. Now also show the total number of tracks before deduplication.
  • Data: source filters are now also applied to playlist creation when clicking on points.
  • Data: sorting routines have been changed and now multiple sorting is allowed (by every axis).
  • Data: added multi-value handling for ALBUM ARTIST tags on queries (for playlist creation and statistics).
  • Data: added the minimum value to the list of suggested values to Y-axis filter.
  • UI: unified script updates settings across all my scripts, look for 'Updates' submenu.
  • UI: improved contrast between X-axis label backgrounds and text, using WCAG contrast ratio now. Previously it just inverted the label color to B&W.
  • UI: minor adjustments to X-axis title position.
  • UI: Y-axis title position will now be adjusted according to data labels position in pie and doughnut charts to avoid overlapping.
  • UI: point menu now allows to select any point along the same Y-Z plane while using lines, scatter or fill charts. Previously it only worked on the point from the first serie (and that's why the other chart types exist though, to properly display multi-dimensional charts).
  • UI: tooltip now shows all points along the same Y-Z plane while using lines, scatter or fill charts. See comment above.
  • UI: axis legend is now shown at tooltip and point statistics popup.
  • UI: X-axis labels are now shown even when not all labels can be displayed, omitting some of the values. This ensures that charts displaying numbers at the axis at least show the initial and some middle values. This applies for bars, lines, scatter, fill and timeline charts.
  • UI: minor adjustments to buttons tooltips.
  • UI: multiple menu entries at 'Display settings' have been renamed for clarity's sake.
  • UI: multiple menu entries at 'Main settings' have been renamed for clarity's sake.
  • UI: chart title now skips the Window name (panel) if it's an UUID.
  • UI: left scrolling button position is now adjusted following Y-Axis display (except for doughnut and pie charts).
  • UI: scrolling buttons are now shown only when the chart is not showing all data (no zoom).
  • UI: bars, fill and lines chart types fallback to 'scatter' if the serie drawn contains a single point, previously nothing was drawn.
  • UI: scroll buttons are now only shown if the chart can be scrolled in such direction.
  • UI: tooltip now shows the scrolling mouse shortcut (if scrolling is possible).
  • UI: buttons are now smoothly hidden when panel is not on focus. Transparency may be adjusted from 0 to 255 only at properties ('Chart options|buttons|alpha').
  • UI: changed default margins on new installations.
  • UI: buttons are now smoothly hidden when panel is not on focus. Transparency may be adjusted from 0 to 255 by setting buttons.alpha, timer to hide them by setting buttons.timer.
  • Readme: added FAQ section.
  • Helpers: updated helpers.
  • Helpers: general code cleanup on menus internal code. Please report any bug on extra separators or menu entries not working as expected.

Removed

Fixed

  • Statistics: point statistics not working for 2D charts.
  • Statistics: Crash showing point stats on 3D graphs in some cases.
  • Data: 'Values shown' option was not applied for async data unless panel was reloaded.
  • Data: 'Force data update' option did not properly apply the current chart settings.
  • Data: minor error on decades X-axis preset.
  • Data: workaround to some tag values having numbers with commas, they are no longer considered a multi-value tag to be split. For ex. 10,000 Maniacs is not split int o [10, 000 Maniacs].
  • Data: active playlist source not being updated when removing/adding tracks in some cases.
  • Data: applying a filter to Y-axis after zooming resulted in some cases on an invalid range after changing the setting due to current range no longer having any data to shown. Now the data range is reset in these cases.
  • UI: zoom button showing '-' instead of '+' if there was no data drawn.
  • UI: minor highlighting errors on 'lines' chart type.
  • UI: color palette 'colorblind safe' setting was not saved properly between sessions.
  • UI: color palette 'colorblind safe' setting was not applied properly to filter the available schemes on the menu.
  • UI: '&' being displayed as '_' on tooltips.
  • UI: fixed minor UI background highlighting glitch when mouse was over a button but also over a point.
  • UI: fixed wrong highlighting for scatter charts. It was smaller by a few px in some cases on both axis.
  • UI: fixed X-axis first and last labels background not being properly adjusted in some cases for 'bars', 'lines' and 'scatter' charts.
  • UI: minor x-position fix on timeline and bars charts.
  • UI: fixed Y-axis title overlap in some cases.
  • UI: wrong position on second background gradient using bigradient mode.
  • UI: fixed possible crash on pie and doughnut charts when polygons tend to a line or point.
  • UI: fixed left/right scrolling buttons position not being adjusted when changing the chart type (and only refreshed on panel restart).
  • UI: adjusted right scrolling button position to not overlap with other buttons.
  • UI: adjusted Z-labels in 3D timeline charts.
  • UI: multiple fixes to axis, ticks and grids positions.
  • UI: workaround for DPI checking under multiple OSes, specially for Wine (Unix).
  • Fixed some misspelled terms on UI and variables (which also lead to some minor bugs).

Don't miss a new Timeline-SMP release

NewReleases is sending notifications on new releases.