Optimizers in the whistle and flute study models - edwardkort/WWIDesigner GitHub Wiki

Introduction

This page summarizes the optimizer tools that the flute and whistle study models provide. Each optimizer varies specific aspects of the instrument geometry, to produce an instrument that plays as close as possible to the selected tuning. The flute and whistle study models currently support the optimizers listed below.

The global optimizers optimize the same dimensions as the corresponding regular optimizers, but use the DIRECT-C global optimizer to perform a slower, more thorough, search for a global optimum.

Unless specified below, optimizers minimize the difference in cents between the target frequency and the frequency predicted by the flute model or whistle model, for all notes in the tuning file that have a target frequency. When optimizing the tuning of more than one note, the optimizer minimizes the sum of the squares of the differences (multiplied by any optimization weights).

The tutorial Optimizing a Whistle or Flute Design explains a process for using these optimizers to optimize the design of a whistle or transverse flute.

1. Whistle Calibrator

Varies the window height and beta factor to minimize the difference between measured frequencies and the predictions of the whistle model. The tuning file must include measured frequencies for at least some of the notes, either minimum and maximum frequencies in the "Min Freq" and "Max Freq" columns, or actual playing frequencies in the "Frequency" column. Total number of dimensions: 2.

Used in calibrating the whistle model.

1. Flute Calibrator

Varies the airstream length and beta factor to minimize the difference between measured frequencies and the predictions of the flute model. The tuning file must include measured frequencies for at least some of the notes, either minimum and maximum frequencies in the "Min Freq" and "Max Freq" columns, or actual playing frequencies in the "Frequency" column. Total number of dimensions: 2.

Used in calibrating the flute model.

2. Hole Size Optimizer

Varies the sizes of all holes to minimize the tuning error. Total number of dimensions = number of holes.

3. Hole Spacing Optimizer

Varies the total bore length and the spacing between holes to minimize the tuning error. Total number of dimensions = number of holes + 1.

4. Hole Size+Spacing Optimizer

Varies the total bore length, the spacing between holes, and the sizes of holes, to minimize the tuning error. Total number of dimensions = 2 * number of holes + 1.

5. Taper Optimizer

Introduces a basic two-section taper in the bore. Keeps the diameter at the first and second bore points (nearest the mouthpiece) constant, and keeps the total bore length constant. Varies the position of the second bore point (relative to the total bore length), and the diameter at the bottom bore point (relative to the diameter at the second bore point). Total number of dimensions = 2.

5.1 Hole and Taper Optimizer

Introduces a basic two-section taper in the bore. Varies the total bore length, spacing between holes, the sizes of holes, the position of the second bore point, and the diameter at the bottom bore point. Keeps the diameter at the first and second bore points constant. Total number of dimensions = 2 * number of holes + 3.

6. Upper Bore Diameter Optimizer

For the whistle study model, varies bore diameters at existing bore points at the top of the bore. For each bore point from the top down, varies the ratio of the diameter at this bore point to that at the next bore point. The highest bore point left unchanged will be: the lowest bore point with a name that contains the word "Head", or the lowest bore point above the top tonehole, or the lowest bore point above the middle of the bore if there are no toneholes. Bore point positions are unchanged. Total number of dimensions = number of bore points before that unchanged bore point.

Use of diameter ratios rather than absolute diameters allows constraints to control the direction of taper. If the lower bound is 1.0, the bore flares out toward the top; if the upper bound is 1.0, as in the default constraints for this optimizer, the bore tapers inward toward the top.

6.1 Hole and Upper Bore Diameter Optimizer

For the whistle study model, varies bore diameters at existing bore points at the top of the bore, the total bore length, the spacing between holes, and the sizes of holes. For each bore point from the top down, varies the ratio of the diameter at this bore point to that at the next bore point. The highest bore point left unchanged will be: the lowest bore point with a name that contains the word "Head", or the lowest bore point above the top tonehole, or the lowest bore point above the middle of the bore if there are no toneholes. Bore point positions are unchanged. Total number of dimensions = number of bore points before that unchanged bore point + 2 * number of holes + 1.

6. Stopper Position Optimizer

For the flute study model, varies the distance from the topmost bore point to the upper end of the embouchure hole. Total number of dimensions = 1.

6.1 Headjoint Optimizer

For the flute study model, varies the distance from the topmost bore point to the upper end of the embouchure hole, and bore diameters at existing bore points at the top of the bore. For each bore point from the top down, varies the ratio of the diameter at this bore point to that at the next bore point. The highest bore point left unchanged will be: the lowest bore point with a name that contains the word "Head", or the lowest bore point above the top tonehole, or the lowest bore point above the middle of the bore if there are no toneholes. Bore point positions are unchanged. Total number of dimensions = number of bore points before that unchanged bore point + 1.

Use of diameter ratios rather than absolute diameters allows constraints to control the direction of taper. If the lower bound is 1.0, the bore flares out toward the top; if the upper bound is 1.0, as in the default constraints for this optimizer, the bore tapers inward toward the top.

6.2 Hole and Headjoint Optimizer

For the flute study model, varies the distance from the topmost bore point to the upper end of the embouchure hole, bore diameters at existing bore points at the top of the bore, the total bore length, the spacing between holes, and the sizes of holes. For each bore point from the top down, varies the ratio of the diameter at this bore point to that at the next bore point. The highest bore point left unchanged will be: the lowest bore point with a name that contains the word "Head", or the lowest bore point above the top tonehole, or the lowest bore point above the middle of the bore if there are no toneholes. Bore point positions are unchanged. Total number of dimensions = number of bore points before that unchanged bore point + 2 * number of holes + 2.

7. Lower Bore Diameter Optimizer

Varies bore diameters at existing bore points at the bottom of the bore. For each bore point from the bottom up, varies the ratio of the diameter at this bore point to that at the prior bore point upward. The lowest bore point left unchanged will be: the highest bore point with a name that contains the word "Body", or the lowest bore point with a name that contains the word "Head", or the lowest bore point above the top tonehole, or the lowest bore point above the middle of the bore if there are no toneholes. Bore point positions are unchanged. Total number of dimensions = number of bore points below that unchanged bore point.

Use of diameter ratios rather than absolute diameters allows constraints to control the direction of taper. If the lower bound is 1.0, the bore flares out toward the bottom; if the upper bound is 1.0, as in the default constraints for this optimizer, the bore tapers inward toward the bottom.

7.1 Hole and Lower Bore Diameter Optimizer

Varies bore diameters at existing bore points at the bottom of the bore, the total bore length, the spacing between holes, and the sizes of holes. For each bore point from the bottom up, varies the ratio of the diameter at this bore point to that at the prior bore point upward. The lowest bore point left unchanged will be: the highest bore point with a name that contains the word "Body", or the lowest bore point with a name that contains the word "Head", or the lowest bore point above the top tonehole, or the lowest bore point above the middle of the bore if there are no toneholes. Total number of dimensions = number of bore points below that unchanged bore point + 2 * number of holes + 1.

8. Upper Bore Spacing Optimizer

Varies the spacing of existing bore points at the top of the bore. The lowest bore point moved will be: the lowest bore point with a name that contains the word "Head", or the lowest bore point above the top tonehole, or the lowest bore point above the middle of the bore if there are no toneholes. The absolute position of the top bore point is not changed. Bore diameters are unchanged. Total number of dimensions = number of bore points above that lowest moved bore point.

8.1 Hole and Upper Bore Spacing Optimizer

Varies the spacing of existing bore points at the top of the bore, the total bore length, the spacing between holes, and the sizes of holes. The lowest bore point moved will be: the lowest bore point with a name that contains the word "Head", or the lowest bore point above the initial position of the top tonehole, or the lowest bore point above the middle of the bore if there are no toneholes. The absolute position of the top bore point is not changed. Bore diameters are unchanged. Total number of dimensions = number of bore points above that lowest moved bore point + 2 * number of holes + 1.

⚠️ **GitHub.com Fallback** ⚠️