Source-filter synthesis 3. The ba-da continuum

As an example, we are going to create a male [ba]-[da] continuum in six steps. The acoustic difference between [ba] and [da] is the initial F2, which is 500 Hz for [ba], and 2500 Hz for [da].

We use the same PitchTier throughout, to model a falling intonation contour:

``` Create PitchTier: "f0", 0.00, 0.50``` ``` Add point: 0.00, 150``` ``` Add point: 0.50, 100```

The first and last 50 milliseconds are voiceless:

``` To PointProcess``` ``` Remove points between: 0.00, 0.05``` ``` Remove points between: 0.45, 0.50```

Generate the glottal source signal:

``` To Sound (phonation): 44100, 0.6, 0.05, 0.7, 0.03, 3.0, 4.0```

During the labial or coronal closure, the sound is almost silent, so we use an IntensityTier that models this:

``` Create IntensityTier: "intens", 0.00, 0.50``` ``` Add point: 0.05, 60``` ``` Add point: 0.10, 80```

Generate the source signal:

``` plusObject: "Sound f0"``` ``` Multiply``` ``` Rename: "source"```

The ten sounds are generated in a loop:

``` for i from 1 to 10``` ```    f2_locus = 500 + (2500/9) * (i - 1) ; variable names start with lower case!``` ```    Create FormantGrid: "filter", 0.0, 0.5, 9, 800, 1000, 60, 80``` ```    Remove formant points between: 1, 0.0, 0.5``` ```    Add formant point: 1, 0.05, 100``` ```    Add bandwidth point: 1, 0.05, 50``` ```    Add formant point: 2, 0.05, f2_locus``` ```    Add bandwidth point: 2, 0.05, 100``` ```    plusObject: "Sound source"``` ```    Filter (no scale)``` ```    Rename: "bada" + string\$ (i)``` ```    removeObject: "FormantGrid filter"``` ``` endfor```

Clean up:

``` removeObject: "Sound source", "Sound f0", "IntensityTier intens",``` ``` ... "PointProcess f0", "PitchTier f0"```

In this example, filtering was done without automatic scaling, so that the resulting signals have equal intensities in the areas where they have equal formants. You will probably want to multiply all these signals with the same value in order to bring their amplitudes in a suitable range between -1 and +1 Pascal.