foo_vis_vumeter

foo_vis_vumeter is modern reimplementation of the analog VU meter component by DRON. It renders using DirectX 12, falling back to DirectX 11 under Wine.

Features

Verification

Run Requirements and Installation

Panels or Skins

The panels or skins files define the visualizations.

The foobar2000 component is not packaged with any panels. It supports various formats, namely foobar2000 .bin files, AIMP analog .zip skins and AIMP LED .zip skins.

Use these references to find community-made skins or create new ones using VUEditor:

Usage

The component is controlled via the context menu, accessible by right-clicking anywhere on the component window. In addition, fine tuning can be performed by using the mouse wheel.

What the mouse wheel controls is selected through the "Tuning" menu. If the changes result in bad state, use the "Options > Reset" option. The selected tuning mode value can be reset to its default using middle click.

In the context menu there are a few symbols placed next to some options. These are their meaning:

What follows are the different menu categories with a short explanation of each option.

At the very top of the context menu, the current resolution of the loaded panel is displayed as a grayed informational item. If no panel is loaded, it shows a corresponding message.

Layout:

Mode:

Levels:

Movement:

Decay:

Tuning (mouse wheel-controlled):

Options:

Configure: opens a dialog box with the tuning options.

Mix: opens a dialog box with the channel level mixer board.

Explore: opens the profile directory in Windows Explorer.

Fullscreen: toggles the component between fullscreen mode and embedded or windowed mode. Keeps the screen on and stops the screensaver from starting during fullscreen. In fullscreen mode, the mouse cursor is automatically hidden after 1 second of inactivity and reappears on mouse movement or context menu interaction.

The Fullscreen option is bolded because it is the double-click default.

The different panels/skins found during the scan of the <foobar2000 profile folder>\vumeter directory appear in lexicographical order (directories first) below the "Fullscreen" toggle.

There are some options under: Preferences > Advanced > Visualisations > VU Meter:

Tuning Mode Selection

The currently selected tuning parameter is denoted by a square symbol under the context menu's Tuning popup. The selected tuning parameter can be changed by three main methods. The first is directly through selecting the desired one in the context menu. The second is using a modifier key and the vertical mouse wheel together to cycle through the parameters in menu order. The modifier key that must be held down while the vertical mouse wheel turns is one of Esc, Right Alt or AltGr. The third is to use the horizontal mouse scroll wheel. As the tuning parameter changes, the mouse tooltip should display the active one and its current value.

Once again, the selected tuning mode value can be reset to its default using middle click and all tuning parameters will fall back to their defaults if the Options > Reset option is used.

Note: selecting a parameter simply means this is the one that will be affected by the mouse wheel and middle mouse click. The combination of all settings and tuning parameter values determines the visualization's behavior appearance.

Tuning Dialog Box

Tuning can also be done through the context menu's Configure dialog box. Notes:

Mixer Dialog Box

Channel level mixing can be customized through the context menu's Mix dialog box. Notes:

Layout Suffix

Skin filenames can include a layout suffix using the pattern N where N is a number from 0 to 4 corresponding to the layout modes (0 = Left+Right H, 1 = Left+Right V, 2 = Left, 3 = Right, 4 = Mono). When a skin with a layout suffix is loaded, the layout is automatically set to the specified mode. The suffix is removed from the display name in the context menu. This behavior is disabled when "Ignore Defaults" is enabled.

The component adds a dynamic menu item under foobar2000's main menu (hidden by default; hold Shift when opening to reveal). It displays the panel groups and skins, along with "Previous" and "Next" navigation commands per group.

Gestures

The press-and-tap touch gesture switches skins/panels within the same group.

Horizontal Mouse Wheel, Button 4 and Button 5

The horizontal mouse wheel and buttons 4 and 5 can be used to cycle through the selected tuning option. Be aware that buttons 4 and 5 might have other side-effects in the player such as moving to the next or previous track.

Screenshot

A screenshot can be taken by holding Ctrl and left-clicking on the component window. The screenshot is saved as a PNG file in the screenshots subfolder of the panels directory. Files are named sequentially (shot_00.png, shot_01.png, etc.).

Keyboard Shortcuts

As with the mouse buttons, be aware that any custom keyboard shortcuts set in the player can alter or prevent the component from reacting to these.

Running foobar2000 under Proton

When foobar2000 is installed as a non-Steam title, it can be launched against its Proton prefix directly from the command line. Replace <id> with the app's compatdata identifier and adjust the Proton build path if you use a different Proton version.

STEAM_COMPAT_DATA_PATH="/home/deck/.steam/steam/steamapps/compatdata/<id>" \
STEAM_COMPAT_CLIENT_INSTALL_PATH="/home/deck/.steam/steam" \
"/home/deck/.steam/steam/steamapps/common/Proton - Experimental/proton" run \
"/home/deck/.steam/steam/steamapps/compatdata/<id>/pfx/drive_c/users/steamuser/foobar2000/foobar2000.exe"

Fonts under Wine and Proton

The dialogs and the on-screen frame counter request the "Segoe UI" font. Windows ships this font, but Wine and Proton do not, so they substitute a default sans-serif face (often Liberation Sans or the host desktop font). To restore a Segoe UI-like appearance, use one of the following approaches. In each case, restart foobar2000 afterward.

  1. Copy Segoe UI into the prefix (most faithful; requires a Windows license). Locate the Wine/Proton prefix foobar2000 runs in. For a Steam/Proton shortcut this is ~/.steam/steam/steamapps/compatdata/<AppID>/pfx; for plain Wine it is $WINEPREFIX (default ~/.wine). Copy the Segoe UI family (segoeui.ttf, segoeuib.ttf, segoeuii.ttf, segoeuiz.ttf, segoeuil.ttf, seguisb.ttf, segoeuisl.ttf, seguibl.ttf and their italics) from a licensed C:\Windows\Fonts into <prefix>/drive_c/windows/Fonts/.
  2. Use Selawik (open, metric-compatible). Microsoft's MIT-licensed Selawik font is a drop-in, metric-compatible substitute for Segoe UI. Install selawik*.ttf into the prefix Fonts folder, then map the name: under the HKEY_CURRENT_USER\Software\Wine\Fonts\Replacements registry key, add a string value named Segoe UI with data Selawik.
  3. Substitute a font already on the system. Using the same Wine\Fonts\Replacements key, map Segoe UI to a similar installed face such as Open Sans, Noto Sans or Liberation Sans.

Note 1: The Wine\Fonts\Replacements key is also where to look for (and delete) an existing Segoe UI (and Segoe UI Semibold) mapping if a copied font is not being picked up. A stray mapping to a serif face such as Times New Roman is a common reason the dialogs render in a serif font even when Segoe UI is installed.

Note 2: Copying Segoe UI from a licensed Windows installation for personal use is permitted; it may not be redistributed, which is why Selawik exists for bundling a prefix.

Window Scaling under Wine and Proton

If the dialogs render too small or too large under Wine or Proton, adjust the prefix's DPI. Scaling is controlled through winecfg.

  1. Open winecfg for the prefix foobar2000 uses:
  2. In winecfg, open the Graphics tab and change the Screen resolution DPI value. 96 dpi is 100%; common steps are 120 (125%), 144 (150%) and 192 (200%). Higher values enlarge the entire UI - dialogs, fonts and the meter chrome; lower values shrink it.
  3. Click Apply / OK.

Note: The DPI value is stored in the registry at HKEY_CURRENT_USER\Control Panel\Desktop\LogPixels (a decimal REG_DWORD, e.g. 120), which you can also set directly with wine regedit instead of winecfg.

Dynamics

The needle movement can be approximated using the following formula: display = old +/- (e ^ (new - old) - 1) * rise/decay. The rise or decay factor limits how far the needle can move per frame or iteration of the calculation.

The needle position, frame number in foobar2000 .bin panels or angle in AIMP analog .zip skins, is calculated using the point-slope equation referenced to the zero dB frame or angle. For the AIMP LED .zip skins, the "light" fill is calculated by interpolating between the points in the dbs parameter's array using Catmull-Rom splines.

Needle Behavior Derivation Methodology

Used a circuit of a stereo VU meter, tracing the PCB and translating all the component values of the driving circuit into a SPICE netlist. The netlist was simulated to get the step/transient and impulse responses of the "system." Since the VU meter face plate is logarithmic, the circuit uses analog differentiator, integrator and summer circuits. To validate the netlist simulation correctness, various points of the working circuit were probed with an oscilloscope.

With the characteristics of the driving circuit in hand, turned attention to the needle. The needle can be modeled as a mass-spring-damper system. So, setting up the ODE for the system (with some minor guesses) provides the behavior characteristics of the needle. This is a common second-order system with known roots.

The needle was set up underdamped. The transient and impulse response targets of the SPICE simulation (which come from the voltage levels closest to the visualization audio levels provided by foobar2000) are exposed as higher-level abstractions called "rise" and "decay"--where larger numbers mean faster--and "jitter", a control on the minimum change threshold. These knobs drive the ODE Roots movement. For a standards-based alternative, the default VU Ballistics movement derives the ANSI/IEC second-order response directly from a settle time and overshoot (see the Movement section).

This methodology only provides an approximate model of the analog behavior of the needle in a discrete simulation. Although the derivation was detailed, the needle movement of this component is not and will never be an accurate duplicate to its real-world analog. However, using the tuning knobs provided along time and experimentation it should be possible to create a pleasing ballistic needle movement.

.bin File Specification

Panel Specification
===================

Reverse Engineer: Jimmy Cassis
Date: 2024-10-01

This specification defines the format of the BIN file.

Panel File Format
-----------------

The files in this format use ".bin" extension.

The panel file begins with a header.

The panel file format layout:

Offset     Size    Description

  0          2     Bitmap width (16-bit unsigned integer, little-endian), between 2 and 4096
  2          2     Bitmap height (16-bit unsigned integer, little-endian), between 2 and 4096
  4          2     Frame count (16-bit unsigned integer, little-endian), between 2 and 1024
  6          2     Zero dB frame (16-bit unsigned integer, little-endian), between 0 and 1024
  8          n     Needle delta offset list (array of 32-bit unsigned integer offsets, little-endian), `n` is "frames * 4" and the first entry must be greater than or equal to 32; note that some offsets might be repeated due to the "knots" interpolation.
  8+n        p     Background image bitmap pixel array (BI_RGB format [B8G8R8A8 UNORM], 32 bits per pixel, little-endian), `p` is "width * height * 4", format below
  8+n+p      l     Optional, lamp delta offset list (array of 32-bit unsigned integer offsets, little-endian), `l` is "frames * 4"
  8+n+p+l    d     Needle delta arrays (variable size, offsets are big-endian, deltas are BI_RGB and apply per channel), `d` is variable, format below
  8+n+p+l+d  a     Optional, lamp delta arrays (variable size, offsets are big-endian, deltas are BI_RGB and apply per channel), `a` is variable, format below

The total size of the file is: 8+n+p+l+d+a
The total size of the file must be greater than: 8+n+p

The bitmap pixel array layout is as follows (address _decreases_ from left-to-right) and arranged in top-down order:

                     +-------------------------+-------------------------+-------------------------+-------------------------+
Sample Length:       |            8            |            8            |            8            |            8            |
Channel Membership:  |          Alpha          |           Red           |          Green          |           Blue          |
Pixel Bits:          |  A  A  A  A  a  a  a  a |  R  R  R  R  r  r  r  r |  G  G  G  G  g  g  g  g |  B  B  B  B  b  b  b  b |
Bit Number:          | 31 30 29 28 27 26 25 24 | 23 22 21 20 19 18 17 16 | 15 14 13 12 11 10  9  8 |  7  6  5  4  3  2  1  0 |
                     +-------------------------+-------------------------+-------------------------+-------------------------+
                      ^                         ^
                      |                         |
                      |                         + less significant byte
                      + more significant byte

The needle and lamp delta arrays use the following format:

- For every frame there is a 2-byte big-endian offset while the most significant bit (MSB) of the even byte is unset.
- If the MSB for the even byte is set, it indicates a count (excluding the MSB) of the number of pixel channels to override starting at the offset in the pixel array indicated by the sum of all the previous 2-byte offsets.
  * Note that the offset might not necessarily start or end at a pixel boundary.
- Repeat, calculating a new offset from the end of the final overriden pixel until the even byte MSB is set and the count is zero (0x80).

Worked example for the needle delta array (address _increases_ from left-to-right):

             +-----------------------------------+-----------------------+-----+-----------------------------------------------------------+-----+---------...---+
Offset Sum:  |             174272                |           7           | 1489|                           19                              | 1481|     23  ...   |
Offset:      |32768+32768+32768+32768+32768+10438| 7| 0| 1| 2| 3| 4| 5| 6| 1488|19| 0| 1| 2| 3| 4| 5| 6| 7| 8| 9|10|11|12|13|14|15|16|17|18| 1480|23| 0| 1|...| 0|
Bytes:       |7F FF 7F FF 7F FF 7F FF 7F FF 28 BF 87 8A 8B 87 00 E0 E2 DE 05 D0 93 B1 B2 AE 00 69 6A 67 00 6B 6D 68 00 B8 B9 B6 00 E0 E2 DF 05 C8 97 E6 EE ... 80|
Pixel Bits:  |^^ **                              |   Bb Gg Rr Aa Bb Gg Rr|     |   Bb Gg Rr Aa Bb Gg Rr Aa Bb Gg Rr Aa Bb Gg Rr Aa Bb Gg Rr|     |   Bb Gg ...End|
             +-|--|------------------------------+-----------------------+-----+-----------------------------------------------------------+-----+---------...---+
               |  |
               |  + more significant byte
               + less significant byte

Notes
-----

When drawing, ignore the alpha channel.

Extensions
----------

1. Separate Left and Right Panels

  By default, the panel file represents both the left and the right panels.
  If the file format is repeated at the end of the delta arrays, it is assumed that the first format corresponds to the left panel and the second format corresponds to the right panel.
  The file formats can be concatenated uncompressed into one file. Alternatively, individually compressed files can be concatenated (keep the same compression scheme for both).
  Another method to provide separate left and right panels is to provide a pair of files where the left panel file ends in `1.bin` and the right panel file in `2.bin`.

2. Transparency (Alpha Channel)

  By default, the alpha channel is ignored.
  If the alpha channel is not to be ignored (BI_BITFIELDS format [B8G8R8A8 UNORM], 32 bits per pixel, little-endian), set bit 7 (the most significant bit) of the upper byte of the zero dB frame in the header.

3. Bottom-up Background Bitmap Pixel Array.

  By default, the bitmap pixel array is assumed to be in top-down order.
  If the bitmap pixel array is arranged in bottom-up order instead of top-down order, set bit 6 of the upper byte of the zero dB frame in the header.

Additional .bin Notes

Warning: Identifying LZMA-compressed heuristic is limited; especially if the skin was compressed outside of VUEditor. Therefore it is possible to confuse an uncompressed .bin file of any width less than 225 with a LZMA-uncompressed one. Using a bzip2-compressed file mitigates this issue since this scheme starts with an easily identifiable magic number.

AIMP Analog .zip Specification

Note 1: MobilityNegative, MobilityPositive, and orientation parameters are currently unused.

Note 2: The dbs parameter array is optional and only used in skins that include an LED component in addition to the needle. As noted previously, the LED image is l_,r_,3.png.

Note 3: Missing parameters are assumed to be 0 or false.

AIMP LED .zip Specification (LVU)

foobar2000 .rar Specification

Note 1: fall and rise parameters are currently unused.

Note 2: The peakLED parameter being true sets Levels to _Mixed as soon as the panel is loaded. The singleMeter and isVertical parameters combine to set the Layout mode. The bgColour parameter sets the background color, overriding the edge color detection. The curveAdj parameter flattens the logarithmic curve by affecting the quadratic parameter.

Note 3: Missing parameters are assumed to be 0 or false.

foobar2000 .7z Specification

Standalone .ini File

COM Interface Specification

The component exposes COM interfaces for automation. The IVUMeter and IVUMeterWindow COM interfaces for managing and interacting with the foobar2000 VU Meter component. In foobar2000, these interfaces are mainly accessed through JavaScript.

Functions

com_get_interface

Retrieves a IVUMeter interface instance.

extern "C" __declspec(dllimport) HRESULT __cdecl com_get_interface(IVUMeter** pp);

Enums

LayoutEnum

Defines the layout options for the VU Meter window.

Value Name Description
0 BothH Both channels, horizontal
1 BothV Both channels, vertical
2 Left Left channel only
3 Right Right channel only
4 Mono Mono layout

Interfaces

IVUMeter

Provides control and status for the VU Meter component.

IID: {9EBE6FDE-502B-4571-922F-5D5942A53638}

Properties
Property Returns (get) / Accepts (put) Description
ComponentVersion UINT; get Gets component's version number.
ComponentVersionText BSTR; get Gets component's version as text.
LeftLevel FLOAT; get Gets left channel RMS level.
RightLevel FLOAT; get Gets right channel RMS level.
LeftPeak FLOAT; get Gets left channel peak level.
RightPeak FLOAT; get Gets right channel peak level.
Offset DOUBLE; get, put Gets or sets gain offset value.
UpdatePeriod DOUBLE; get, put Gets or sets update window period.
BackgroundTimeout UINT; get, put Gets or sets the transparent-background recapture interval (ms).
DownmixChannels BOOL; get, put Gets or sets downmix state.
AutoGain BOOL; get, put Gets or sets automatic gain control state.
Correction BOOL; get, put Gets or sets needle correction state.
RoundCorners FLOAT; get, put Gets or sets corner rounding.
CubicInterpolation BOOL; get, put Gets or sets cubic interpolation state (hidden; no menu option).
DisableTuning BOOL; get, put Gets or sets tuning disable state.
DisallowFullscreen BOOL; get, put Gets or sets fullscreen restriction state.
MultiMonFullscreen BOOL; get, put Gets or sets multi-monitor fullscreen state.
RemoveBackground BOOL; get, put Gets or sets background removal state.
EnableTransparency BOOL; get, put Gets or sets transparency state.
IgnoreDefaults BOOL; get, put Gets or sets "ignore defaults" state.
DisablePause BOOL; get, put Gets or sets the "equivalent pause and stop" state.
Freeze BOOL; get, put Gets or sets freeze state.
ShowCounter BOOL; get, put Gets or sets FPS counter visibility.
ScreensaverMode BOOL; get, put Gets or sets screensaver mode state.
VSync BOOL; get, put Gets or sets (no effect) VSync state.
WindowID UINT; get Gets current active window ID. Returns -1 if there is no active window.
WindowCount UINT; get Gets total window count.
Functions
Function Returns Description
Print(BSTR Text) None Prints text to the foobar2000 console.
Rescan() None Rescans vumeter folder.
Defaults() None Restores defaults.
CreateWindow(UINT ID) IVUMeterWindow** Creates VUMeterWindow interface for the window using ID.
RegisterWindow(UINT ID) None Sets window using ID as active.
RegisterRect(UINT ID, INT Left, INT Top, INT Width, INT Height) None Registers a rectangle region -- no effect.
StartWaves() None Starts periodic waveform/level updates.
StopWaves() None Stops periodic waveform/level updates.

/----------------------------------------------------------------------------------------/

IVUMeterWindow

Represents a VU Meter window instance with properties for visibility, layout, and skin/panel configuration.

IID: {482C5F92-2D21-4F6F-9857-87C1D2C04344}

Properties
Method Returns (get) / Accepts (put) Description
Visible BOOL; get, put Gets or sets (no effect) window visibility state.
Enabled BOOL; get, put Gets or sets (no effect) window enabled state.
Layout LayoutEnum; get, put Gets or sets current layout.
LockAspectRatio BOOL; get, put Gets or sets aspect ratio lock state.
Fullscreen BOOL; get Gets the fullscreen state.
SkinName BSTR; get, put Gets current skin name or changes skin.
GroupName BSTR; get, put Gets current group name or changes skin to first one in group.
GroupCount UINT; get Gets number of groups (directories).
SkinCount UINT; get Gets number of skins in group of currently-selected skin.
Functions
Function Returns Description
SetBounds(int Left, int Top, int Width, int Height) None Sets window position and size -- no effect.
ToggleFullscreen() None Toggles fullscreen mode.
SetConfig(BSTR GroupName, BSTR SkinName, LayoutEnum Layout) None Changes skin and layout.
LoadSkin(BSTR GroupName, BSTR SkinName) None Changes skin.
LoadPrevSkin(BSTR GroupName) None Loads previous skin in group (does not wrap around).
LoadNextSkin(BSTR GroupName) None Loads next skin in group (does not wrap around).
GroupSize(UINT Index) UINT Gets size of a group by index.
Groups(UINT Index) BSTR Gets group name by index.
Skins(UINT Index) BSTR Gets skin name by index in group.
Skin(UINT Group, UINT Index) BSTR Gets skin name by group index and skin index.

Configuration GUIDs

The component identifies itself, its preferences, and every persisted setting to foobar2000 through fixed GUIDs. These are internal identifiers of interest primarily to developers and for troubleshooting configuration state.

Entries marked Reserved are allocated but currently inactive; the GUIDs remain reserved so the identifiers are not reused. Type prefixes follow Hungarian notation: sz is a string, b is Boolean, and n is an integer.

Component Registration

Symbol GUID Status Description
vumeter 0A8B8B7A-2E90-43BB-B395-EB41A124F7E2 Active Visualization UI element (component) class.
vumeter_preferences F390D0B0-F19E-4FEA-A0D9-0DC0AC11A055 Active Component preferences page.
main_menu FE456D4A-7D11-4086-9869-6FBBDFDEB7F5 Active Main menu group ("Analog VU Meter skins").

Settings Controlled in Preferences Page

None. All persisted settings are exposed through the context menu, tuning/mixer dialogs, or advanced preferences rather than a dedicated preferences page.

Settings Controlled in Advanced Preferences

Symbol GUID Status Description
advconfig_branch 3DBF6F5C-18BD-4E12-A018-A2C93FD40943 Active Advanced preferences branch (tree node).
cfg_bDebugOutput 288048A7-F084-4C4F-ABBB-0204CE61E161 Active Boolean; enables debug console output.
cfg_szPanelsDir A409AF0E-3249-411C-9F43-10BFE1C1EAA3 Active String; panels/skins directory override.
cfg_szDegreelessness 26C9437C-7A9B-4431-A3C6-E4D7381CA3B7 Active String; hidden diagnostic setting.
cfg_bMemoryOptimize 908C4494-A58F-45B0-8853-98D977550B1E Active Boolean; memory optimization.
cfg_bEnableCOM B3DB04F7-5E99-4AC0-8A9A-F7D4004AF872 Active Boolean; enables COM automation.
cfg_nRenderBackend C7A3F1E2-9B84-4D6A-BE12-3F5A9C0D7E48 Active Integer; render backend selection (DX12/DX11).

Options Showing in Main Menu

None.

State Settings Saved on Close and Restored on Launch

Controlled through the context menu or keyboard shortcuts.

Symbol GUID Status Description
cfg_layout 368B5693-7091-408A-A3C1-74FA0259AF9A Reserved Panel layout.
cfg_lock_aspect_ratio 86D87AC0-F34C-46BA-A50C-03E3FBD67D37 Reserved Aspect ratio lock.
cfg_mode 7D098528-8D61-4CAD-807A-908C65B07A70 Reserved Channel mode.
cfg_level 0705F80D-FF4E-4B7F-940D-0E0EC5B79E63 Reserved Level metering method.
cfg_tune 06412F09-F77F-4861-A6AC-73B2029C357F Active Active mouse-wheel tuning mode.
cfg_zero C8565C14-E384-45F2-99A1-3D0CC0F549B2 Active Needle zero-frame offset.
cfg_range 5E21CED6-7E84-4109-B63D-16EA025ECDAD Active Needle range compression.
cfg_decay 2731521E-9ABB-4CD0-87CB-8D2050DB3EC3 Active Needle decay factor.
cfg_rise 4E52E172-C866-405A-8916-6EC9AD496146 Active Needle rise factor.
cfg_jitter D769DF7E-CC47-4AAA-ACF4-BBF55E2C872B Active Movement jitter threshold.
cfg_preamp_gain 37EF1A37-F1C6-4C9D-9D44-98575AD3A732 Active Preamp gain.
cfg_auto_gain 9A1F4B2C-7D3E-4C6A-B58F-2E9C10AD37B4 Active Automatic gain control toggle.
cfg_correction 7C2A9E14-3B6D-4F81-A0C5-8E1D2F4B6A90 Active Needle correction toggle.
cfg_sample_window 385E0310-CE68-4F8D-9493-F069EF8F485B Active Level sample window.
cfg_max_fps 473E162D-FC44-45CF-807A-A5F100B686C0 Active Maximum frames per second.
cfg_round_corners 4C99FF1D-28CE-406F-AB2A-105DEC4DC11A Active Rounded corner radius.
cfg_timeout 554AD54E-C110-41C4-8D38-6623B2E00C1A Active Background/transparency timeout.
cfg_inertia 6FFBFBE7-9E00-473E-A30A-E99CB5E8800B Reserved Needle inertia.
cfg_downmix 6C79D6FE-4F8F-4B1C-A47A-59975F5EBAD6 Active Downmix channels toggle.
cfg_cubic_interpolation D005942F-399D-4763-B495-3887EEF18DC9 Reserved Cubic interpolation.
cfg_lock_tuning BBFD6455-5F48-4E79-A023-F582A2C4AA37 Active Disable tuning toggle.
cfg_fullscreen 349B0CD8-3A61-4328-BAE1-52C89FEE0430 Active Disallow fullscreen toggle.
cfg_background E85F0D94-D654-46CD-8F8C-B4C893B0D67A Active Remove background toggle.
cfg_transparent D2124978-AF41-4EDF-9A54-0788BC530CEA Reserved Enable transparency.
cfg_ignore E236AB91-15EE-4EBB-A9A9-E150CAD37B20 Active Ignore panel defaults toggle.
cfg_pause AF200679-B16D-411E-9CD1-332817398C58 Active Equivalent pause and stop toggle.
cfg_screensaver CA938CA1-3BEB-4E7C-A078-A9886E91391D Reserved Screensaver mode.
cfg_proportional 80985F2F-67D7-4C14-85C8-A0542922D206 Reserved PID controller proportional term.
cfg_integral 1C8BE59B-6B09-4184-A4E8-D198EBE26109 Reserved PID controller integral term.
cfg_derivative 40A4648C-3777-4188-BB08-C8476A2728CF Reserved PID controller derivative term.
cfg_settle 2F7A1C3D-9B4E-4A21-8C6F-112233445566 Active VU ballistics settle (rise/fall) time.
cfg_overshoot 3E8B2D4E-AC5F-4B32-9D7A-223344556677 Active VU ballistics overshoot.
cfg_speed 8EE17EAC-E63C-4AEB-91D7-76AEDAA37EB0 Active Needle movement speed.
cfg_damping A9EEFA40-6C9A-4583-80BA-DA279940E4D7 Active Needle movement damping.
cfg_vsync 63D61429-0510-4107-B82D-28EA87EE3DDB Active Vertical synchronization toggle.
cfg_font BA10193B-9C66-4F8F-9D49-A529FF1C1510 Active Counter font family.
cfg_size 0714F23B-D637-4CB2-A375-D24C2671DE7A Active Counter font size.
cfg_weight AC5085D9-8B45-487F-8810-9F9DF1237450 Active Counter font weight.
cfg_style FD99483F-0850-41CA-909E-A2B65BB20224 Active Counter font style.
cfg_color 5E0B88AC-E4E2-4AB4-9A1E-641A7AFCD70E Active Counter font color.
cfg_panel BC6BEAFF-6845-4D3F-B641-240358C43A1B Reserved Selected panel/skin.