Preference Bound
An advanced visualization feature that displays preference boundaries on frequency response graphs, helping users understand the acceptable variation ranges in FR.
Overview
The Preference Bound feature adds a sophisticated overlay to modernGraphTool that visualizes preference boundaries around target curves.
These boundaries represent the statistically acceptable range of frequency response variations that most listeners find pleasant, based on research data and listening preferences.
Features
- Preference Bound: Display upper and lower preference bounds
- Customizable Appearance: Adjustable colors, transparency, and styling
- Target Integration: Works with diffuse field targets for accurate baseline reference
Configuration
Preference Bound is configured in config.js:
// In config.js
PREFERENCE_BOUND: {
ENABLE_BOUND_ON_INITIAL_LOAD: false,
BASE_DF_TARGET_FILE: "KEMAR DF (KB006x) Target",
COLOR_FILL: "rgba(180,180,180,0.2)",
COLOR_BORDER: "rgba(120,120,120,0.5)",
}
Configuration Options
ENABLE_BOUND_ON_INITIAL_LOAD: Whether to show boundaries when modernGraphTool first loadsBASE_DF_TARGET_FILE: File name (without.txtextension) of the diffuse field target used as the baseline for boundary calculations. The file must already exist in your configured target folder — the preference bound loader reads it directly fromPATH.TARGET_MEASUREMENT, so no duplicate copy is needed.COLOR_FILL: RGBA color for the filled boundary areaCOLOR_BORDER: RGBA color for the boundary outline
The base DF target file is resolved from the same folder your other target curves live in, defined by PATH.TARGET_MEASUREMENT in config.js. See the PATH config section.
Data File Format
Boundary Data Files
The feature requires two boundary data files in the data/ directory (alongside phones/ and target/):
Upper Boundary (Bounds U.txt)
Contains frequency response data for the upper preference boundary:
20.0 2.5
25.0 2.8
31.5 3.1
...
Lower Boundary (Bounds D.txt)
Contains frequency response data for the lower preference boundary:
20.0 -2.5
25.0 -2.8
31.5 -3.1
...
Base Target File
The base DF target file is resolved from PATH.TARGET_MEASUREMENT in config.js — the same folder where every other target curve lives (default: ./data/target/). You do not need to duplicate the target file into another folder; the preference bound loader reads it directly from the regular target directory using the file name you set in PREFERENCE_BOUND.BASE_DF_TARGET_FILE.
For example, BASE_DF_TARGET_FILE: "KEMAR DF (KB006x) Target" will load ./data/target/KEMAR DF (KB006x) Target.txt (or whichever path you've configured in PATH.TARGET_MEASUREMENT).
Usage
Basic Operation
- Toggle Control: Use the toggle button to show/hide boundaries
- Target Alignment: Boundaries automatically align with the selected base target
- Real-time Updates: Boundaries update when changing targets or measurements
Visual Interpretation
- Filled Area: The area between upper and lower bounds represents the preference range
- Target Baseline: Boundaries are relative to the selected diffuse field target
- Measurement Overlay: Compare headphone measurements against preference boundaries