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
- Run confirmation experiments at the predicted optimal settings to validate the model.
- Consider whether any fixed factors should be varied in a future study.
Experimental Setup
Factors
| Factor | Low | High | Unit |
gauge_thou | 9 | 13 | thou |
action_mm | 1.5 | 3.0 | mm |
pickup_mm | 2 | 5 | mm |
Fixed: guitar_type = solid_body, tuning = standard
Responses
| Response | Direction | Unit |
brightness | ↑ maximize | pts |
sustain_sec | ↑ maximize | sec |
Configuration
{
"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.
| Run | gauge_thou | action_mm | pickup_mm |
| 1 | 11 | 1.5 | 2 |
| 2 | 11 | 2.25 | 3.5 |
| 3 | 13 | 2.25 | 5 |
| 4 | 13 | 2.25 | 2 |
| 5 | 11 | 2.25 | 3.5 |
| 6 | 11 | 2.25 | 3.5 |
| 7 | 9 | 2.25 | 5 |
| 8 | 13 | 1.5 | 3.5 |
| 9 | 11 | 1.5 | 5 |
| 10 | 13 | 3 | 3.5 |
| 11 | 9 | 2.25 | 2 |
| 12 | 11 | 3 | 5 |
| 13 | 9 | 1.5 | 3.5 |
| 14 | 9 | 3 | 3.5 |
| 15 | 11 | 3 | 2 |
Step-by-Step Workflow
1
Preview the design
$ doe info --config use_cases/157_guitar_string_tone/config.json
2
Generate the runner script
$ 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
$ bash use_cases/157_guitar_string_tone/results/run.sh
4
Analyze results
$ doe analyze --config use_cases/157_guitar_string_tone/config.json
5
Get optimization recommendations
$ 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.
$ doe optimize --config use_cases/157_guitar_string_tone/config.json --multi
7
Generate the HTML report
$ doe report --config use_cases/157_guitar_string_tone/config.json \
--output use_cases/157_guitar_string_tone/results/report.html
Features Exercised
| Feature | Value |
| Design type | box_behnken |
| Factor types | continuous (all 3) |
| Arg style | double-dash |
| Responses | 2 (brightness ↑, sustain_sec ↑) |
| Total runs | 15 |
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
| Source | DF | SS | MS | F | p-value |
| 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 |
| Pure | Error | 2 | 0.4467 | | |
| Error | 8 | 18.3690 | 0.2233 | | |
| Total | 14 | 20.8933 | 1.4924 | | |
Pareto Chart
Main Effects Plot
Normal Probability Plot of Effects
Half-Normal Plot of Effects
Model Diagnostics
Response: sustain_sec
Top factors: action_mm (48.8%), pickup_mm (32.9%), gauge_thou (18.3%).
ANOVA
| Source | DF | SS | MS | F | p-value |
| 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 | | |
| Error | 8 | 6.5899 | 0.0000 | | |
| Total | 14 | 10.2640 | 0.7331 | | |
Pareto Chart
Main Effects Plot
Normal Probability Plot of Effects
Half-Normal Plot of Effects
Model Diagnostics
Response Surface Plots
3D surfaces fitted with quadratic RSM. Red dots are observed data points.
brightness action mm vs pickup mm
brightness gauge thou vs action mm
brightness gauge thou vs pickup mm
sustain sec action mm vs pickup mm
sustain sec gauge thou vs action mm
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
| Response | Weight | Desirability | Predicted | Dir |
brightness |
1.5 |
|
8.09 0.8012 8.09 pts |
↑ |
sustain_sec |
1.0 |
|
4.21 0.6334 4.21 sec |
↑ |
Recommended Settings
| Factor | Value |
gauge_thou | 9 thou |
action_mm | 1.5 mm |
pickup_mm | 5 mm |
Source: from RSM model prediction
Trade-off Summary
Sacrifice = how much worse than single-objective best.
| Response | Predicted | Best Observed | Sacrifice |
sustain_sec | 4.21 | 5.30 | +1.09 |
Top 3 Runs by Desirability
| Run | D | Factor Settings |
| #12 | 0.5567 | gauge_thou=11, action_mm=2.25, pickup_mm=3.5 |
| #14 | 0.5438 | gauge_thou=11, action_mm=3, pickup_mm=2 |
Model Quality
| Response | R² | Type |
sustain_sec | 0.1603 | linear |
Full Multi-Objective Output
============================================================
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
=== 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
=== 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%)