A command to create a new Sound with manipulated characteristics.
Settings
The quality of the manipulation depends on the pitch measurement.
The arguments that control the pitch measurement are:

Minimum pitch (Hz) (standard value: 75 Hz)

pitch candidates below this frequency will not be considered.

Maximum pitch (Hz) (standard value: 600 Hz)

pitch candidates above this frequency will be ignored.
The arguments that control the manipulation are:

Formant shift ratio

determines the frequencies of the formants in the newly created Sound. If this ratio equals 1 no frequency shift will occur and the formant frequencies will not change. A ratio of 1.1 will change a male voice to a voice with approximate female formant characteristics. A ratio of 1/1.1 will change a female voice to a voice with approximate male formant characteristics.

New pitch median (Hz) (standard value: 0.0 Hz, i.e. same as original)

determines what the median pitch of the new Sound will be. The pitch values in the newly created Sound will be calculated from the pitch values in the selected Sound by multiplying them by a factor newPitchMedian / oldPitchMedian. This factor equals 1.0 if the default value for the new pitch median (0.0) is chosen.

Pitch range factor (standard value: 1.0)

determines an extra scaling of the new pitch values around the new pitch median. A factor of 1.0 means that no additional pitch modification will occur (except the obvious one described above). A factor of 0.0 monotonizes the new sound to the new pitch median.

Duration factor (standard value: 1.0)

The factor with which the sound will be lengthened. The default is 1.0. If you take a value less than 1.0, the resulting sound will be shorter than the original. A value larger than 3.0 will not work.
If you want more control over the synthesis you can supply your own Pitch object and use the Sound & Pitch: Change gender... command.
Algorithm
The shifting of frequencies is done via manipulation of the sampling frequency. Pitch and duration changes are generated with overlapadd synthesis.
The new pitch values are calculated in a two step process. We first multiply all the pitches with the factor newPitchMedian / oldPitchMedian according to:
newPitch = pitch * newPitchMedian / oldPitchMedian. 
It follows that if the newPitchMedian equals the oldPitchMedian no change in pitch values will occur in the first step.
Subsequently, the pitch range scale factor determines the final pitch values in the following linear manner:
finalPitch = newPitchMedian + (newPitch – newPitchMedian) * pitchRangeScaleFactor 
Hence, it follows that no further scaling occurs if pitchRangeScaleFactor equals 1.0.
Links to this page
© djmw, February 5, 2003