← All Use Cases
🎵
Box-Behnken Design

Guitar String Tone Optimization

Box-Behnken design to maximize brightness and sustain by tuning string gauge, action height, and pickup height

Summary

This experiment investigates guitar string tone optimization. Box-Behnken design to maximize brightness and sustain by tuning string gauge, action height, and pickup height.

The design varies 3 factors: gauge thou (thou), ranging from 9 to 13, action mm (mm), ranging from 1.5 to 3.0, and pickup mm (mm), ranging from 2 to 5. The goal is to optimize 2 responses: brightness (pts) (maximize) and sustain sec (sec) (maximize). Fixed conditions held constant across all runs include guitar type = solid_body, tuning = standard.

A Box-Behnken design was chosen because it efficiently fits quadratic models with 3 continuous factors while avoiding extreme corner combinations — requiring only 15 runs instead of the 8 needed for a full factorial at two levels.

Quadratic response surface models were fitted to capture potential curvature and factor interactions. The RSM contour plots below visualize how pairs of factors jointly affect each response.

Key Findings

For brightness, the most influential factors were gauge thou (45.3%), pickup mm (33.6%), action mm (21.1%). The best observed value was 8.8 (at gauge thou = 11, action mm = 2.25, pickup mm = 3.5).

For sustain sec, the most influential factors were action mm (48.8%), pickup mm (32.9%), gauge thou (18.3%). The best observed value was 5.3 (at gauge thou = 11, action mm = 3, pickup mm = 5).

Recommended Next Steps

Experimental Setup

Factors

FactorLowHighUnit
gauge_thou913thou
action_mm1.53.0mm
pickup_mm25mm

Fixed: guitar_type = solid_body, tuning = standard

Responses

ResponseDirectionUnit
brightness↑ maximizepts
sustain_sec↑ maximizesec

Configuration

use_cases/157_guitar_string_tone/config.json
{ "metadata": { "name": "Guitar String Tone Optimization", "description": "Box-Behnken design to maximize brightness and sustain by tuning string gauge, action height, and pickup height" }, "factors": [ { "name": "gauge_thou", "levels": [ "9", "13" ], "type": "continuous", "unit": "thou" }, { "name": "action_mm", "levels": [ "1.5", "3.0" ], "type": "continuous", "unit": "mm" }, { "name": "pickup_mm", "levels": [ "2", "5" ], "type": "continuous", "unit": "mm" } ], "fixed_factors": { "guitar_type": "solid_body", "tuning": "standard" }, "responses": [ { "name": "brightness", "optimize": "maximize", "unit": "pts" }, { "name": "sustain_sec", "optimize": "maximize", "unit": "sec" } ], "settings": { "operation": "box_behnken", "test_script": "use_cases/157_guitar_string_tone/sim.sh" } }

Experimental Matrix

The Box-Behnken Design produces 15 runs. Each row is one experiment with specific factor settings.

Rungauge_thouaction_mmpickup_mm
1111.52
2112.253.5
3132.255
4132.252
5112.253.5
6112.253.5
792.255
8131.53.5
9111.55
101333.5
1192.252
121135
1391.53.5
14933.5
151132

Step-by-Step Workflow

1

Preview the design

Terminal
$ doe info --config use_cases/157_guitar_string_tone/config.json
2

Generate the runner script

Terminal
$ doe generate --config use_cases/157_guitar_string_tone/config.json \ --output use_cases/157_guitar_string_tone/results/run.sh --seed 42
3

Execute the experiments

Terminal
$ bash use_cases/157_guitar_string_tone/results/run.sh
4

Analyze results

Terminal
$ doe analyze --config use_cases/157_guitar_string_tone/config.json
5

Get optimization recommendations

Terminal
$ doe optimize --config use_cases/157_guitar_string_tone/config.json
6

Multi-objective optimization

With 2 competing responses, use --multi to find the best compromise via Derringer–Suich desirability.

Terminal
$ doe optimize --config use_cases/157_guitar_string_tone/config.json --multi
7

Generate the HTML report

Terminal
$ doe report --config use_cases/157_guitar_string_tone/config.json \ --output use_cases/157_guitar_string_tone/results/report.html

Features Exercised

FeatureValue
Design typebox_behnken
Factor typescontinuous (all 3)
Arg styledouble-dash
Responses2 (brightness ↑, sustain_sec ↑)
Total runs15

Analysis Results

Generated from actual experiment runs using the DOE Helper Tool.

Response: brightness

Top factors: gauge_thou (45.3%), pickup_mm (33.6%), action_mm (21.1%).

ANOVA

SourceDFSSMSFp-value
SourceDFSSMSFp-value
gauge_thou21.30870.65432.9300.1110
action_mm20.34980.17490.7830.4891
pickup_mm20.86580.43291.9380.2059
LackofFit617.92242.9871
PureError20.4467
Error818.36900.2233
Total1420.89331.4924

Pareto Chart

Pareto chart for brightness

Main Effects Plot

Main effects plot for brightness

Normal Probability Plot of Effects

Normal probability plot for brightness

Half-Normal Plot of Effects

Half-normal plot for brightness

Model Diagnostics

Model diagnostics for brightness

Response: sustain_sec

Top factors: action_mm (48.8%), pickup_mm (32.9%), gauge_thou (18.3%).

ANOVA

SourceDFSSMSFp-value
SourceDFSSMSFp-value
gauge_thou20.28940.1447
action_mm22.49541.2477
pickup_mm20.88940.4447
LackofFit66.58991.0983
PureError20.0000
Error86.58990.0000
Total1410.26400.7331

Pareto Chart

Pareto chart for sustain_sec

Main Effects Plot

Main effects plot for sustain_sec

Normal Probability Plot of Effects

Normal probability plot for sustain_sec

Half-Normal Plot of Effects

Half-normal plot for sustain_sec

Model Diagnostics

Model diagnostics for sustain_sec

Response Surface Plots

3D surfaces fitted with quadratic RSM. Red dots are observed data points.

brightness action mm vs pickup mm

RSM surface: brightness action mm vs pickup mm

brightness gauge thou vs action mm

RSM surface: brightness gauge thou vs action mm

brightness gauge thou vs pickup mm

RSM surface: brightness gauge thou vs pickup mm

sustain sec action mm vs pickup mm

RSM surface: sustain sec action mm vs pickup mm

sustain sec gauge thou vs action mm

RSM surface: sustain sec gauge thou vs action mm

sustain sec gauge thou vs pickup mm

RSM surface: sustain sec gauge thou vs pickup mm

Multi-Objective Optimization

When responses compete, Derringer–Suich desirability finds the best compromise. Each response is scaled to a 0–1 desirability, then combined via a weighted geometric mean.

Overall Desirability
D = 0.7293

Per-Response Desirability

ResponseWeightDesirabilityPredictedDir
brightness 1.5
0.8012
8.09 0.8012 8.09 pts
sustain_sec 1.0
0.6334
4.21 0.6334 4.21 sec

Recommended Settings

FactorValue
gauge_thou9 thou
action_mm1.5 mm
pickup_mm5 mm

Source: from RSM model prediction

Trade-off Summary

Sacrifice = how much worse than single-objective best.

ResponsePredictedBest ObservedSacrifice
sustain_sec4.215.30+1.09

Top 3 Runs by Desirability

RunDFactor Settings
#120.5567gauge_thou=11, action_mm=2.25, pickup_mm=3.5
#140.5438gauge_thou=11, action_mm=3, pickup_mm=2

Model Quality

ResponseType
sustain_sec0.1603linear

Full Multi-Objective Output

doe optimize --multi
============================================================ MULTI-OBJECTIVE OPTIMIZATION Method: Derringer-Suich Desirability Function ============================================================ Overall desirability: D = 0.7293 Response Weight Desirability Predicted Direction --------------------------------------------------------------------- brightness 1.5 0.8012 8.09 pts ↑ sustain_sec 1.0 0.6334 4.21 sec ↑ Recommended settings: gauge_thou = 9 thou action_mm = 1.5 mm pickup_mm = 5 mm (from RSM model prediction) Trade-off summary: brightness: 8.09 (best observed: 8.80, sacrifice: +0.71) sustain_sec: 4.21 (best observed: 5.30, sacrifice: +1.09) Model quality: brightness: R² = 0.7684 (quadratic) sustain_sec: R² = 0.1603 (linear) Top 3 observed runs by overall desirability: 1. Run #15 (D=0.6190): gauge_thou=11, action_mm=1.5, pickup_mm=5 2. Run #12 (D=0.5567): gauge_thou=11, action_mm=2.25, pickup_mm=3.5 3. Run #14 (D=0.5438): gauge_thou=11, action_mm=3, pickup_mm=2

Full Analysis Output

doe analyze
=== Main Effects: brightness === Factor Effect Std Error % Contribution -------------------------------------------------------------- gauge_thou 0.7750 0.3154 45.3% pickup_mm 0.5750 0.3154 33.6% action_mm 0.3607 0.3154 21.1% === ANOVA Table: brightness === Source DF SS MS F p-value ----------------------------------------------------------------------------- gauge_thou 2 1.3087 0.6543 2.930 0.1110 action_mm 2 0.3498 0.1749 0.783 0.4891 pickup_mm 2 0.8658 0.4329 1.938 0.2059 Lack of Fit 6 17.9224 2.9871 13.375 0.0712 Pure Error 2 0.4467 0.2233 Error 8 18.3690 0.2233 Total 14 20.8933 1.4924 === Summary Statistics: brightness === gauge_thou: Level N Mean Std Min Max ------------------------------------------------------------ 11 7 6.7571 1.2095 4.6000 8.6000 13 4 6.2000 1.7720 4.9000 8.8000 9 4 6.9750 0.6801 6.3000 7.7000 action_mm: Level N Mean Std Min Max ------------------------------------------------------------ 1.5 4 6.8750 1.8062 4.6000 8.8000 2.25 7 6.5143 0.7734 5.3000 7.4000 3 4 6.7250 1.5457 4.9000 8.6000 pickup_mm: Level N Mean Std Min Max ------------------------------------------------------------ 2 4 6.3250 0.7500 5.3000 7.1000 3.5 7 6.9000 1.2288 4.9000 8.8000 5 4 6.6000 1.7588 4.6000 8.6000 === Main Effects: sustain_sec === Factor Effect Std Error % Contribution -------------------------------------------------------------- action_mm 0.8643 0.2211 48.8% pickup_mm 0.5821 0.2211 32.9% gauge_thou 0.3250 0.2211 18.3% === ANOVA Table: sustain_sec === Source DF SS MS F p-value ----------------------------------------------------------------------------- gauge_thou 2 0.2894 0.1447 action_mm 2 2.4954 1.2477 pickup_mm 2 0.8894 0.4447 Lack of Fit 6 6.5899 1.0983 Pure Error 2 0.0000 0.0000 Error 8 6.5899 0.0000 Total 14 10.2640 0.7331 === Summary Statistics: sustain_sec === gauge_thou: Level N Mean Std Min Max ------------------------------------------------------------ 11 7 3.7571 0.6973 2.8000 4.8000 13 4 3.7750 1.1325 2.6000 5.3000 9 4 3.4500 1.0344 2.2000 4.6000 action_mm: Level N Mean Std Min Max ------------------------------------------------------------ 1.5 4 3.3500 1.1818 2.2000 4.8000 2.25 7 4.1143 0.6842 3.1000 5.3000 3 4 3.2500 0.5066 2.8000 3.9000 pickup_mm: Level N Mean Std Min Max ------------------------------------------------------------ 2 4 3.7500 0.7371 2.8000 4.6000 3.5 7 3.4429 0.7525 2.2000 4.0000 5 4 4.0250 1.2038 2.9000 5.3000

Optimization Recommendations

doe optimize
=== Optimization: brightness === Direction: maximize Best observed run: #11 gauge_thou = 11 action_mm = 2.25 pickup_mm = 3.5 Value: 8.8 RSM Model (linear, R² = 0.3967, Adj R² = 0.2321): Coefficients: intercept +6.6667 gauge_thou -0.9125 action_mm -0.3250 pickup_mm -0.3125 RSM Model (quadratic, R² = 0.8012, Adj R² = 0.4433): Coefficients: intercept +7.5667 gauge_thou -0.9125 action_mm -0.3250 pickup_mm -0.3125 gauge_thou*action_mm -0.8500 gauge_thou*pickup_mm -0.2250 action_mm*pickup_mm +0.1500 gauge_thou^2 -0.0708 action_mm^2 -0.4958 pickup_mm^2 -1.1208 Curvature analysis: pickup_mm coef=-1.1208 concave (has a maximum) action_mm coef=-0.4958 concave (has a maximum) gauge_thou coef=-0.0708 negligible curvature Notable interactions: gauge_thou*action_mm coef=-0.8500 (antagonistic) Predicted optimum (from quadratic model, at observed points): gauge_thou = 9 action_mm = 3 pickup_mm = 3.5 Predicted value: 8.4375 Surface optimum (via L-BFGS-B, quadratic model): gauge_thou = 9 action_mm = 2.64665 pickup_mm = 3.49453 Predicted value: 8.5473 Model quality: Good fit — general trends are captured, some noise remains. Factor importance: 1. gauge_thou (effect: 1.8, contribution: 46.2%) 2. pickup_mm (effect: 1.4, contribution: 35.2%) 3. action_mm (effect: 0.7, contribution: 18.6%) === Optimization: sustain_sec === Direction: maximize Best observed run: #10 gauge_thou = 11 action_mm = 3 pickup_mm = 5 Value: 5.3 RSM Model (linear, R² = 0.2687, Adj R² = 0.0692): Coefficients: intercept +3.6800 gauge_thou +0.2375 action_mm +0.1125 pickup_mm +0.5250 RSM Model (quadratic, R² = 0.6001, Adj R² = -0.1196): Coefficients: intercept +3.4333 gauge_thou +0.2375 action_mm +0.1125 pickup_mm +0.5250 gauge_thou*action_mm +0.4250 gauge_thou*pickup_mm -0.2500 action_mm*pickup_mm +0.3500 gauge_thou^2 -0.3042 action_mm^2 +0.1458 pickup_mm^2 +0.6208 Curvature analysis: pickup_mm coef=+0.6208 convex (has a minimum) gauge_thou coef=-0.3042 concave (has a maximum) action_mm coef=+0.1458 convex (has a minimum) Notable interactions: gauge_thou*action_mm coef=+0.4250 (synergistic) action_mm*pickup_mm coef=+0.3500 (synergistic) Predicted optimum (from linear model, at observed points): gauge_thou = 13 action_mm = 2.25 pickup_mm = 5 Predicted value: 4.4425 Surface optimum (via L-BFGS-B, linear model): gauge_thou = 13 action_mm = 3 pickup_mm = 5 Predicted value: 4.5550 Model quality: Weak fit — consider adding center points or using a different design. Factor importance: 1. pickup_mm (effect: 1.2, contribution: 58.2%) 2. gauge_thou (effect: 0.6, contribution: 30.0%) 3. action_mm (effect: 0.2, contribution: 11.8%)
← All Use Cases Next: Room Acoustics Treatment →